about_WSMan_Provider

提供程序名称

WSMan

驱动器

WSMan:

简短说明

提供对 Web 服务管理 (WS-Management) 配置信息的访问权限。

详细说明

使用适用于 PowerShell 的 WSMan 提供程序,可以添加、更改、清除和删除WS-Management或远程计算机上的配置数据。

WSMan 提供程序公开一个 PowerShell 驱动器,其目录结构对应于配置设置WS-Management分组。 这些分组称为容器。

从 Windows PowerShell 3.0 开始 ,WSMan 提供程序已更新,以支持会话配置的新属性,例如 OutputBufferingMode。 会话配置在驱动器的 Plugin 目录中显示为项,属性在每个会话配置中显示为 WSMan: 项。

WSMan 提供程序支持本文中介绍的以下 cmdlet。

备注

可以使用驱动器中的 WSMan: 命令来更改新属性的值。 但是,不能在 PowerShell 2.0 中使用该驱动器来更改 Windows PowerShell WSMan: 3.0 中引入的属性。 尽管未生成任何错误,但命令并不有效 若要更改这些设置,请使用 3.0 Windows PowerShell WSMan 驱动器。

WSMan 的组织:驱动器

  • 客户端:可以配置客户端WS-Management方面。 配置信息存储在注册表中。

  • 服务:可以配置服务WS-Management方面。 配置信息存储在注册表中。

    备注

    服务配置有时称为服务器配置。

  • Shell: 可以配置 WS-Management shell 的各个方面,例如设置以允许远程 shell 访问 (AllowRemoteShellAccess) 以及允许的最大并发用户数 (MaxConcurrentUsers) 。

  • 侦听器:可以创建和配置侦听器。 侦听器是一项用于实现 WS-Management 协议以发送和接收消息的管理服务。

  • 插件:插件由服务加载WS-Management,以提供各种功能。 默认情况下,PowerShell 提供三个插件:

    • 事件转发插件。
    • Microsoft.PowerShell 插件。
    • WMI Windows Management Instrumentation (提供程序) 插件。 这三个插件支持事件转发、配置和 WMI 访问。
  • ClientCertificate:你可以创建和配置客户端证书。 当 WS-Management 客户端配置为使用证书身份验证时,将使用客户端证书。

WSMan 提供程序的目录层次结构

本地计算机的 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

备注

以上命令假定与远程系统的连接已存在。

显示 WSMan:驱动器的内容

此命令使用 Get-Childitem cmdlet 来显示 Localhost 存储位置中的 WS-Management 存储。

Get-ChildItem -path WSMan:\Localhost

如果在 WSMan: 驱动器中,则可以省略驱动器名称。

此命令使用 Get-Childitem cmdlet 来显示远程计算机 "SERVER01" 存储位置中的 WS-Management 存储。

Get-ChildItem -path WSMan:\SERVER01

备注

以上命令假定与远程系统的连接已存在。

设置 WSMAN:驱动器中的项的值

可以使用 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-ItemCmdlet 支持附加 -Concatenate 一个值而不是对其进行更改的附加参数。 下面的示例将一个新值 "* domain2.com" 追加到存储在 TrustedHost:

Set-Item WSMAN:\localhost\Client\TrustedHosts *.domain2.com -Concatenate

在 WSMAN:驱动器中创建项

创建新侦听器

New-ItemCmdlet 在提供程序驱动器中创建项。 每个提供程序都具有您可以创建的不同项类型。 在 WSMAN: 驱动器中,可以创建可配置为接收和响应远程请求的 侦听器 。 以下命令使用 cmdlet 创建新的 HTTP 侦听器 New-Item

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 的 Resources 目录中创建资源条目。 此命令假设已使用单独的命令创建了 TestPlugin。

New-Item -Path WSMan:\localhost\Plugin\TestPlugin\Resources `
         -ResourceUri http://schemas.dmtf.org/wbem/wscim/3/cim-schema `
         -Capability "Enumerate"

