I got error when I tried to use Windows Batch file and Powershell PS1 file to add a System Environment Variable:
Powershell PS1 file:
[System.Environment]::SetEnvironmentVariable(“TestVariable02”, “Test value 02”, “Machine”);
Windows Batch file:
powershell.exe -ExecutionPolicy Bypass -Command “C:\Details\Powershell\test.ps1”
Error:
Exception calling “SetEnvironmentVariable” with “3” argument(s): “Requested registry access is not allowed.”
My Windows login account has already been added to the local Administrator Group.
But still got the above error.
However, if I used local Administrator to login and then ran the BAT file, it worked fine. No error.
How can I fix the error? Where is the cause of the error?
You have start the cmd “as administrator” even if your account is already local Administrator. But why do you use a batch file to run a powershell script? You can run the Powershell script directly (but anyway you have to run it “as administrator”).
I ran it as a batch file as I wanted to run it in schedule.
You suggested ‘Run as administrator’, but how can we do it if we run a powershell script in schedule?
I don’t have an english client at the moment to look it up but it should be on the first tab when you create a new scheduled task and it should be something like execute or run with highest privileges.