我有一个在远程主机上执行WMI查询的应用程序。我正在尝试定义用于执行查询的用户所需的最小安全权限。
我已经定义了具有最小权限的用户。我发现此用户具有足够的权限来执行所需的查询,但前提是相同的用户在远程主机上以交互方式登录。
例如,如果我使用nonadmin用户登录到远程主机(即在远程主机上打开桌面),则查询select * from Win32_Environment
将返回2个条目,而不是我未登录的条目。 2个条目是:
instance of Win32_Environment
{
Caption = "COMP-BAF3244E\\nonadmin\\TEMP";
Description = "COMP-BAF3244E\\nonadmin\\TEMP";
Name = "TEMP";
Status = "OK";
SystemVariable = FALSE;
UserName = "COMP-BAF3244E\\nonadmin";
VariableValue = "%USERPROFILE%\\Local Settings\\Temp";
};
和
instance of Win32_Environment
{
Caption = "COMP-BAF3244E\\nonadmin\\TMP";
Description = "COMP-BAF3244E\\nonadmin\\TMP";
Name = "TMP";
Status = "OK";
SystemVariable = FALSE;
UserName = "COMP-BAF3244E\\nonadmin";
VariableValue = "%USERPROFILE%\\Local Settings\\Temp";
};
如wbemtest工具中的MOF表示中所示。 wbemtest连接是\\remotehost\root\cimv2
用户nonadmin
。
登录远程主机如何影响WMI查询的结果?
我需要向用户添加哪些权限才能在远程用户未登录时提供其他信息?
答案 0 :(得分:0)
除非用户拥有正确的权限,否则问题与未加载的用户个人资料有关。
未加载的用户配置文件也是调用Win32_Process.Create的问题。如果没有加载配置文件,则会因UNKNOWN FAILURE(8)而失败。
感谢this blog post指出错误的原因!
为了在远程WMI访问期间自动加载用户配置文件,请为用户提供“备份文件和目录”和“还原文件和目录”用户权限。
您可以在以下网址找到这些权利政策:
"Run..." --> secpol.msc --> Local Policies --> User Rights Assignment