为资源创建新的安全条目

此命令将在 Resource_5967683(一种特定资源)的 Security 目录中创建一个安全条目。 此命令假定资源条目是使用单独的命令创建的。

$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)"

创建新的客户端证书

此命令创建 WS-Management 客户端可以使用的 ClientCertificate 项。 新的 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 时,这些参数才可用。

Address <String>

指定已为其创建此侦听器的地址。 值可以是下列任一值:

  • 文本字符串 "*"。 (通配符 (*) 使命令绑定所有网络适配器上的所有 IP 地址。 )
  • 文本字符串 "IP:" 后跟采用 IPv4 点分十进制格式或 IPv6 克隆十六进制格式的有效 IP 地址。
  • 文本字符串 "MAC:" 后跟适配器的 MAC 地址。 例如: MAC: 32-a3-58-90。

备注

在创建侦听器时设置 Address 值。

支持的 cmdlet

Capability <Enumeration>

使用 插件 时,此参数将指定 (URI) 的统一资源标识符所支持的操作。 你必须为该 URI 支持的每种类型的操作都创建一个条目。 如果操作支持给定操作,则可以为该操作指定任何有效的特性。

这些属性包括 SupportsFilteringSupportsFragment

  • Create: URI 支持创建操作。
    • 如果创建操作支持该概念,则使用 SupportFragment 属性。
    • SupportFiltering 特性对于 Create 操作无效,应设置为 "False"。

    备注

    如果还支持 Shell 操作,则此操作对于 URI 无效。

  • 删除:支持对 URI 执行删除操作。
    • 如果删除操作支持该概念,则使用 SupportFragment 属性。
    • SupportFiltering 特性对于删除操作无效,应设置为 "False"。

    备注

    如果还支持 Shell 操作,则此操作对于 URI 无效。

  • 枚举:在 URI 上支持枚举操作。
    • 枚举操作不支持 SupportFragment 属性,并且应将其设置为 False。
    • SupportFiltering 属性有效,并且如果插件支持筛选,则应将此属性设置为 "True"。

    备注

    如果还支持 Shell 操作,则此操作对于 URI 无效。

  • Get:对 URI 支持 get 操作。
    • 如果 Get 操作支持该概念,则使用 SupportFragment 属性。
    • SupportFiltering 特性对于 Get 操作无效,应设置为 "False"。

    备注

    如果还支持 Shell 操作,则此操作对于 URI 无效。

  • 调用:对 URI 支持调用操作。
    • Invoke 操作不支持 SupportFragment 属性,应设置为 False。
    • SupportFiltering 属性无效,应设置为"False"。

    备注

    如果还支持 Shell 操作,则此操作对于 URI 无效。

  • Put:URI 支持 Put 操作。
    • 如果 Put 操作支持概念,则使用 SupportFragment 属性。
    • SupportFiltering 属性对 Put 操作无效,应设置为"False"。

    备注

    如果还支持 Shell 操作,则此操作对于 URI 无效。

  • 订阅:URI 支持订阅操作。
    • Subscribe 操作不支持 SupportFragment 属性,应设置为 False。
    • SupportFiltering 属性对 Subscribe 操作无效,应设置为"False"。

    备注

    如果还支持 Shell 操作,则此操作对于 URI 无效。

  • Shell:URI 支持 Shell 操作。
    • Shell 操作不支持 SupportFragment 属性,应设置为"False"。
    • SupportFiltering 属性对 Shell 操作无效,应设置为"False"。

    备注

    如果还支持任何其他操作,则此操作对 URI 无效。

    备注

    如果为 URI 配置了 Shell 操作,则将在 WS-Management (WinRM) 服务中从内部处理 Get、Put、Create、Delete、Invoke 和 Enumerate 操作,以管理 shell。 因此,插件不能处理这些操作。

支持的 Cmdlet

CertificateThumbprint <String>

指定服务证书的指纹。

