Archive

Articles taggués ‘Distance’

Gérer à distance un serveur Exchange 2010 avec PowerShell

Vous souhaitez administrer vos serveurs Exchange 2010 à distance depuis un ordinateur ou un serveur sur lequel ne sont pas installés les outils d’administration Exchange 2010.
Voici la méthode pour le faire avec Windows Management Framework.

Créez un session avec New-PSSession:

?View Code POWERSHELL
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exch-server01/PowerShell/ -Authentication Kerberos

Pour créer une session avec New-PSSession en utilisant un autre compte, utilisez:

?View Code POWERSHELL
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exch-server01/PowerShell/ -Authentication Kerberos  -Credential (Get-Credential)

Importez la session.

?View Code POWERSHELL
Import-PSSession $session

Vous pouvez maintenant lancer les commandes PowerShell Exchange 2010 sur votre système.

Pensez à quitter proprement la session avec :

?View Code POWERSHELL
Remove-PSSession $session

 

Pour les systèmes plus anciens que Windows Seven et Windows Server 2008 R2, il est tout de même nécessaire d’avoir installé PowerShell 2.0 et WinRM 2.0.
Les sources se trouvent ici.

Categories: Exchange 2010 Tags: ,

Récupérer la date sur un système distant

En deux lignes, voici comment contrôler l’heure et la date sur un serveur distant avec PowerShell.

?View Code POWERSHELL
$rtime = Get-WmiObject -Class Win32_OperatingSystem -ComputerName "ServerName"
Write-Host $rtime.ConvertToDateTime($rtime.LocalDateTime)
Categories: Windows Tags: ,

Récupérer à distance le numéro de série

Cette commande permet de récupérer à distance le numéro de série d’un serveur ou ordinateur.

?View Code POWERSHELL
(Get-WmiObject -Class Win32_BIOS -NameSpace "root\CIMV2" -Computer "SRV001").SerialNumber

Modifier la base de registre à distance.

Voici comment modifier la base de registre d’un serveur à distance.

?View Code POWERSHELL
$servername = "SRV001"
$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $servername)
$regconf = $reg.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\SNMP\\Parameters",$true)
#Ecriture de la valeur.
$regconf.SetValue('EnableAuthenticationTraps','0','DWord')
#Verification de la valeur.
$regconf.GetValue('EnableAuthenticationTraps')

Voici les différents types de valeurs.

Unknown
String
ExpandString
Binary
DWord
MultiString
QWord

Categories: Windows Tags: , ,

Afficher à distance les administrateurs locaux.

Permet d’afficher à les membres du groupe « Administrators » local d’un serveur distant.

?View Code POWERSHELL
$strComputer = Read-Host "Please enter the computer name"
 
$computer = [ADSI]("WinNT://" + $strComputer + ",computer")
$group = $computer.psbase.children.find("administrators")
 
Write-host ""
Write-host "Computer Name : "$computer.name
Write-Host "_____________________________________"
Write-host ""
Write-host "Group Name : "$Group.name
Write-Host "_____________________________________"
 
$domain = $group.path.split("/")[2]
$string1 = "WinNT://" + $domain + "/" + $strComputer + "/"
$string2 = $strComputer + "/"
$string3 = "WinNT://"
 
$members  = ($group.psbase.invoke(”Members”) | Foreach-Object {$_.GetType().InvokeMember(”Adspath”, ‘GetProperty’, $null, $_, $null)}) -replace ($string1,$string2) -replace ($string3,"") 
 
Write-host ""
Write-host "Members : "
Write-host ""
$members

Si vos serveurs sont en français, il faut remplacer « Administrators » par « Administrateurs » dans le script.

Collecter les events logs à distance.

Ce script permet de collecter dans un fichier Excel les events log des résultats des online defrag sur tous les serveurs de boites aux lettres de l’organisation.
Un fois que vous avez le résultat des défragmentation online, vous pouvez évaluer si il est pertinent d’effectuer une défragmentation offline sur certaines Databases.

?View Code POWERSHELL
$a = New-Object -comobject Excel.Application
 
$a.Visible = $True
 
$b = $a.Workbooks.Add()
$c = $b.Worksheets.Item(1)
 
$col = 1
$ligne = 1
 
$c.Cells.Item(1,1) = "Server"
$c.Cells.Item(1,2) = "Database"
$c.Cells.Item(1,3) = "Date"
$c.Cells.Item(1,4) = "Free space"
 
$ligne++
 
$ExchServer = Get-MailboxServer
foreach ($Server in $ExchServer){
 
$WmidtQueryDT = [System.Management.ManagementDateTimeConverter]::ToDmtfDateTime([DateTime]::Now.AddDays(-1))
$1221 = Get-WmiObject -computer $Server -query ("Select * from Win32_NTLogEvent Where Logfile='Application' and Eventcode = '1221' and TimeWritten >='" + $WmidtQueryDT + "'")
 
foreach ($event in $1221){
$database = $event.message.split('"')[1]
$size = $event.message.split('"')[2].split(" ")[2]
$date = $event.ConvertToDateTime($event.timewritten)
 
	$col = 1
	$c.Cells.Item($ligne,$col) = [string]$Server
	$col++
	$c.Cells.Item($ligne,$col) = [string]$database
	$col++
	$c.Cells.Item($ligne,$col) = [string]$date
	$col++
	$c.Cells.Item($ligne,$col) = [string]$size
	$ligne++
 
}
}
Categories: Exchange 2007 Tags: , , ,

Gérer les sessions RDP à distance.

La première commande permet d’afficher les sessions RDP sur un serveur distant.

query session /server:SERVERNAME

La seconde reset la session de l’ID séléctionné.

reset session 1 /server:SERVERNAME
Categories: Windows Tags: , ,