Check if a Registry Path Exists in Remote Machine

18,321

You can access it as outlined here: http://powershell.com/cs/blogs/tips/archive/2011/02/15/accessing-registry-remote.aspx

$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', 'server123')
$key = $reg.OpenSubKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall')

$key.GetSubKeyNames() | ForEach-Object {
    $subkey = $key.OpenSubKey($_)
    $i = @{}
    $i.Name = $subkey.GetValue('DisplayName')
    $i.Version = $subkey.GetValue('DisplayVersion')
    New-Object PSObject -Property $i
    $subkey.Close()
}

$key.Close()
$reg.Close()

An alternative is to enable PSRemoting and use invoke-command on the remote machine and effectively run the same command as what you would run on the local box.

Share:
18,321
sriram
Author by

sriram

Updated on June 13, 2022

Comments

  • sriram
    sriram almost 2 years

    I have used Power Shell to check if a path exists using this command . powershell test-path "HKCU:\Software\Microsoft\Windows" now how can the same be extended to remote machine. What is the syntax if i want to test a registry path in Remote machine, i tried powershell test-path "\\machinename\HKCU:\Software\Microsoft\Windows" and its not working. Suggest some way to test it.

  • sriram
    sriram about 12 years
    thts gr8..how do i check if the key exits alone. Using this method the only way to chk the presence is by using the Exception . Are there any other direct ways of doing this ?