<# 

.SYNOPSIS     

Script to create new registry key. ScriptsbyScott.com

DESCRIPTION    

This can be used to check for key path and then create the key path.   

This can easily be embedded in an invoke-command statment to create  regisry values on multiple remote systems.

EXAMPLE     

Fill in the values as shown below in the script to customize your registry key.   

$KeyPath1="HKLM:\HARDWARE\DESCRIPTION\System"   

$MyNewKeyName="MyNewKeyName"   

$MyNewKeytysValue="245"   

$MyKeyDataType="DWORD"         

.NOTE 

!!!! You must use the prefix abbreviations as show below: !!!!

Example:    

Incorrect Syntax:    HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System   

Correct Syntax:      HKLM:\HARDWARE\DESCRIPTION\System 

  
HKEY_LOCAL_MACHINE (HKLM)   

HKEY_CURRENT_CONFIG (HKCC)   

HKEY_CLASSES_ROOT (HKCR)   

HKEY_USERS (HKU)   

HKEY_CURRENT_USER (HKCU)


    !!!! You must declare a valid data value type !!!

 BINARY

 DWORD

 STRING

 MULTISTRING

 EXPANDSTRING

QWORD

#> 

 

 

PowerShell
Edit|Remove
$KeyPath1='HKLM:\HARDWARE\DESCRIPTION\System' 
 
$MyNewKeyName='MyNewKeyName' 
 
$MyNewKeytysValue='245' 
 
$MyKeyDataType='DWORD' 
 
 
Try{ 
    #Makes sure the path is set before creation of reg key 
    if (Test-Path $KeyPath1) 
    { 
        New-ItemProperty -Path $KeyPath1 -Name $MyNewKeyName -Value $MyNewKeytysValue -PropertyType $MyKeyDataType -Force -ErrorAction Stop | Out-Null 
        return '$Env:COMPUTERNAME - $KeyPath1 path found and key created' 
    } 
    else 
    { 
        New-Item -Path $KeyPath1 -Force | Out-Null -ErrorAction Continue 
        New-ItemProperty -Path $KeyPath1 -Name $MyNewKeyName -Value $MyNewKeytysValue -PropertyType $MyKeyDataType -Force -ErrorAction Stop | Out-Null -ErrorAction Continue 
        return '$Env:COMPUTERNAME - $KeyPath1 path had to be created and key value was set' 
    } 
} 
Catch 
{ 
    return $_.Exception 
}