当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] WinRM PowerShell | PowerShell 中 WinRm 的语法和示例

作者:精品下载站 日期:2024-12-14 04:56:30 浏览:15 分类:玩电脑

WinRM PowerShell | PowerShell 中 WinRm 的语法和示例


[玩转系统] WinRM PowerShell | PowerShell 中 WinRm 的语法和示例

WinRM PowerShell 简介

WinRm 代表 Windows 远程管理协议。该协议用于在计算机之间建立连接,以便可以执行远程操作。要首先启用 PowerShell 远程处理,必须在源计算机和目标计算机上运行 Enable-PSRemoting cmdlet。这将启动 WinRM 服务并创建防火墙规则,以便可以在计算机上发送和接收请求以执行远程操作。服务启动后,必须创建侦听器。

语法:

WinRM 服务通过运行以下 cmdlet 启动

Enable-PSRemoting

它在命名空间 Microsoft.WsMan.Management 中可用,相应的程序集是 System.Management.Automation。有许多与 WInRM 管理相关的 cmdlet 可用。

PowerShell 中 WinRm 的各种类

本文将详细介绍 Powershell 中的 WinRM 以及 PowerShell 实现的各种类。

1. 连接-WSMan

此 cmdlet 建立与远程计算机中的 WinRM 服务的连接。如果客户端和服务器存在于不同的域中,则必须显式提供凭据。这会建立持久连接。这通常在使用 WSMan 提供程序建立与远程计算机的连接时使用。

语法:

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

示例:

Connect-WSMan -ComputerName "testserver01"

2. 断开连接-WSMan

此 cmdlet 用于断开远程系统上的 WinRm 服务。如果会话存储在变量中,则只有 WS-Management 会话的状态是关闭的。

语法:

Disconnect-WSMan [[-ComputerName] <String>  [<CommonParameters>]

示例:

Disconnect-WSMan -computer testserver01

3.启用-WSManCredSSP

此 cmdlet 用于在所需系统上启用 Credssp 身份验证机制。当 cmdlet 运行从另一个会话创建远程会话时,将使用此选项。使用此机制时,将使用用户凭据进行身份验证。每当需要运行后台作业时,都可以使用此 cmdlet。

语法:

Enable-WSManCredSSP  [-Role] <String> [[-DelegateComputer] <String[]>] [-Force] [<CommonParameters>]

示例:

Enable-WSManCredSSP -Role "Client" -DelegateComputer "testServer02.test.com"

4.禁用-WSManCredSSP

此 cmdlet 用于禁用所需系统上的 Credssp 身份验证机制。使用此机制时,将使用用户凭据进行身份验证。每当需要运行后台作业时,都可以使用此 cmdlet。要在客户端上禁用,请指定角色为客户端,要在服务器上禁用,请将角色指定为服务器。

语法:

Disable-WSManCredSSP  [-Role] <String>[<CommonParameters>]

示例:

Disable-WSManCredSSP -Role Client

上述 cmdlet 禁用客户端计算机上的 credssp

Disable-WSManCredSSP -Role Client

上述 cmdlet 禁用服务器计算机上的 credssp。

5. 获取 WSManCredSSP

此 cmdlet 用于获取客户端计算机或服务器中存在的凭据安全支持提供程序。输出表示身份验证是启用还是禁用。这还显示有关允许新凭据的信息。

语法:

Get-WSManCredSSP []

示例:

Get-WSManCredSSP

如果未启用 credssp,则会显示一条消息,提示机器未配置。

6. 获取 WSManInstance

此 cmdlet 用于查找由统一资源标识符定义的管理资源。输出采用复杂 xml 或对象的形式。它使用 WS 管理连接的连接或传输层来检索信息。

语法:

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

示例:

Get-WSManInstance -ResourceURI wmicimv2/win32_service -SelectorSet @{name="winrm"} -ComputerName "testServer01"

7. 调用-WSManAction

这会引发对由 uri 表示的对象的操作。参数以键值对的形式提供。它使用传输层来执行操作。

语法:

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

示例:

Invoke-WSManAction -Action startservice -ResourceURI wmicimv2/win32_service  -SelectorSet @{name="spooler"} -Authentication default

8.New-WSManInstance

此 cmdlet 创建一个新的管理资源实例。它使用资源 uri 和输入文件来创建新资源。

语法:

New-WSManInstance   [-ConnectionURI <Uri>]   [-FilePath <String>]   [-OptionSet <Hashtable>]   [-ResourceURI] <Uri>   [-SelectorSet] <Hashtable>   [-SessionOption <SessionOption>]   [-ValueSet <Hashtable>]   [-Credential <PSCredential>]   [-Authentication <AuthenticationMechanism>]   [-CertificateThumbprint <String>][<CommonParameters>]

9.WS-管理枚举

以下是在 PowerShell 中实现的枚举。这些都存在于软件开发工具包中。

10. 新-WSManSessionOption

这将创建一个新的哈希表会话选项,用作 WS-Management cmdlet 的输入。这些可以作为输入传递到以下 cmdlet。

  • 获取 WSManInstance
  • 设置 WSManInstance
  • 调用 WSManAction
  • 连接-WSMan

语法:

New-WSManSessionOption   [-ProxyAccessType <ProxyAccessType>]   [-ProxyAuthentication <ProxyAuthentication>]   [-ProxyCredential <PSCredential>]   [-SkipCACheck]   [-SkipCNCheck]   [-SkipRevocationCheck]   [-SPNPort <Int32>]   [-OperationTimeout <Int32>]   [-NoEncryption]   [-UseUTF16][<CommonParameters>]

代理访问类型指定用于定位服务器的机制。它的一些值是 ProxyIEConfig、ProxywinHttpConfig、ProxyAutoDetect 和 ProxyNoProxyServer。 ProxyIeConfig 是默认值。

代理身份验证参数表示所使用的身份验证机制。此参数的值为 Basic、Digest 和 Negotiate。协商是默认值。

示例:

$sess = New-WSManSessionOption -OperationTimeout 10000
Connect-WSMan -ComputerName "server01" -SessionOption $sess

输入:

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"

输出:

[玩转系统] WinRM PowerShell | PowerShell 中 WinRm 的语法和示例

结论

因此,本文详细介绍并解释了 PowerShell 中的 WinRM。它解释了 WinRM 类中可用的各种 cmdlet,并用适当的语法和示例解释了每个 cmdlet。本文还介绍了如何使用各种 cmdlet 通过 WinRM 机制连接到远程计算机。要了解更多详细信息,建议编写并练习示例程序。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