一般通过 Invoke-WMIMethod 或 WMI 获取 ChildItem
Get-ChildItem through Invoke-WMIMethod or WMI in general
有没有办法在远程计算机上使用 Invoke-WMIMethod
或类似的东西 运行 Get-ChildItem
?我的用例是我需要找到 HKEY_USERS
配置单元中存在的每个 SID。
HKEY_USERS
配置单元包含一个 SIDS 列表,如下所示:
我想在远程计算机上通过 WMI 获取这些 的列表,而无需提前知道 SID。这可能吗?
使用 StdRegProv
注册表提供程序 WMI class:
$RemoteComputer = 'computer1.hostname.goes.here'
$RegProv = [wmiclass]"\$RemoteComputer\ROOT\DEFAULT:StdRegProv"
# Magic number identifying the HKEY_USERS hive
$HKU = 2147483651
# Enumerate values under the root key, sNames property will hold key names
$Keys = $RegProv.EnumKey($HKU,'') |Select-Object -ExpandProperty sNames
在这里,使用 Invoke-WmiMethod
cmdlet:
$RemoteComputer = 'computer1.hostname.goes.here'
$ClassPath = "\$RemoteComputer\ROOT\DEFAULT:StdRegProv"
$HKU = 2147483651
$Keys = Invoke-WmiMethod -Path $ClassPath -Name EnumKey -ArgumentList 2147483651,'' |Select-Object -ExpandProperty sNames
这可能是获得所需内容的更简单方法:
Get-WMIObject Win32_UserProfile -Filter "SID like 'S-1-5-21-*'" -ComputerName ExampleComputer | select SID
有没有办法在远程计算机上使用 Invoke-WMIMethod
或类似的东西 运行 Get-ChildItem
?我的用例是我需要找到 HKEY_USERS
配置单元中存在的每个 SID。
HKEY_USERS
配置单元包含一个 SIDS 列表,如下所示:
我想在远程计算机上通过 WMI 获取这些 的列表,而无需提前知道 SID。这可能吗?
使用 StdRegProv
注册表提供程序 WMI class:
$RemoteComputer = 'computer1.hostname.goes.here'
$RegProv = [wmiclass]"\$RemoteComputer\ROOT\DEFAULT:StdRegProv"
# Magic number identifying the HKEY_USERS hive
$HKU = 2147483651
# Enumerate values under the root key, sNames property will hold key names
$Keys = $RegProv.EnumKey($HKU,'') |Select-Object -ExpandProperty sNames
在这里,使用 Invoke-WmiMethod
cmdlet:
$RemoteComputer = 'computer1.hostname.goes.here'
$ClassPath = "\$RemoteComputer\ROOT\DEFAULT:StdRegProv"
$HKU = 2147483651
$Keys = Invoke-WmiMethod -Path $ClassPath -Name EnumKey -ArgumentList 2147483651,'' |Select-Object -ExpandProperty sNames
这可能是获得所需内容的更简单方法:
Get-WMIObject Win32_UserProfile -Filter "SID like 'S-1-5-21-*'" -ComputerName ExampleComputer | select SID