En deux lignes, voici comment contrôler l’heure et la date sur un serveur distant avec PowerShell.
$rtime = Get-WmiObject -Class Win32_OperatingSystem -ComputerName "ServerName"
Write-Host $rtime.ConvertToDateTime($rtime.LocalDateTime) |
Voici une commande pour récupérer le top 10 des boites Exchange de votre organistation.
Get-Mailbox -ResultSize unlimited | Get-MailboxStatistics | Sort-Object -Descending -Property TotalItemSize | Select-Object DisplayName,TotalItemSize -First 10 |
Voici comment utiliser les variables d’environnement avec PowerShell.
Afficher les variables d’environnement:
Afficher une variable d’environnement:
Utiliser les variables d’environnement:
Set-Location $env:USERPROFILE |
Voici un guide de référence PowerCli pour VMware vSphere 4.1.
Il vous donne les bases pour gérer vShere avec Powershell.

Le poster des commandes Powershell pour Active Directory.
Ces CmdLets Active Directory sont disponibles sur Windows Server 2008 R2 mais nécessite Active Directory Management Gateway Service pour les autres versions.

Voici un script PowerShell qui permet de transférer un dossier vers un serveur FTP.
Ce script upload le dossier avec tous les sous dossiers et les fichiers.
$user = "guest"
$password = "Powershell"
$localdir = "C:\Scripts"
$ftpdir = "ftp://ftp.server.com/uploads/"
$client = New-Object System.Net.WebClient
$client.Credentials = New-Object System.Net.NetworkCredential($user,$password)
$parentfolder = $localdir.split("\")[-1]
Write-Host "Création de $parentfolder"
$makedir = [System.Net.WebRequest]::Create($ftpdir+$parentfolder);
$makedir.Credentials = New-Object System.Net.NetworkCredential($user,$password)
$makedir.Method = [System.Net.WebRequestMethods+FTP]::MakeDirectory;
$makedir.GetResponse();
foreach($item in Get-ChildItem -recurse $localdir){
$filename = [system.io.path]::GetFullPath($item.FullName).SubString([system.io.path]::GetFullPath($localdir).Length + 1)
if ($item.Attributes -eq "Directory"){
try{
Write-Host "Création de $item.Name"
$makedir = [System.Net.WebRequest]::Create($ftpdir+"/"+$parentfolder+"/"+$filename);
$makedir.Credentials = New-Object System.Net.NetworkCredential($user,$password)
$makedir.Method = [System.Net.WebRequestMethods+FTP]::MakeDirectory;
$makedir.GetResponse();
}
catch [Net.WebException] {
Write-Host $item.Name probably exists ...
}
continue;
}
Write-Host "Transfert de $item..."
$file = New-Object System.Uri($ftpdir+"/"+$parentfolder+"/"+$filename)
$client.UploadFile($file, $item.FullName)
} |
.
Pour copier le résultat d’une commande Powershell directement dans le presse-papier, il suffit de rajouter « | clip » à la fin de celle-ci.
Il de reste plus qu’à aller faire le coller ou vous le souhaitez.
Dans votre profile, vous souhaitez vous connecter automatiquement à votre disque USB.
Il peut arriver que la lettre change.
Pour retrouver systématiquement la lettre de votre disque, voici un méthode.
$drive = get-psdrive | where-object { $_.description -eq "Disk Label" }
Set-Location $drive.root |
Voici comment extraire les 8 derniers caractères d’une chaine.
$log = "sys000456.log"
$log.Substring($log.Length-8,8) |
Chacun ces petites habitudes sous Powershell.
Voici comment créer son profile et charger la configuration que l’on souhaite à l’ouverture de Powershell.
Identifiez le chemin de votre profile.
Sous Windows Seven, le résultat devrait ressembler à ‘C:\Users\Christophe\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1′
Vérifiez la présence du profile.
Si la réponse et « True », lancez:
Si la réponse est « False », il faut au préalable créer le fichier.
New-Item -Path $profile -Type file -Force
notepad $profile |
Une fois dans le fichier, vous pouvez ajouter toutes les commandes que vous souhaitez exécuter à l’ouverture de Powershell.
Exemple:

Relancez Powershell pour admirer le résultat.