使用 VBScript 设置身份验证服务
使用脚本访问 Windows Management Instrumentation (WMI) 服务器时,可以选择 NT LAN Manager (NTLM) 或 Kerberos 身份验证协议。 除非使用委托,否则不需要指定 Kerberos。 有关详细信息,请参阅连接到第三个计算机委托。
由于操作系统版本在使用的身份验证服务方面有所不同,因此建议你在连接到远程系统时不要为 authority 字段指定值, 而应允许组件对象模型 (DCOM) 的操作系统和分布式版本选择 NTLM 或 Kerberos。 如果指定了身份验证服务,则语法需要服务器主体名称,该名称是目标计算机的名称,而不是域控制器的名称。
只能在连接到远程 WMI 服务器时使用 authority 参数。 如果尝试将授权级别设置为名字对象的一部分或通过调用 SWbemLocator.ConnectServer 进行本地连接,连接尝试将失败。
执行以下过程,以指定要在 SWbemLocator.ConnectServer 方法或名字对象字符串连接的 strAuthority 参数中使用的身份验证服务。
使用 WMI 脚本 API 指定 NTLM 或 Kerberos 身份验证
如果 strAuthority 参数以字符串“kerberos:”开头,WMI 会假定该字符串指的是 Kerberos 主体名称,因此会使用 Kerberos 身份验证。 如果 strAuthority 参数以字符串“ntlmdomain:”开头,WMI 会改用 NTLM 身份验证。
你也可以使用名字对象的 authority 部分来指定用于连接到 WMI 的身份验证类型。 若要在使用名字对象时使用 Kerberos 身份验证,请包括字符串“authority=kerberos:”,后跟主体名称。 若要使用 NTLM 身份验证,请包括字符串“authority=ntlmdomain:”,后跟 NTLM 域名。
以下示例展示了一个名字对象,该名字对象使用主体“mydomain\server”请求 Kerberos 身份验证。
winmgmts:{impersonationLevel=delegate, _ authority=kerberos:mydomain\server} _ !//myserver/root/default:__cimomidentification=@
相比之下,以下示例展示了一个名字对象,该名字对象使用域“mydomain”请求 NTLM 身份验证。
winmgmts:{impersonationLevel=impersonate, _ authority=ntlmdomain:mydomain} _ !//myserver/root/default:__cimomidentification=@