远程连接的身份验证

Windows远程管理通过支持多种标准身份验证和消息加密方法来维护计算机之间通信的安全性。

默认组访问

在设置过程中,WinRM 将创建本地组 WinRMRemoteWMIUsers__。 然后,WinRM 将远程访问限制为不是本地管理组或WinRMRemoteWMIUsers__组成员 的任何 用户。 可以通过在命令提示符处键入 net localgroup WinRMRemoteWMIUsers__ /add <domain>\<username>,将本地用户、域用户或域组添加到WinRMRemoteWMIUsers__。 (可选)可以使用组策略将用户添加到组中。

默认身份验证设置

默认凭据、用户名和密码是运行脚本的登录用户帐户的凭据。

更改为远程计算机上的另一个帐户

  1. ConnectionOptionsIWSManConnectionOptions 对象中指定凭据,并向 CreateSession 调用提供凭据。
  2. CreateSession 调用的 flags 参数中设置 WSManFlagCredUserNamePassword

以下列表包含脚本或应用程序在默认凭据下运行时发生的情况的列表:

  • 当客户端位于域中且远程目标字符串不是以下项之一时,Kerberos 是身份验证的默认方法:localhost、127.0.0.1 或 [:1]。
  • 客户端不在域中时,协商是默认方法,但远程目标字符串是以下项之一:localhost、127.0.0.1 或 [:1]。

如果使用 ConnectionOptions 对象提供显式凭据,则 Negotiate 是默认方法。 协商身份验证确定正在进行的身份验证方法是 Kerberos 还是 NTLM,具体取决于计算机是否在域或工作组中。 如果使用本地帐户连接到远程目标计算机,则帐户应以计算机名称作为前缀。 例如,myComputer\myUsername。

如果指定“协商”、“摘要”或“基本”身份验证,并且无法提供 ConnectionOptions 对象,则会收到指示需要显式凭据的错误。 如果 HTTPS 不是传输,则必须在受信任的主机列表中配置目标远程计算机。

有关在默认配置设置中启用的身份验证类型的详细信息,请参阅 Windows 远程管理的安装和配置

基本身份验证

若要在调用 WSMan.CreateSession 中显式建立基本身份验证,请在标志参数中设置 WSManFlagUseBasicWSManFlagCredUserNamePassword 标志。 在 WinRM 客户端和 WinRM 服务器的默认配置设置中禁用基本身份验证。

摘要式身份验证

若要在调用 WSMan.CreateSession 中显式建立摘要式身份验证,请在标志参数中设置 WSManFlagUseDigest标志。 不支持摘要。 无法为 WinRM 服务器组件配置它。

协商身份验证

若要显式建立协商身份验证(也称为Windows集成身份验证),请在调用 WSMan.CreateSession 时,在 flags 参数中设置 WSManFlagUseNegotiate 标志。

用户帐户控制 (UAC) 会影响对 WinRM 服务的访问。 在工作组中使用协商身份验证时,只有内置管理员帐户可以访问该服务。 若要允许管理员组中的所有帐户访问该服务,请设置以下注册表值:

\ HKEY_LOCAL_MACHINE软件\微软\\ Windows CurrentVersionPoliciesSystemLocalAccountTokenFilterPolicy\\\ = 1

Kerberos 身份验证

若要在调用 WSMan.CreateSession 中显式建立 Kerberos 身份验证,请在标志参数中设置 WSManFlagUseKerberos 标志。 客户端和服务器计算机都必须加入域。 如果使用 Kerberos 作为身份验证方法,则不能在调用 WSMan.CreateSessionIWSMan::CreateSession 时使用 IP 地址。

基于客户端证书的身份验证

若要在调用 WSMan.CreateSession 时建立基于客户端证书的身份验证,请在 flags 参数中设置 WSManFlagUseClientCertificate 标志。

必须先使用 Winrm 命令行工具在客户端和服务上启用证书身份验证。 有关详细信息,请参阅 “启用身份验证选项”。 还必须在 WinRM 服务器计算机上的 CertMapping 表中创建一个条目。 这会在一个或多个证书和本地帐户之间建立映射。 证书用于身份验证和授权后,相应的本地帐户用于 WinRM 服务执行的操作。

可以为特定资源 URI 创建映射。 若要了解详细信息,包括如何创建 CertMapping 表条目,请在命令提示符下键入 winrm 帮助证书映射

注意

此上下文中 WinRM 可使用的最大大小证书为 16KB。

 

启用或禁用身份验证选项

系统安装时的默认身份验证选项是 Kerberos。 有关详细信息,请参阅Windows远程管理的安装和配置

如果脚本或应用程序需要未启用的特定身份验证方法,则必须更改配置以启用这种类型的身份验证。 可以使用 Winrm 命令行工具或通过Windows远程管理组策略对象的组策略进行更改。 还可以选择禁用某些身份验证方法。

使用 Winrm 工具启用或禁用身份验证

  1. 若要设置 WinRM 客户端的配置,请使用 Winrm Set 命令并指定客户端。 例如,以下命令禁用客户端的摘要身份验证。

    winrm set winrm/config/client/auth @{Digest=“false”}

  2. 若要设置 WinRM 服务器的配置,请使用 Winrm Set 命令并指定服务。 例如,以下命令为服务启用 Kerberos 身份验证。

    winrm set winrm/config/service/auth @{Kerberos=“true”}

关于Windows远程管理

WSMan.CreateSession

使用Windows远程管理