WinRM PowerShell | Sintaxis y ejemplos de WinRm en PowerShell
Introducción a WinRM PowerShell
WinRm significa protocolo de administración remota de Windows. Este protocolo se utiliza para establecer una conexión entre computadoras para que se puedan realizar operaciones remotas. Para habilitar la comunicación remota de PowerShell, primero se debe ejecutar el cmdlet Enable-PSRemoting tanto en la computadora de origen como en la de destino. Esto iniciará el servicio WinRM y creará una regla de firewall para que se puedan enviar y recibir solicitudes en las computadoras para realizar operaciones remotas. Una vez iniciado el servicio, se deben crear oyentes.
Sintaxis:
El servicio WinRM se inicia ejecutando el siguiente cmdlet
Enable-PSRemotingEstá disponible en el espacio de nombres Microsoft.WsMan.Management y el ensamblado correspondiente es System.Management.Automation. Hay muchos cmdlets disponibles relacionados con la administración de WInRM.
Varias clases de WinRm en PowerShell
Este artículo cubrirá detalles sobre WinRM en Powershell junto con las diversas clases que implementa PowerShell.
1. Conectar-WSMan
Este cmdlet establece una conexión con el servicio WinRM en la computadora remota. Si el cliente y el servidor están presentes en dominios diferentes, las credenciales deben proporcionarse explícitamente. Esto establece una conexión persistente. Esto generalmente se usa cuando se usa un proveedor WSMan para establecer una conexión a una computadora remota.
Sintaxis:
Connect-WSMan [[-ComputerName] <string>] [-ApplicationName <string>] [-OptionSet <hashtable>] [-Port <int>] [-SessionOption <SessionOption>] [-UseSSL]
[-Credential <pscredential>] [-Authentication {None | Default | Digest | Negotiate | Basic | Kerberos | ClientCertificate | Credssp}] [-CertificateThumbprint
<string>] [<CommonParameters>]
Connect-WSMan [-ConnectionURI <uri>] [-OptionSet <hashtable>] [-Port <int>] [-SessionOption <SessionOption>] [-Credential <pscredential>] [-Authentication
{None | Default | Digest | Negotiate | Basic | Kerberos | ClientCertificate | Credssp}] [-CertificateThumbprint <string>] [<CommonParameters>]Ejemplo:
Connect-WSMan -ComputerName "testserver01"2. Desconectar-WSMan
Este cmdlet se utiliza para desconectar el servicio WinRm en el sistema remoto. Si la sesión se almacena en una variable, solo se cierra el estado de la sesión de WS-Management.
Sintaxis:
Disconnect-WSMan [[-ComputerName] <String> [<CommonParameters>]Ejemplo:
Disconnect-WSMan -computer testserver013. Habilitar-WSManCredSSP
Este cmdlet se utiliza para habilitar el mecanismo de autenticación Credssp en el sistema deseado. Esto se utiliza cuando la ejecución de cmdlets crea una sesión remota a partir de otra sesión. Cuando se utiliza este mecanismo, las credenciales del usuario se utilizan para la autenticación. Siempre que sea necesario ejecutar un trabajo en segundo plano, se puede utilizar este cmdlet.
Sintaxis:
Enable-WSManCredSSP [-Role] <String> [[-DelegateComputer] <String[]>] [-Force] [<CommonParameters>]Ejemplo:
Enable-WSManCredSSP -Role "Client" -DelegateComputer "testServer02.test.com"4. Deshabilitar-WSManCredSSP
Este cmdlet se utiliza para deshabilitar el mecanismo de autenticación Credssp en el sistema deseado. Cuando se utiliza este mecanismo, las credenciales del usuario se utilizan para la autenticación. Siempre que sea necesario ejecutar un trabajo en segundo plano, se puede utilizar este cmdlet. Para deshabilitarlo en el cliente, especifique el rol como cliente para deshabilitarlo en el servidor, especifique el rol como servidor.
Sintaxis:
Disable-WSManCredSSP [-Role] <String>[<CommonParameters>]Ejemplo:
Disable-WSManCredSSP -Role ClientEl cmdlet anterior deshabilita credssp en la máquina cliente
Disable-WSManCredSSP -Role ClientEl cmdlet anterior deshabilita credssp en la máquina del servidor.
5. Obtener-WSManCredSSP
Este cmdlet se utiliza para obtener el proveedor de soporte de seguridad de credenciales que está presente en la computadora cliente o en el servidor. El resultado indica si la autenticación está habilitada o deshabilitada. Esto también muestra información sobre cómo permitir credenciales nuevas.
Sintaxis:
Get-WSManCredSSP []Ejemplo:
Get-WSManCredSSPSi credssp no está habilitado, se mostrará un mensaje que indica que la máquina no está configurada.
6. Obtener-WSManInstance
Este cmdlet se utiliza para encontrar el recurso de administración definido por un identificador de recurso uniforme. La salida tiene la forma de un xml complejo o de un objeto. Utiliza una capa de conexión o transporte de conexión WS-Management para recuperar la información.
Sintaxis:
Get-WSManInstanc[-ApplicationName <String>][-BasePropertiesOnly] [-ComputerName <String>] [-ConnectionURI <Uri>] [-Dialect <Uri>] [-Enumerate] [-Filter <String>] [-OptionSet <Hashtable>] [-Port <Int32>] [-Associations] [-ResourceURI] <Uri> [-ReturnType <String>] [-SessionOption <SessionOption>] [-Shallow] [-UseSSL] [-Credential <PSCredential>] [-Authentication <AuthenticationMechanism> [-CertificateThumbprint <String> [<CommonParameters>]Ejemplo:
Get-WSManInstance -ResourceURI wmicimv2/win32_service -SelectorSet @{name="winrm"} -ComputerName "testServer01"7. Invocar-WSManAction
Esto provoca una acción sobre un objeto que se denota por uri. Los parámetros se proporcionan como pares clave-valor. Utiliza la capa de transporte para realizar la acción.
Sintaxis:
Invoke-WSManAction[-Action] <String>[-ConnectionURI <Uri>][-FilePath <String>] [-OptionSet <Hashtable>] [[-SelectorSet] <Hashtable>] [-SessionOption <SessionOption>] [-ValueSet <Hashtable>] [-ResourceURI] <Uri> [-Credential <PSCredential>] [-Authentication <AuthenticationMechanism> [-CertificateThumbprint <String>] [<CommonParameters>]Ejemplo:
Invoke-WSManAction -Action startservice -ResourceURI wmicimv2/win32_service -SelectorSet @{name="spooler"} -Authentication default8. Nueva instancia de WSMan
Este cmdlet crea una nueva instancia de recurso de administración. Utiliza un uri de recurso junto con un archivo de entrada para crear un nuevo recurso.
Sintaxis:
New-WSManInstance [-ConnectionURI <Uri>] [-FilePath <String>] [-OptionSet <Hashtable>] [-ResourceURI] <Uri> [-SelectorSet] <Hashtable> [-SessionOption <SessionOption>] [-ValueSet <Hashtable>] [-Credential <PSCredential>] [-Authentication <AuthenticationMechanism>] [-CertificateThumbprint <String>][<CommonParameters>]9. Enumeraciones de Ws-Management
Las siguientes son las enumeraciones que se implementan en PowerShell. Estos están presentes en el kit de desarrollo de software.
10. Nueva opción WSManSession
Esto crea una nueva opción de sesión de tabla hash que se utilizará como entrada para los cmdlets de WS-Management. Estos se pueden pasar como entrada a los siguientes cmdlets.
- Obtener-WSManInstance
- Conjunto-WSManInstance
- Invocar-WSManAction
- Conectar-WSMan
Sintaxis:
New-WSManSessionOption [-ProxyAccessType <ProxyAccessType>] [-ProxyAuthentication <ProxyAuthentication>] [-ProxyCredential <PSCredential>] [-SkipCACheck] [-SkipCNCheck] [-SkipRevocationCheck] [-SPNPort <Int32>] [-OperationTimeout <Int32>] [-NoEncryption] [-UseUTF16][<CommonParameters>]El tipo de acceso de proxy especifica el mecanismo que se utiliza para localizar el servidor. Algunos de sus valores son ProxyIEConfig, ProxywinHttpConfig, ProxyAutoDetect y ProxyNoProxyServer. ProxyIeConfig es el valor predeterminado.
El parámetro de autenticación de proxy indica el mecanismo de autenticación que se utiliza. Los valores de este parámetro son Básico, Resumen y Negociar. Negociar es el valor predeterminado.
Ejemplo:
$sess = New-WSManSessionOption -OperationTimeout 10000
Connect-WSMan -ComputerName "server01" -SessionOption $sessEntrada:
Write-Host "Welcome to the WinRM demo"
Enable-PSRemoting
Write-Host "The winrm service is started" -ForegroundColor Green
Write-Host "Verify the listeners"
Get-WSManInstance -ResourceURI winrm/config/listener -SelectorSet @{Address="*";Transport="http"}
write-host "True"
Write-Host "Connecting to wim service in remote"
Connect-WSMan -ComputerName "testserver1"
Write-Host "Connected to the remote server"
Write-Host "Passing credentials to be used in remote server"
Enable-WSManCredSSP -Role "Client" -DelegateComputer "test.test.com"
Write-Host "disconnecting the session"
Disconnect-WSMan -computer testserver1
Write-Host "Session disconnected"Salida:
Conclusión
Por lo tanto, el artículo cubrió y explicó en detalle sobre WinRM en PowerShell. Explicó los diversos cmdlets que están disponibles en la clase WinRM y explicó cada uno de ellos con su sintaxis y ejemplos apropiados. El artículo también muestra cómo usar varios cmdlets para conectarse a la computadora remota usando el mecanismo WinRM. Para obtener más información en detalle, es recomendable escribir y practicar programas de muestra.

