1

我有一个简短的 Powershell 脚本,它应该在以下注册表路径中设置一个值:

Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility"  -Name "Configuration" -Value "osk"

我的问题是,脚本可以工作,但是当它从 32 位环境运行时(实际上我们使用自动调用脚本的 32 位自定义应用程序),调用被重定向到

HKEY_LOCAL_MACHINE\SOFTWARE\ WOW6432Node \Microsoft\Windows NT\CurrentVersion\Accessibility

并且该项目设置在那里,因此它没有按预期工作。

如何在 32 位和 64 位 Windows 10 系统上访问正确的注册表路径 HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility,无论脚本是从 32 位还是 64 位命令行运行的?

4

2 回答 2

1

看来您可以只测试系统的 64 位兼容性,然后相应地提供正确的参数值:

if ([Environment]::Is64BitOperatingSystem) {
    Set-ItemProperty "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Accessibility"  -Name "Configuration" -Value "osk"
}
else {
    Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility"  -Name "Configuration" -Value "osk"
}
于 2019-07-18T12:02:37.023 回答
0

您是否使用只有 32 位客户端的 Kace?:/ 你可以像这样运行 64 位 powershell:

C:\WINDOWS\Sysnative\WindowsPowerShell\v1.0\powershell.exe
于 2019-07-18T12:14:30.217 回答