使用Powershell创建注册表项

Ger*_*Ger 3 registry powershell powershell-3.0

我试图使用PowerShell检查注册表中是否存在密钥结构.如果结构不存在,我需要创建它,然后我需要在结束文件夹中创建键.如果我单独运行代码段来创建密钥,它们就可以很好地创建.但是运行块本身(确保在注册表中手动确保密钥不存在)它将不会创建文件夹结构.不确定是什么问题.任何帮助将是欣赏.代码如下:

$Registry_Paths = "hkcu:\Software\Microsoft\Office\14.0", "hkcu:\Software\Microsoft\Office\14.0\Groove", "hkcu:\Software\Microsoft\Office\14.0\Groove\Development"

foreach($Registry_Path in $Registry_Paths)
{
$Test_Path_Result = Test-Path -Path $Registry_Path
if($Test_Path_Result -eq $false)
{
    $Registry_Key_Log += "Warning: No registry key path found at " + $Registry_Path +"`n"
    $Registry_Key_Log += "Creating key now for " + $Registry_Path + "`n" + "`n"

    if($Registry_Path -eq "hkcu:\Software\Microsoft\Office\14.0")
    {
        try{
        New-Item -Path "HKCU:\Software\Microsoft\Office\14.0" -ItemType Key
        }
        catch
        {
            $Error_Log += "Warning: There was an error when attempting to create a new registry key, or key property for $Registry_Path"
            $Error_Log += $_.exception.message
        }

    }
    if($Registry_Path -eq "hcku:\Software\Microsoft\Office\14.0\Groove")
    {
        try{
        New-Item -Path "HKCU:\Software\Microsoft\Office\14.0\Groove" -ItemType Key
        }
        catch
        {
            $Error_Log += "Warning: There was an error when attempting to create a new registry key, or key property for $Registry_Path"
            $Error_Log += $_.exception.message
        }
    }
    if($Registry_Path -eq "hcku:\Software\Microsoft\Office\14.0\Groove\Development")
    {
        try{
        New-Item -Path "HKCU:\Software\Microsoft\Office\14.0\Groove\Development" -ItemType Key
        New-ItemProperty -Path "hkcu:\Software\Microsoft\Office\14.0\Groove\Development" -Value 00000001 -PropertyType dword -Name "EnableReleaseBuildDebugOutput"
        New-ItemProperty -Path "hkcu:\Software\Microsoft\Office\14.0\Groove\Development" -Value 1 -Name "TraceIdentityMessaging"
        New-ItemProperty -Path "hkcu:\Software\Microsoft\Office\14.0\Groove\Development" -Value 00000001 -PropertyType dword -Name "TraceTelespaceFetch"
        New-ItemProperty -Path "hkcu:\Software\Microsoft\Office\14.0\Groove\Development" -Value 1 -Name "TraceConnectSequence"

        }
        catch
        {
            $Error_Log += "Warning: There was an error when attempting to create a new registry key, or key property for $Registry_Path"
            $Error_Log += $_.exception.message
        }
    }

}
}
Run Code Online (Sandbox Code Playgroud)

Knu*_*ger 6

我就是这样做的.

$Key = "HKEY_CURRENT_USER\TEST"
If  ( -Not ( Test-Path "Registry::$Key")){New-Item -Path "Registry::$Key" -ItemType RegistryKey -Force}
Set-ItemProperty -path "Registry::$Key" -Name "Less" -Type "String" -Value "Less"
Run Code Online (Sandbox Code Playgroud)