Búsqueda de sitios web

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-PSRemoting

Está 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 testserver01

3. 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 Client

El cmdlet anterior deshabilita credssp en la máquina cliente

Disable-WSManCredSSP -Role Client

El 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-WSManCredSSP

Si 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 default

8. 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 $sess

Entrada:

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.

Artículos relacionados