1

I have a short PowerShell script that is supposed to set a value in the following registry path:

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

My problem is, that the script works, but when it is run from a 32-bit environment (actually we use a 32-bit custom application that calls the scripts automatically), the call gets redirected to:

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

And, the item is set there, therefore it is not working as it is supposed to.

How can I reach the correct registry path:

HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility

on both 32-bit and 64-bit Windows 10 systems, no matter if the script is run from a 32-bit or 64-bit command-shell?

2 Answers 2

2

It seems you could just test the system for 64-bit compatibility, and then provide the proper parameter values accordingly:

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"
}
Sign up to request clarification or add additional context in comments.

1 Comment

Sorry, I think you misunderstood: I always want the values to go to Software\Microsoft, the WOW3264node is added by the OS automatically if run from 32Bit environment.
0

Are you using Kace, which has only a 32-bit client? :/ You can run the 64-bit powershell like this from it:

C:\WINDOWS\Sysnative\WindowsPowerShell\v1.0\powershell.exe

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.