我能找到的在 Powershell 中获取 StdRegProv WMI 类实例的唯一方法是
$StdRegProv = Get-WmiObject -List -Namespace root\default -ComputerName "my_computer" -Credential $cred | where { $_.Name -eq "StdRegProv" }
我需要走这条路线,因为我想提供凭证。我天真地期望以下内容能够发挥作用:
$StdRegProv = Get-WmiObject -Class StdRegProv -Namespace root\default -ComputerName "my_computer" -Credential $cred
但事实并非如此 - 为什么你不能通过这种方式获得 StdRegProv?
据我了解,Get-WmiObject 返回类的现有实例。如果没有实例,您将得到一个空集合。 (但是不要引用我的话,因为这只是一个猜测 - 我还没有看过 Get-WmiObject 代码。)
无论如何,你可以使用:
[WMIClass]"root\default:StdRegProv"
实例化该类。或者,如果必须是 gwmi:
Get-WmiObject -List -Namespace "root\default" -ComputerName "my_computer" `
| Where-Object {$_.Name -eq "StdRegProv"}