Visión de conjunto:
Windows PowerShell admite la administración remota mediante el uso de diversas tecnologías, incluidas WMI, RPC y WS-Management.
Nota:
WMI : Instrumental de administración de Windows (nombre del servicio: Winmgmt )
RPC : Llamada a procedimiento remoto (RPC) (nombre del servicio: RpcSs )
WS-Management : Administración remota de Windows (WS-Management) (nombre del servicio: WinRM ) por
encima de tres servicios, Los dos primeros servicios del sistema Windows están habilitados de forma predeterminada, el servicio
"WS-Management" (WinRM) puede requerir una intervención para iniciarse .
El estado y el tipo de inicio de los tres servicios se pueden consultar mediante comandos
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)
Los servicios "RPCSS" y "Winmgm" se inician y se ejecutan (Automático) y se están ejecutando (En ejecución).
Solo el tipo de inicio del servicio "WinRM" es Manual (Manual) y actualmente está detenido (Detenido).
Por lo tanto, sin considerar la interceptación del firewall, se requiere que PowerShell admita la administración remota para garantizar que los tres servicios anteriores estén en estado abierto .
El documento oficial menciona que 10 comandos no requieren una configuración especial y se pueden ejecutar directamente. De hecho, son casi dependientes de los servicios RPC y WMI que se hayan activado (el principio de Test-Connection es similar al comando Ping).
Los comandos o cmdlets que se pueden operar sin necesidad de configuración especial son los siguientes:
(Nota:. El servidor de seguridad se puede ejecutar directamente sin la interceptación correspondiente)
Restart-Computer
Test-Conexión
Clear-EventLog
Get-EventLog
Get-HotFix
Get -Proceso
Obtener-Servicio
Establecer-Servicio
Obtener-WinEvent
Obtener-WmiObject
Mediante los comandos anteriores, podemos operar los servicios y procesos del host, por ejemplo, podemos abrir el servicio " WinRM "
Ejemplo 1: reiniciar la computadora de forma remota
Utilice el comando "Restart-Computer" para reiniciar la computadora. Si no se puede ejecutar cuando un usuario está conectado, puede agregar el parámetro "-Force" para forzar la ejecución.
$cred=Get-Credential
Restart-Computer -ComputerName "sz-test1119.test.local" -Credential $cred
Restart-Computer -ComputerName "sz-test1119.test.local" -Credential $cred -Force
El resultado de la ejecución del comando es el siguiente:
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
Ejemplo 2: iniciar el servicio WinRM de una computadora remota
# PowerShell Obtener el estado
del servicio WinRM Obtener el servicio WinRM
Se puede abrir directamente a través de "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 el servicio WinRM de la computadora remota está activado, se puede configurar con la ayuda de "-Status running" de "Set-Service"
Set-Service WinRM -ComputerName "sz-test1119.test.local" -Status Running
Proceso de ejecución de comandos :
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...
Siguiente sección: Administración remota de PowerShell 02-Varias formas de administración remota de Powershell:
volver a mis notas de estudio de Powershell