De temps en temps, plus particulièrement, un administrateur système devra redémarrer un serveur ou un système. Généralement, vous pouvez vous connecter à distance à un système et redémarrer/arrêter le système via l'interface utilisateur graphique - PowerShell fournit plusieurs méthodes pour redémarrer un ordinateur à distance et nous décrirons les 6 méthodes connues dans cet article.
Redémarrer un ordinateur Windows à distance à l'aide de PowerShell
Une condition préalable à ces méthodes est de s'assurer que nous pouvons contacter les systèmes distants et nous authentifier si nécessaire. Et aussi, vous devez vérifier qu'un système distant n'est pas en attente d'un redémarrage.
Vous aurez besoin des éléments suivants :
- Un compte d'utilisateur sur l'ordinateur distant dans le groupe de l'administrateur local.
- Windows PowerShell ou PowerShell Core.
1] Redémarrez un ordinateur distant avec Restart-Computer
Cette applet de commande est simple à utiliser avec des paramètres flexibles. Une condition préalable supplémentaire pour que la commande fonctionne est de s'assurer que WinRM est configuré et autorisé via le pare-feu Windows de l'ordinateur distant et que WMI est autorisé via le pare-feu Windows.
Redémarrer-Ordinateur -NomOrdinateur $NomOrdinateur -Force
Pour redémarrer plusieurs ordinateurs en parallèle, exécutez la commande suivante :
$ComputerArray | ForEach-Object -Parallel Restart-Computer -ComputerName $_ -Force -ThrottleLimit 3
2] Redémarrez un ordinateur distant avec Invoke-CimMethod
le Invoke-CimMethod
fonctionne en utilisant une méthode WIM pour redémarrer le système distant - bien que, pas aussi flexible que le Redémarrer l'ordinateur
applet de commande.
Une condition préalable supplémentaire pour que la commande fonctionne est de s'assurer que WinRM est configuré et autorisé via le pare-feu Windows de l'ordinateur distant.
Invoke-CimMethod -ComputerName $ComputerName -ClassName 'Win32_OperatingSystem' -MethodName 'Reboot'
3] Redémarrer un ordinateur distant avec arrêt.EXE
le fermer.EXE
est l'exécutable intégré standard que Windows propose pour redémarrer un système, et ce n'est pas une commande PowerShell mais offre une série d'options robuste.
Une condition préalable supplémentaire pour que la commande fonctionne est de s'assurer que le service Remote Registry est activé sur l'ordinateur distant et que WMI est autorisé via le pare-feu Windows.
fermer.exe /m \\ordinateur distant /r /t 0
4] Redémarrez un ordinateur distant avec PSExec.EXE
L'un des utilitaires les plus utilisés de la boîte à outils Sysinternals, psexec.EXE
offre plusieurs capacités uniques qui facilitent l'interaction avec un système distant.
Une condition préalable supplémentaire pour que la commande fonctionne est de s'assurer que le service SMB est en cours d'exécution, que le partage de fichiers et d'imprimantes est activé, que le partage de fichiers simple est désactivé et que le partage administratif admin$ est disponible.
psexec.exe -d -h \\remotecomputer "arrêt.exe /r /t 0 /f"
5] Redémarrez un ordinateur distant avec RunDLL32.EXE
le rundll32.EXE
offre un moyen d'exécuter certaines méthodes sur des exécutables internes et des API Windows, telles que shell32.dll. Il existe deux méthodes pour redémarrer un système à l'aide de cette fonctionnalité, mais cette méthode ne peut pas être utilisée à distance par elle-même, vous pouvez la combiner avec PowerShell via un Invocation-Commande
sur un système distant.
Méthode 1:
Invoke-Command -ComputerName $ComputerName -ScriptBlock & rundll32.utilisateur exe.exe QuitterWindowsExec
Méthode 2:
Invoke-Command -ComputerName $ComputerName -ScriptBlock & rundll32.utilisateur exe.exe QuitterWindowsExec
6] Redémarrez un ordinateur distant avec Taskkill.EXE
Dernier mais pas des moindres, tâcher.EXE
est un autre utilitaire Windows qui offre des fonctionnalités pour redémarrer Windows, mais de manière détournée. En terminant le lsass.EXE
processus, vous forcerez un redémarrage de Windows.
tâcher.exe /S \\ordinateur distant /IM lsass.exe /F
C'est tout sur les 6 façons d'utiliser PowerShell pour redémarrer un ordinateur distant!