用户帐户控制和 WMI

用户帐户控制 (UAC) 会影响从命令行工具返回的 WMI 数据、远程访问以及脚本必须如何运行。 有关 UAC 的详细信息,请参阅用户帐户控制入门

以下部分介绍 UAC 功能:

用户帐户控制

在 UAC 下,本地管理员组中的帐户具有两个访问令牌,一个具有标准用户权限,一个具有管理员权限。 由于 UAC 访问令牌筛选,脚本通常在标准用户令牌下运行,除非是以“管理员身份”在提升的权限模式下运行。 并非所有脚本都需要管理权限。

脚本无法以编程方式确定脚本是在标准用户安全令牌下运行,还是管理员令牌下运行。 脚本可能会失败并出现拒绝访问错误。 如果脚本需要管理员权限,则必须在提升的模式下运行。 对 WMI 命名空间的访问因脚本是否在提升模式下运行而异。 某些 WMI 操作(例如获取数据或执行大多数方法)不需要帐户以管理员身份运行。 有关默认访问权限的详细信息,请参阅访问 WMI 命名空间执行特权操作

由于用户帐户控制,运行脚本的帐户必须位于本地计算机上的“管理员”组中,才能使用提升的权限运行。

可以通过执行以下方法之一来运行具有提升权限的脚本或应用程序:

在提升模式下运行脚本

  1. 打开命令提示符窗口,方法是右键单击“开始”菜单中的“命令提示符”,然后单击“以管理员身份运行”。
  2. 使用任务计划程序计划脚本以提升运行。 有关详细信息,请参阅运行任务的安全上下文
  3. 使用内置管理员帐户运行脚本。

运行 WMI 命令行工具所需的帐户

若要运行以下 WMI 命令行工具,你的帐户必须位于“管理员”组中,并且必须从提升的命令提示符运行该工具。 内置管理员帐户还可以运行以下工具。

  • mofcomp

  • wmic

    系统安装后首次运行 Wmic 时,必须从提升的命令提示符运行 Wmic。 除非 WMI 操作需要管理员权限,否则后续执行 Wmic 可能不需要提升的模式。

  • winmgmt

  • wmiadap

若要运行 WMI 控制 (Wmimgmt.msc) 并更改 WMI 命名空间安全性或审核设置,帐户必须具有显式授予或位于本地管理员组中的编辑安全权限。 内置管理员帐户还可以更改命名空间的安全性或审核设置。

Wbemtest.exe(Microsoft 客户支持服务不支持的命令行工具)可由本地管理员组中的帐户运行,除非特定操作需要通常授予管理员帐户的权限。

处理 UAC 下的远程连接

是否进行 UAC 筛选取决于要连接到域中的远程计算机还是连接到工作组中的远程计算机。

如果计算机是域的一部分,请使用远程计算机的本地管理员组中的域帐户连接到目标计算机。 然后,UAC 访问令牌筛选不会影响本地管理员组中的域帐户。 请勿在远程计算机上使用本地非域帐户,即使该帐户位于管理员组中。

在工作组中,连接到远程计算机的帐户是该计算机上的本地用户。 即使帐户位于管理员组中,UAC 筛选也意味着脚本以标准用户身份运行。 最佳做法是在专用于远程连接的目标计算机上创建专用的本地用户组或用户帐户。

必须调整安全性才能使用此帐户,因为该帐户从未拥有管理权限。 为本地用户提供:

  • 远程启动和激活访问 DCOM 的权限。 有关详细信息,请参阅连接到远程计算机上的 WMI
  • 远程访问 WMI 命名空间的权限(远程启用)。 有关详细信息,请参阅访问 WMI 命名空间
  • 访问特定安全对象的权限,具体取决于对象所需的安全性。

如果使用本地帐户(因为您位于工作组中,或者它是本地计算机帐户),则可能会强制向本地用户提供特定任务。 例如,你可以通过 SC.exe 命令、Win32_ServiceGetSecurityDescriptorSetSecurityDescriptor 方法或使用 Gpedit.msc 的组策略授予用户停止或启动特定服务的权限。 某些安全对象可能不允许标准用户执行任务,并且不提供更改默认安全性的方法。 在这种情况下,可能需要禁用 UAC,这样系统就不会筛选本地用户帐户,而你将成为完全管理员。 请注意,出于安全原因,禁用 UAC 应该是最后的手段。

不建议通过更改控制远程 UAC 的注册表项来禁用远程 UAC,但在工作组中可能需要这样做。 注册表项是 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system\LocalAccountTokenFilterPolicy。 如果此项的值为零 (0),则会启用远程 UAC 访问令牌筛选。 如果值为 1,则会禁用远程 UAC。

UAC 对返回到脚本或应用程序的 WMI 数据的影响

如果脚本或应用程序在管理员组中的帐户下运行,但未使用提升的权限运行,则可能无法获取返回的所有数据,因为此帐户以标准用户身份运行。 某些类的 WMI 提供程序不会将所有实例返回到标准用户帐户,也不会返回给由于 UAC 筛选而未以完全管理员身份运行的管理员帐户。

当帐户被 UAC 筛选时,以下类不会返回某些实例:

当帐户被 UAC 筛选时,以下类不会返回某些属性:

关于 WMI

访问 WMI 安全对象

更改安全对象的访问安全性