2017-01-31 1 views
0

Get-ChildItemInvoke-WMIMethodなどのリモートコンピュータで実行する方法はありますか?私の使用例は、HKEY_USERSハイブに存在するすべてのSIDを見つける必要があるということです。Get-ChildItemからInvoke-WMIMethodまたはWMI一般

HKEY_USERSハイブはそうのようなSIDSのリストが含まれています enter image description here

私は先に時間のSIDを知らなくても、リモートコンピュータ上のWMIを介してこれらののリストを取得することにしたいです。これは可能ですか?

答えて

1

StdRegProvレジストリプロバイダWMIクラスを使用します。

$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 
+0

マティアスさん、ありがとうございます。ただし、Invoke-WMIMethodを使用してこれを行う方法はありますか?私は自分のコードで一貫していたいと思います。 – AlwaysQuestioning

+0

@AlwaysQuestioningが更新されました –

+0

資格情報を提供する必要があるのはなぜですか?私はすぐにこれらの 'HKEY_USERS'ハイブの内容にアクセスしたいと思いますが、' -Credentials'フラグでこれを解決できますか? – AlwaysQuestioning

0

これはおそらくあなたが探しているものを取得する簡単な方法です:

Get-WMIObject Win32_UserProfile -Filter "SID like 'S-1-5-21-*'" -ComputerName ExampleComputer | select SID 
+0

これらの値にアクセスするための資格情報を提供する必要がありますか? 'HKEY_Users'内の値はどうですか? – AlwaysQuestioning

+0

これを実行するアカウントには管理者権限が必要です。レジストリから情報を取得するのではなく、別のWMIプロバイダからの情報です。 'HKEY_Users'の値は、コンピュータ上のユーザプロファイルと一致します。例えば、あなたが別の質問で探していたユーザー名とほぼ一致する 'localpath'のようないくつかの追加情報があります。 – BenH

関連する問題