If you used the “state activate” command, or the one-liner which has “state activate” embedded in the powershell command, did you tell the state tool that you wanted to use C:\Program Files as the root folder for your project, as this user did here?:
When “state activate” asks for a folder to place your project into, it is not asking you where you want Perl to go. You don’t get any choice about where Perl will go with an activate command. It will always go to your AppData folders to provide a virtual environment that only you can use. What activate is asking is where you want to store your local copy of the Project config file. Conceptually, this is similar to storing a local copy of a GitHub project. If you attempt to use a folder that is write-protected from your userID, you’ll get the message you are seeing.
It’s very likely that you want to use a different command for the purpose you have in mind. See the command reference doc, for the “state deploy” command.
This part of the sample command “state activate --default ActiveState-Sandbox/Perl-5.32” assumes that you are in your home directory, or in a folder where you have write access to create a folder that will contain the project configuration data. “state activate” will not create a runtime that can be used by any other users, so you can’t run it from the “Program Files” or Win32 folders. If the objective is to get a runtime that others can use, review the documentation for “state deploy” and install the State Tool separately.