远程连接的身份验证

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。

如果指定 Negotiate、Digest 或 Basic 身份验证,但无法提供 ConnectionOptions 对象,则会收到一条错误,指示需要显式凭据。 如果 HTTPS 不是传输,则必须在受信任的主机列表中配置目标远程计算机。

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

基本身份验证

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

摘要式身份验证

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

协商身份验证

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

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

\ HKEY_LOCAL_MACHINE软件\微软\窗户\CurrentVersion\政策\系统\LocalAccountTokenFilterPolicy = 1

Kerberos 身份验证

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

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

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

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

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

注意

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 远程管理