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) |
Remote Desktop Connection Manager est un des outils que je lance en premier sur mon PC. (Juste après Powershell)
Ce logiciel fournit par Microsoft va vous permettre d’organiser et de gérer vos connections TSE/RDP.
Vous pourrez organiser les connections par groupes, configurer des comptes par serveur.
Dans le cadre un parc de serveurs important, il devient indispensable.

Lien:Remote Desktop Connection Manager
Ce script permet d’exporter dans un fichier la liste des ordinateurs et serveurs d’une OU avec le login de l’utilisateur connecté et la langue du système d’exploitation.
Cela ne fonctionne que pour les ordinateurs et serveurs en ligne.
$fileres = ".\Export\FI00_Paris_Comp_Lang.csv"
$expfile = New-Item -ItemType file -Path $fileres -Force
Add-Content -Path $fileres -Value "Computer,LoggedUser,Language"
Get-QADComputer -SearchRoot "domain.local/FI00_Paris"| ForEach-Object {
if ( Test-Connection $_.name -count 1 -quiet) {
$computer = $_.name
$lang = (Get-WmiObject Win32_OperatingSystem -ComputerName $computer -ErrorAction continue ).oslanguage
$switch = switch ($lang) `
{
1033 {"English"};
1036 {"French"};
default {"Unknown"}
}
$loginfo = Get-WmiObject -Computer $Computer -Class Win32_ComputerSystem
$present = Select-String -Path $fileres -Pattern $computer
Add-Content -Path $fileres -Value "$($computer),$($loginfo.UserName),$($switch)"
}
} |
Cette commande permet de récupérer à distance le numéro de série d’un serveur ou ordinateur.
(Get-WmiObject -Class Win32_BIOS -NameSpace "root\CIMV2" -Computer "SRV001").SerialNumber |
Les travaux pratiques du jour:
Lister tous les fichiers qui sont archivés sur un serveur sans les désarchiver.
Les fichiers archivés on l’attribut « Offline ».
La commande suivant a eu pour effet de désarchiver tous les fichiers listés, donc il faut y aller avec des pincettes pour ne pas désarchiver tout le serveur d’un coup.
Voici les commande qui permet de lister les fichiers avec le chemin sans les agresser.
Get-ChildItem -Recurse | Where-Object { $_.Attributes -match "Offline" } | Select-Object Name,Attributes,Fullname | Export-Csv -Path .\Exports\arhived_files.csv -Encoding unicode |
Demain, nous verrons bien comment on va faire pour les désarchiver en douceur.
Permet de configurer le service SNMP d’un serveur distant.
Ce script configure la communauté et les hosts autorisés.
$server = Read-Host "Please enter the server name"
$MachineName = $server
$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $MachineName)
$regconf = $reg.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\SNMP\\Parameters",$true)
$regconf.SetValue('EnableAuthenticationTraps','0','DWord')
$regconf = $reg.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\SNMP\\Parameters\\PermittedManagers",$true)
$regconf.SetValue('1','localhost','string')
$regconf.SetValue('2','SV002859','string')
Write-Host "Server: "$MachineName -ForegroundColor Green
$regconf.GetValue('1')
$regconf.GetValue('2')
Write-Host "-------------------------------------" -ForegroundColor Green
$regconft = $reg.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\SNMP\\Parameters\\ValidCommunities",$true)
$regconft.SetValue('casimir','4','DWord') |
Ce script supprime les fichiers de logs de plus de 30 jours.
$Now = Get-Date
$LastWrite = $Now.AddDays(-30)
$Files = get-childitem -Path ".\logs" -include *.log -recurse |Where {$_.LastWriteTime -le "$LastWrite"}
foreach ($File in $Files){
if ($File) {
write-host "Deleting File '$File'"
Remove-Item $File | out-null
}
} |
CurrPorts est un petit utilitaire très pratique pour visualiser les ports utilisés par votre ordinateur.
Il permet surtout de savoir qu’elle application utilise quels ports TCP ou UDP.
Et plein d’autres informations et actions.

Téléchargeable ici.
Voici comment modifier la base de registre d’un serveur à distance.
$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
Permet de récupérer à distance la version de Windows.
Get-WmiObject Win32_OperatingSystem -ComputerName "server001" | Select-Object CSName,Caption,OtherTypeDescription,CSDVersion,Version |