在PowerShell中设置新的注册表项和所有属性

时间:2016-10-10 20:21:10

标签: powershell

我正在尝试测试32对64位,然后根据环境创建一个或两个新密钥。

如果可以的话,我想保持代码简单,如果可以,只需设置Type,Name,Value等。在线查看似乎可以完成,但每当我尝试运行它时,我只会收到提示输入类型:

寻求帮助/见解。

看起来很简单,这就是我的开头:

$RegLocation1 = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_ALLOW_USER32_EXCEPTION_HANDLER_HARDENING\"
$RegLocation2 = "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ALLOW_USER32_EXCEPTION_HANDLER_HARDENING"

If ([System.Environment]::Is32BitProcess) {
    New-Item -Path $RegLocation1 -Force
    New-ItemProperty -Path $RegLocation1 -Name "iexplore.exe" -Value 1 -ErrorAction SilentlyContinue -PropertyType DWord 
}Else {
    New-Item -Path $RegLocation1 -Force
    New-ItemProperty -Path $RegLocation1 -Name "iexplore.exe" -Value 1 -ErrorAction SilentlyContinue -PropertyType DWord 
    New-Item -Path $RegLocation2 -Force
    New-ItemProperty -Path $RegLocation2 -Name "iexplore.exe" -Value 1 -ErrorAction SilentlyContinue -PropertyType DWord
}

1 个答案:

答案 0 :(得分:3)

如果要测试当前进程是32位还是64位,则需要测试[System.Environment]::Is64Process

另一方面,如果要根据操作系统是32位还是64位添加Wow6432Node密钥,则需要测试{{1} }。

为了避免过多的代码重复,将密钥路径存储在一个数组中,并根据测试添加[System.Environment]::Is64BitOperatingSystem,然后循环迭代它们:

Wow6432Node