Aperçu:
Windows PowerShell prend en charge la gestion à distance à l'aide de diverses technologies, notamment WMI, RPC et WS-Management.
Remarque:
WMI : Windows Management Instrumentation (nom du service: Winmgmt )
RPC : Remote Procedure Call (RPC) (nom du service: RpcSs )
WS-Management : Windows Remote Management (WS-Management) (nom du service: WinRM )
au-dessus de trois services, Les deux premiers services du système Windows sont activés par défaut, le service
"WS-Management" (WinRM) peut nécessiter une intervention pour démarrer .
L'état et le type de démarrage des trois services peuvent être interrogés via des commandes
PS C:\> Get-Service -Name Winmgmt,RPCSS,WinRM | Format-Table -Property Name,Status,StartType,DisplayName
Name Status StartType DisplayName
---- ------ --------- -----------
RPCSS Running Automatic Remote Procedure Call (RPC)
Winmgmt Running Automatic Windows Management Instrumentation
WinRM Stopped Manual Windows Remote Management (WS-Management)
Les services "RPCSS" et "Winmgm" sont tous deux démarrés et en cours d'exécution (automatique) et sont actuellement en cours d'exécution (en cours d'exécution).
Seul le type de démarrage du service "WinRM" est Manuel (Manuel), et il est actuellement arrêté (Arrêté).
Par conséquent, sans tenir compte de l'interception du pare-feu, PowerShell doit prendre en charge la gestion à distance pour garantir que les trois services ci-dessus sont dans un état ouvert .
Le document officiel mentionne que 10 commandes ne nécessitent pas de configuration particulière et peuvent être exécutées directement. En fait, elles dépendent presque des services RPC et WMI qui ont été activés (le principe de Test-Connection est similaire à la commande Ping).
Les commandes ou applets de commande qui peuvent être utilisées sans configuration spéciale sont les suivantes:
(Remarque: le pare-feu peut être exécuté directement sans l'interception correspondante.)
Restart-Computer
Test-Connection
Clear-EventLog
Get-EventLog
Get-HotFix
Get -Processus
Get-Service
Set-Service
Get-WinEvent
Get-WmiObject
Grâce aux commandes ci-dessus, nous pouvons faire fonctionner les services et processus de l'hôte, par exemple, nous pouvons ouvrir le service " WinRM "
Exemple 1: redémarrer l'ordinateur à distance
Utilisez la commande "Restart-Computer" pour redémarrer l'ordinateur. Si elle ne peut pas être exécutée lorsqu'un utilisateur est connecté, vous pouvez ajouter le paramètre "-Force" pour forcer l'exécution.
$cred=Get-Credential
Restart-Computer -ComputerName "sz-test1119.test.local" -Credential $cred
Restart-Computer -ComputerName "sz-test1119.test.local" -Credential $cred -Force
Le résultat de l'exécution de la commande est le suivant:
PS C:\Users> $cred=Get-Credential
位于命令管道位置 1 的 cmdlet Get-Credential
请为以下参数提供值:
Credential
PS C:\Users>Restart-Computer -ComputerName "sz-test1119.test.local" -Credential $cred
Restart-Computer : 无法重新启动计算机 sz-test1119.test.local,并显示以下错误消息: 无法启动系统关机
,因为有其他用户登录到计算机。
所在位置 行:1 字符: 1
+ Restart-Computer -ComputerName "sz-test1119.test.local" -Credential $c ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (sz-test1119.test.local:String) [Restart-Computer
], InvalidOperationException
+ FullyQualifiedErrorId : RestartcomputerFailed,Microsoft.PowerShell.Commands.RestartComput
erCommand
PS C:\Users> Restart-Computer -ComputerName "sz-test1119.test.local" -Credential $cred
PS C:\Users> Restart-Computer -ComputerName "sz-test1119.test.local" -Credential $cred -Force
Exemple 2: démarrer le service WinRM d'un ordinateur distant
# PowerShell Obtenir l'état du service WinRM
Get-Service WinRM
Peut être ouvert directement via "Start-service winrm"
PS C:\WINDOWS\system32> Start-Service WinRM
PS C:\WINDOWS\system32> Get-Service WinRM
Status Name DisplayName
--------- ------- -----------
Running WinRM Windows Remote Management (WS-Manag...
Si vous démarrez le service WinRM de l'ordinateur distant, vous pouvez utiliser le "-Status en cours d'exécution" de "Set-Service" pour définir
Set-Service WinRM -ComputerName "sz-test1119.test.local" -Status en cours d'exécution
Processus d'exécution de la commande :
PS C:\Users> Get-Service WinRM -ComputerName "sz-test1119.test.local"
Status Name DisplayName
------ ---- -----------
Stopped WinRM Windows Remote Management (WS-Manag...
PS C:\Users> Set-Service WinRM -ComputerName "sz-test1119.test.local" -Status Running
PS C:\Users> Get-Service WinRM -ComputerName "sz-test1119.test.local"
Status Name DisplayName
------ ---- -----------
Running WinRM Windows Remote Management (WS-Manag...
Section suivante: Gestion à distance PowerShell 02-Plusieurs méthodes de gestion à distance Powershell:
retournez à mes notes d'étude Powershell