about_WSMan_Provider
WSMan
WSMan:
提供对 Web 服务管理(WS-Management)配置信息的访问权限。
此信息仅适用于在 Windows 上运行的 PowerShell。
使用适用于 PowerShell 的 WSMan 提供程序,可以在本地或远程计算机上添加、更改、清除和删除 WS-Management 配置数据。
WSMan 提供程序公开一个 PowerShell 驱动器,其中包含与 WS-Management 配置设置的逻辑分组相对应的目录结构。 这些分组称为容器。
从 Windows PowerShell 3.0 开始,WSMan 提供程序已更新,以支持会话配置的新属性,例如 OutputBufferingMode。 会话配置显示为 WSMan:
驱动器插件目录中的项,属性显示为每个会话配置中的项。
WSMan 提供程序支持本文中介绍的以下 cmdlet。
备注
可以使用 WSMan:
驱动器中的命令来更改新属性的值。 但是,不能在 PowerShell 2.0 中使用 WSMan:
驱动器来更改 Windows PowerShell 3.0 中引入的属性。
尽管未生成任何错误,但命令无效,若要更改这些设置,请使用 Windows PowerShell 3.0 中的 WSMan 驱动器。
客户端:可以配置 WS-Management 客户端的各个方面。 配置信息存储在注册表中。
服务:可以配置 WS-Management 服务的各个方面。 配置信息存储在注册表中。
备注
服务配置有时称为服务器配置。
Shell:可以配置 WS-Management shell 的各个方面,例如允许远程访问 shell 的设置(AllowRemoteShellAccess),以及允许的最大并发用户数(MaxConcurrentUsers)。
侦听器:可以创建和配置侦听器。 侦听器是实现 WS-Management 协议以发送和接收消息的管理服务。
插件:WS-Management 服务加载并使用插件来提供各种功能。 默认情况下,PowerShell 提供三个插件:
- 事件转发插件。
- Microsoft.PowerShell 插件。
- Windows Management Instrumentation (WMI) 提供程序插件。 这三个插件支持事件转发、配置和 WMI 访问。
ClientCertificate:可以创建和配置客户端证书。 WS-Management 客户端配置为使用证书身份验证时,将使用客户端证书。
本地计算机的 WSMan 提供程序的目录层次结构如下所示。
WSMan:\localhost
--- Client
--- Service
--- Shell
--- Listener
------ <Specific_Listener>
--- Plugin
------ Event Forwarding Plugin
--------- InitializationParameters
--------- Resources
------------ Security
------ Microsoft.Powershell
--------- InitializationParameters
--------- Resources
------------ Security
------ WMI Provider
--------- InitializationParameters
--------- Resources
------------ Security
--- ClientCertificate
远程计算机的 WSMan 提供程序的目录层次结构与本地计算机相同。 但是,若要访问远程计算机的配置设置,需要使用 Connect-WSMan连接到远程计算机。 与远程计算机建立连接后,远程计算机的名称将显示在提供程序中。
WSMan:\<Remote_Computer_Name>
此命令使用 Set-Location
cmdlet 将当前位置更改为 WSMan:
驱动器。
Set-Location WSMan:
若要返回到文件系统驱动器,请键入驱动器名称。 例如,键入。
Set-Location C:
此命令使用 Set-Location
命令将当前位置更改为远程系统存储位置中的根位置。 使用反斜杠 \
或正斜杠 /
来指示 WSMan:
驱动器的级别。
Set-Location -Path WSMan:\SERVER01
备注
上述命令假定已存在与远程系统的连接。
此命令使用 Get-ChildItem
cmdlet 在 Localhost 存储位置显示 WS-Management 存储。
Get-ChildItem -path WSMan:\Localhost
如果位于 WSMan:
驱动器中,可以省略驱动器名称。
此命令使用 Get-ChildItem
cmdlet 在远程计算机“SERVER01”存储位置显示 WS-Management 存储区。
Get-ChildItem -path WSMan:\SERVER01
备注
上述命令假定已存在与远程系统的连接。
可以使用 Set-Item
cmdlet 更改 WSMAN
驱动器中的配置设置。 以下示例将 TrustedHosts 值设置为接受后缀为“contoso.com”的所有主机。
# You do not need to specify the -Path parameter name when using Set-Item.
PS WSMAN:\localhost\Client> Set-Item .\TrustedHosts -Value "*.contoso.com"
Set-Item
cmdlet 支持附加值而不是更改值的附加参数 -Concatenate
。 以下示例将新值“*.domain2.com”追加到存储在 TrustedHost:
中的旧值
Set-Item WSMAN:\localhost\Client\TrustedHosts *.domain2.com -Concatenate
New-Item
cmdlet 在提供程序驱动器中创建项。 每个提供程序都有可以创建的不同项类型。 在 WSMAN:
驱动器中,可以创建 侦听器,该侦听器配置为接收和响应远程请求。 以下命令使用 New-Item
cmdlet 创建新的 HTTP 侦听器。
New-Item -Path WSMan:\localhost\Listener -Address * -Transport HTTP -force
此命令为 WS-Management 服务创建插件(寄存器)。
New-Item -Path WSMan:\localhost\Plugin `
-Plugin TestPlugin `
-FileName %systemroot%\system32\WsmWmiPl.dll `
-Resource http://schemas.dmtf.org/wbem/wscim/2/cim-schema `
-SDKVersion 1 `
-Capability "Get","Put","Invoke","Enumerate" `
-XMLRenderingType text
此命令在 TestPlugin 的资源目录中创建资源条目。 此命令假定已使用单独的命令创建 TestPlugin。
New-Item -Path WSMan:\localhost\Plugin\TestPlugin\Resources `
-ResourceUri http://schemas.dmtf.org/wbem/wscim/3/cim-schema `
-Capability "Enumerate"
此命令在Resource_5967683(特定资源)的安全目录中创建安全条目。 此命令假定已使用单独的命令创建资源条目。
$path = "WSMan:\localhost\Plugin\TestPlugin\Resources\Resource_5967683"
New-Item -Path $path\Security `
-Sddl "O:NSG:BAD:P(A;;GA;;;BA)S:P(AU;FA;GA;;;WD)(AU;SA;GWGX;;;WD)"
此命令创建 ClientCertificate 条目,该条目可供 WS-Management 客户端使用。 新的 ClientCertificate 将显示在 ClientCertificate 目录中显示为“ClientCertificate_1234567890”。 所有参数都是必需的。 颁发者 必须是颁发者证书的指纹。
$cred = Get-Credential
New-Item -Path WSMan:\localhost\ClientCertificate `
-Issuer 1b3fd224d66c6413fe20d21e38b304226d192dfe `
-URI wmicimv2/* `
-Credential $cred;
此命令在“InitializationParameters”目录中创建名为“testparametername”的初始化参数。 此命令假定已使用单独的命令创建“TestPlugin”。
New-Item -Path WSMan:\localhost\Plugin\TestPlugin\InitializationParameters `
-ParamName testparametername `
-ParamValue testparametervalue
动态参数是由 PowerShell 提供程序添加的 cmdlet 参数,仅在启用提供程序的驱动器中使用 cmdlet 时才可用。
指定创建此侦听器的地址。 该值可以是下列值之一:
- 文本字符串“*”。 (通配符(
*
) 使命令绑定所有网络适配器上的所有 IP 地址。 - 文本字符串“IP:”后接 IPv4 点十进制格式或 IPv6 克隆十六进制格式的有效 IP 地址。
- 文本字符串“MAC:”后跟适配器的 MAC 地址。 例如:MAC:32-a3-58-90-be-cc。
备注
创建侦听器时设置地址值。
使用 插件时,此参数指定此统一资源标识符(URI)支持的作。 必须为 URI 支持的每种作类型创建一个条目。 如果作支持该作,则可以指定给定作的任何有效属性。
这些属性包括 SupportsFiltering 和 SupportsFragment。
-
创建:URI 支持创建作。
- 如果 Create作支持概念,则使用 SupportFragment 属性。
- SupportFiltering 属性对创建作无效,应设置为“False”。
备注
如果还支持 Shell作,则此作对 URI 无效。
-
删除:URI 支持删除作。
- 如果 Delete作支持概念,则使用 SupportFragment 属性。
- SupportFiltering 属性对 Delete作无效,应设置为“False”。
备注
如果还支持 Shell作,则此作对 URI 无效。
-
枚举:URI 支持枚举作。
- 枚举作不支持 SupportFragment 属性,应设置为 False。
- SupportFiltering 属性有效,如果插件支持筛选,则此属性应设置为“True”。
备注
如果还支持 Shell作,则此作对 URI 无效。
-
获取:URI 支持获取作。
- 如果 Get作支持概念,则使用 SupportFragment 属性。
- SupportFiltering 属性对 Get作无效,应设置为“False”。
备注
如果还支持 Shell作,则此作对 URI 无效。
-
调用:URI 支持调用作。
- Invoke作不支持 SupportFragment 属性,应设置为 False。
- SupportFiltering 属性无效,应设置为“False”。
备注
如果还支持 Shell作,则此作对 URI 无效。
-
Put:URI 支持放置作。
- 如果 Put作支持概念,则使用 SupportFragment 属性。
- SupportFiltering 属性对 Put作无效,应设置为“False”。
备注
如果还支持 Shell作,则此作对 URI 无效。
-
订阅:URI 支持订阅作。
- 订阅作不支持 SupportFragment 属性,应设置为 False。
- SupportFiltering 属性对订阅作无效,应设置为“False”。
备注
如果还支持 Shell作,则此作对 URI 无效。
-
Shell:URI 支持 Shell作。
- Shell作不支持 SupportFragment 属性,应设置为“False”。
- SupportFiltering 属性对 Shell作无效,应设置为“False”。
备注
如果还支持任何其他作,则此作对 URI 无效。
备注
如果为 URI、Get、Put、Create、Delete、Invoke 和 Enumerate作配置 Shell作,则会在 WS-Management (WinRM) 服务内部处理枚举作以管理 shell。 因此,插件无法处理作。
指定服务证书的指纹。
此值表示证书指纹字段中两位数十六进制值的字符串。 它指定有权执行此作的用户帐户的数字公钥证书(X509)。 证书用于基于客户端证书的身份验证。 它们只能映射到本地用户帐户,它们不适用于域帐户。 若要获取证书指纹,请使用 PowerShell Cert:
驱动器中的 Get-Item
或 Get-ChildItem
cmdlet。
指定是启用或禁用侦听器。 默认值为 True。
指定作插件的文件名。 收到请求时,放入此条目的任何环境变量都将在用户的上下文中展开。 由于每个用户可能具有相同环境变量的不同版本,因此每个用户可能具有不同的插件。 此条目不能为空,并且必须指向有效的插件。
指定运行 WS-Management (WinRM) 服务的计算机的主机名。
该值必须是完全限定的域名、IPv4 或 IPv6 文本字符串或通配符。
指定颁发证书的证书颁发机构的名称。
该插件插入和扩展 WS-Management 的功能。 WSW-Management 插件 API 提供的功能使用户能够通过为受支持的资源 URI 和作实现某些 API 来编写插件。 为 WS-Management(WinRM)服务或 Internet 信息服务(IIS)配置插件后,插件将分别加载到 WS-Management 主机或 IIS 主机中。 远程请求将路由到这些插件入口点以执行作。
指定为其创建此侦听器的 TCP 端口。 可以指定从 1 到 65535 的任何值。
指定表示非重复类型的管理作或值的终结点。 服务公开一个或多个资源,某些资源可以有多个实例。 管理资源类似于 WMI 类或数据库表,实例类似于类的实例或表中的行。 例如,Win32_LogicalDisk 类表示资源。
Win32_LogicalDisk="C:\\"
是资源的特定实例。
统一资源标识符(URI)包含一个前缀和一个资源的路径。 例如:
http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk
http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_NumericSensor
指定标识计算机上的特定资源类型的统一资源标识符(URI),例如磁盘或进程。
URI 由前缀和资源路径组成。 例如:
http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk
http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_NumericSensor
指定 WS-Management 插件 SDK 的版本。 唯一的有效值为 1。
指定由证书标识的实体。
指定用于发送和接收 WS-Management 协议请求和响应的传输。 该值必须是 HTTP 或 HTTPS。
注意:创建侦听器时设置传输值。
根据 Sddl 参数的值标识为其授权访问的 URI。
要接受 HTTP 或 HTTPS 请求的 URL 前缀。 这是一个字符串,仅包含字符 [a-z]
、[A-Z]
、[9-0]
、下划线(_
)和反斜杠(/
)。 字符串不得以反斜杠开头或以反斜杠结尾(/
)。 例如,如果计算机名称为“SampleComputer”,则 WS-Management 客户端将在目标地址中指定 http://SampleMachine/URLPrefix
。
指定初始化参数的值,它是用于指定配置选项的插件特定值。
指定通过 WSMAN_DATA 对象将 XML 传递到插件的格式。 以下是有效值:
- 文本:传入 XML 数据包含在 WSMAN_DATA_TYPE_TEXT 结构中,该结构将 XML 表示为 PCWSTR 内存缓冲区。
- XMLReader:传入 XML 数据包含在 WSMAN_DATA_TYPE_WS_XML_READER 结构中,该结构将 XML 表示为 XmlReader 对象,该对象在“WebServices.h”头文件中定义。
提供程序 cmdlet 接受管道输入。 可以使用管道将提供程序数据从一个 cmdlet 发送到另一个提供程序 cmdlet 来简化任务。 若要详细了解如何将管道与提供程序 cmdlet 配合使用,请参阅本文中提供的 cmdlet 参考。
从 Windows PowerShell 3.0 开始,你可以获取提供程序 cmdlet 的自定义帮助主题,这些 cmdlet 在文件系统驱动器中的行为方式。
若要获取为文件系统驱动器自定义的帮助主题,请在文件系统驱动器中运行 Get-Help 命令,或使用 Get-Help 的 -Path
参数来指定文件系统驱动器。
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path wsman: