我正在开发一个PowerShell脚本,其中(除其他外)将当前登录的用户获取到VM的列表,使用WMI获取任何explorer.exe进程的所有者。
$User = Get-WmiObject -Class win32_process -ComputerName $strVMName -Credential $cred | `
Where-Object{ $_.Name -eq "explorer.exe" } | `
ForEach-Object{ ($_.GetOwner()).Domain + "\" + ($_.GetOwner()).User; }
此代码非常有用,但仅当使用的凭据是要查询的VM上的管理员时。我在WMI控件中给了非管理员用户对CIMV2的完全权限,但GetOwner方法不返回任何内容($ user仅返回“\”),除非我将用户添加到管理组。由于此脚本旨在由普通用户运行,我宁愿不给他们管理员权限。
有人能指出使用这些方法所需的最低权利吗?或者甚至是获取当前登录用户的另一种方法,该方法适用于非管理员?