我最近发现默认情况下,PowerShell脚本的执行被禁用。我将依赖它来安全地从Windows中移除USB设备,但是如果默认情况下没有启用它,我必须先启用它。做这些事情通常是否可以接受?
也欢迎其他解决方案。
这个问题如下:https://superuser.com/questions/637854/safely-remove-a-usb-drive-using-bat-file/637878
答案 0 :(得分:3)
我不会因为你的应用想要使用它而在机器上全局执行脚本。这是一项IT /安全政策决策,他们不应该仅仅通过使用您的软件来接受您的决定。如果从.NET应用程序中调用PowerShell运行空间,则不必担心执行策略,因为您可以在不调用单独的.ps1脚本的情况下运行命令。如果您需要调用powershell.exe并为其提供脚本文件,请查看-ExecutionPolicy Bypass
。 About_Executionpolicies说到绕道:
- Nothing is blocked and there are no warnings or prompts.
- This execution policy is designed for configurations
in which a Windows PowerShell script is built in to a
a larger application or for configurations in which
Windows PowerShell is the foundation for a program
that has its own security model.
答案 1 :(得分:2)
MS用于提供“准备开发”的系统。他们对此更加聪明,并且更加重视安全性。因此,他们现在默认禁用许多功能。
对于PowerShell,默认情况下默认的“执行策略”不允许运行脚本。但是,在命令行上,您可以一起绕过执行策略(即不更改它),只要您有权这样做:
PowerShell -ExecutionPolicy Bypass -file yourfile.ps1
如果您是该机器的管理员,则可以启用它并使用它。如果您只是应用程序所有者,您应该咨询管理员以更改策略,但如上所述,您可能不需要。