windows - 如何在不重定向到 WOW6432Node 的情况下使用 32 位 Powershell 访问 64 位注册表项
问题描述
我有一个简短的 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 位命令行运行的?
解决方案
看来您可以只测试系统的 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"
}
推荐阅读
- c# - 使用 C# 在 Windows 10 上控制左右扬声器平衡级别
- php - 查询中的 CodeIgniter 计数为额外列
- android - 播放器播放时在状态 8 中调用 MediaPlayer 暂停
- laravel-5 - 如何使用 Laravel Medialibrary 检索相关模型的媒体?
- python - ImportError:没有名为“generate_xml”的模块
- ios - 从 Firebase 登录时访问 facebook 用户信息,例如用户 ID、姓名、个人资料图片等
- python - Dockerfile升级postgresql 10 python报错
- citrus-framework - 为什么某些 linux 命令在 Citrus 中无法执行,例如 PWD
- c# - 日期时间 lambda 表达式
- c++ - SQLite - 限制 vfs 文件数