用户帐户控制和 WMI

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

以下部分介绍了 UAC 功能:

用户帐户控制

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

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

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

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

在提升模式下运行脚本

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

运行 WMI Command-Line 工具所需的帐户

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

  • mofcomp

  • wmic

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

  • winmgmt

  • wmiadap

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

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

处理 UAC 下的远程连接

无论是连接到域中的远程计算机还是在工作组中,都将确定是否发生 UAC 筛选。

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

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

必须对安全性进行调整才能使用此帐户,因为该帐户永远不具有管理权限。 为本地用户指定:

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

不建议通过更改控制远程 UAC 的注册表项来禁用远程 UAC,但在工作组中可能需要这样做。 注册表项为 HKEY _ LOCAL _ MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ 策略 \ system \ LocalAccountTokenFilterPolicy。 如果此项的值为零 (0) ,则启用远程 UAC 访问令牌筛选。 当该值为1时,远程 UAC 处于禁用状态。

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

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

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

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

关于 WMI

访问 WMI 安全对象

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