Skip to main content

Program: Set Properties of Remote Registry Keys

Discussion

Although PowerShell does not directly let you access and manipulate the registry of a remote computer, it still supports this by working with the .NET Framework. The functionality exposed by the .NET Framework is a bit more developer oriented than we want, so we can instead use a script to make it easier to work with.

Example 188 lets you set the value of a property on a given remote registry key. In order for this script to succeed, the target computer must have the remote registry service enabled and running.

Example 188. SetRemoteRegistryKeyProperty.ps1

############################################################################## ## ## SetRemoteRegistryKeyProperty.ps1 ## ## Set the value of a remote registry key property ## ## ie: ## ## PS >$registryPath = ## "HKLM:\software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" ## PS >SetRemoteRegistryKeyProperty LEEDESK $registryPath ` ## "ExecutionPolicy" "RemoteSigned" ## ##############################################################################

param( $computer = $(throw "Please specify a computer name."), $path = $(throw "Please specify a registry path"), $property = $(throw "Please specify a property name"), $propertyValue = $(throw "Please specify a property value") )

## Validate and extract out the registry key if($path match "^HKLM:\\(.*)") {

$baseKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey

("LocalMachine", $computer) } elseif($path match "^HKCU:\\(.*)") {

$baseKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey ("CurrentUser", $computer) }

Example 188. SetRemoteRegistryKeyProperty.ps1 (continued)

else { WriteError ("Please specify a fullyqualified registry path " + "(i.e.: HKLM:\Software) of the registry key to open.") return }

## Open the key and set its value $key = $baseKey.OpenSubKey($matches[1], $true) $key.SetValue($property, $propertyValue)

## Close the key and base keys $key.Close() $baseKey.Close()

For businesses running Windows applications and management workloads, a Turkey Dedicated Server provides an isolated infrastructure environment with direct control over the Windows operating system, server configuration, and allocated resources.

Help Category