続きです。
reg queryの処理を関数化します。
PS C:\Users\takk> function get_regkeys($arr){
>> $arr | % {reg query $_}
>> }
PS C:\Users\takk>
使ってみます。
PS C:\Users\takk> get_regkeys hklm HKEY_LOCAL_MACHINE\BCD00000000 HKEY_LOCAL_MACHINE\HARDWARE HKEY_LOCAL_MACHINE\SAM HKEY_LOCAL_MACHINE\SECURITY HKEY_LOCAL_MACHINE\SOFTWARE HKEY_LOCAL_MACHINE\SYSTEM PS C:\Users\takk>
この関数に前回追加したフィルタする処理も追加します。
PS C:\Users\takk> function get_regkey($arr){
>> $arr | % {if($_ -match "HKEY"){reg query $_}}
>> }
PS C:\Users\takk>
実行してみます。
PS C:\Users\takk> get_regkeys hklm HKEY_LOCAL_MACHINE\BCD00000000 HKEY_LOCAL_MACHINE\HARDWARE HKEY_LOCAL_MACHINE\SAM HKEY_LOCAL_MACHINE\SECURITY HKEY_LOCAL_MACHINE\SOFTWARE HKEY_LOCAL_MACHINE\SYSTEM PS C:\Users\takk>
あれ、空行がカットされていません。
それはそうですね。フィルタリングする場所がおかしいです。
PS C:\Users\takk> function get_regkey($arr){
>> $ret_arr=@()
>> $arr | % { reg query $_ | %{if($_ -match "HKEY"){$ret_arr += $_}} }
>> return $ret_arr
>> }
>>
PS C:\Users\takk>
実行してみます。
PS C:\Users\takk> get_regkey hklm HKEY_LOCAL_MACHINE\BCD00000000 HKEY_LOCAL_MACHINE\HARDWARE HKEY_LOCAL_MACHINE\SAM HKEY_LOCAL_MACHINE\SECURITY HKEY_LOCAL_MACHINE\SOFTWARE HKEY_LOCAL_MACHINE\SYSTEM PS C:\Users\takk>
この関数を再帰的に実行すればよいですね。


コメント