我是一名Citrix管理员,希望限制我们服务器上的一般用户使用 PowerShell 运行他们自己的脚本,或以交互方式使用它。我们已经禁止通过GPO使用命令提示符,但是在 PowerShell 可用的情况下,这基本上没用。
我发现 Powershell.exe 有一个命令行选项,-NoInteractive允许用户运行脚本,但它没有为他们提供交互式命令提示符。问题是我还没有找到强制powershell以这种方式运行的方法。我什至创建了一个 C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1 启动脚本来检查-NoInteractive参数,但用户可以通过简单地启动带有-NoProfile参数的Powershell.exe 来绕过它.
另一个问题是我们确实使用了很多 PowerShell 脚本来为用户启动应用程序,并且登录脚本的一部分是用 PowerShell 编写的,需要在用户上下文中运行,所以我不能简单地对 EXE 文件进行 ACL。我需要他们能够使用 PowerShell,只是不能以交互方式使用。最终,我们希望强制AllSigned执行执行策略并签署所有脚本,以便用户可以运行的唯一内容是我们(管理员)创建和/或签署的脚本。
我试过在谷歌上搜索这个答案,发现很多人都在使用-NoInteractive,但我还没有找到有人试图强迫它的实例。有任何想法吗?
jbs*_*ith 11
我认为您误解了 -NonInteractive 开关的使用;您仍然可以运行powershell -noninteractive并获得交互式提示。非交互式开关适用于自动化脚本编写方案,在这种情况下,您不希望 powershell 向用户发送提示并等待响应。例如,在非交互式 PowerShell 窗口中,如果您在Get-Credential没有任何参数的情况下运行,它将立即失败,而不是提示输入用户名和密码。非交互式不会充当安全机制。
更好的方法是保护您要保护的内容,而不是用户可能用来访问它的工具。
| 归档时间: |
|
| 查看次数: |
24352 次 |
| 最近记录: |