此值表示证书的指纹字段中两位十六进制值的字符串。 它指定有权执行此操作的用户帐户的数字公钥证书 (X509)。 在基于客户端证书的身份验证中使用证书。 证书只能映射到本地用户帐户,而不适用于域帐户。 若要获取证书指纹,请使用 PowerShell 驱动器中的 Get-Item Get-ChildItem 或 cmdlet。 Cert:

支持的 Cmdlet

Enabled <Boolean>

指定是启用还是禁用侦听器。 默认值为 True。

支持的 Cmdlet

FileName(插件)<String>

指定操作插件的文件名。 收到请求时,放入此项的任何环境变量都将在用户的上下文中展开。 由于每个用户可以具有不同版本的同一环境变量,因此每个用户可以有不同的插件。 此项不能为空,必须指向有效的插件。

支持的 Cmdlet

HostName <String>

指定在其上运行 WS-Management (WinRM) 服务的计算机的主机名。

该值必须是完全限定的域名、IPv4 或 IPv6 文字字符串或通配符。

支持的 Cmdlet

Issuer <String>

指定颁发证书的证书颁发机构名称。

支持的 Cmdlet

这会插入并扩展 WS-Management 的功能。 WSW-Management 插件 API 提供了一项功能,使用户能够通过针对受支持的资源 Uri 和操作实现某些 Api 来编写插件。 为 WS-Management (WinRM) 服务或 Internet Information Services (IIS) 配置插件后,这些插件将分别在 WS-Management 主机或 IIS 主机中加载。 远程请求会路由到这些插件的入口点以执行操作。

支持的 Cmdlet

Port <Unsigned Short Integer>

指定为其创建此侦听器的 TCP 端口。 你可以指定 1 到 65535 之间的任何值。

支持的 Cmdlet

Resource <String>

指定表示不同类型的管理操作或值的终结点。 服务将公开一个或多个资源,并且一些资源可以具有多个实例。 管理资源类似于 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

支持的 Cmdlet

Resource <String>

指定用于标识计算机上特定类型的资源(例如磁盘或进程)的统一资源标识符 (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

支持的 Cmdlet

SDKVersion <String>

指定 WS-Management 插件 SDK 的版本。 唯一有效的值是 1.

支持的 Cmdlet

Subject <String>

指定由证书标识的实体。

支持的 Cmdlet

Transport <String>

指定要用于发送和接收 WS-Management 协议请求和响应的传输。 该值必须为 HTTP 或 HTTPS。

注意:传输值在创建侦听器时设置。

支持的 Cmdlet

URI <String>

标识为其基于 Sddl 参数的值授予访问权限的 URI。

支持的 Cmdlet

URLPrefix <String>

要在其上接受 HTTP 或 HTTPS 请求的 URL 前缀。 这是一个字符串,其中仅包含字符 [a-z][A-Z][9-0] 、下划线 (_) 和反斜杠 (/) 。 字符串不能以反斜杠开头或结尾 (/) 。 例如,如果计算机名称为 "SampleComputer",则 WS-Management 客户端将 http://SampleMachine/URLPrefix 在目标地址中指定。

支持的 Cmdlet

Value <String>

指定初始化参数的值,即一个用于指定配置选项的特定于插件的值。

支持的 Cmdlet

XMLRenderingType <String>

指定通过 WSMAN_DATA 对象将 XML 传递到插件的格式。 下面是有效的值:

  • 文本:传入的 XML 数据包含在 WSMAN_DATA_TYPE_TEXT 结构中,该结构将 XML 表示为 PCWSTR 内存缓冲区。
  • XMLReader:传入的 XML 数据包含在 WSMAN_DATA_TYPE_WS_XML_READER 结构中,该结构将 XML 表示为 XmlReader 对象,该对象是在 "WebServices" 标头文件中定义的。

支持的 Cmdlet

使用管道

提供程序 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:

另请参阅

about_Providers