I am a Citrix administrator and would like to restrict the general user population on our servers from using PowerShell to run their own scripts, or to use it interactively. We are already disallowing the use of the command prompt via GPO, but with PowerShell available, that's basically useless.
I've found that Powershell.exe has a command-line option of -NoInteractive
which will allow a user to run a script, but it does not provide them an interactive command prompt. The problem is that I have not found a way to force powershell to operate this way. I even went so far as to create a C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1 launch script that would check for the -NoInteractive
parameter, but users can bypass that by simply launching Powershell.exe with the -NoProfile
parameter.
The other problem is that we do use a lot of PowerShell scripts to launch applications for users and portions of the login script are written in PowerShell and need to run under the user context, so I can't simple ACL the EXE file. I need them to be able to use PowerShell, just not interactively. Ultimately, we want to enforce the AllSigned
execution policy and sign all scripts so the only thing a user can run is a script that we (the admins) have created and/or signed off on.
I've tried googling for this answer and found many people using -NoInteractive
, but I haven't found an instance where someone has tried to force it. Any ideas?