默认情况下,Powershell最初被禁用,可能是出于安全原因。
当我要求启用它以便我可以使用它时,管理员谨慎采取可能使服务器更易受攻击的操作,因此,它未启用,我等待。
虽然微软在安全方面有一个糟糕的记录,并且让一个功能被禁用可能在理论上更安全,启用它,但这与任何事情都有关系。
Powershell本质上是否更危险,它应该比任何其他Windows脚本语言更令人担心?
答案 0 :(得分:6)
Powershell具有额外的安全和安全功能。查看执行政策 - http://msdn.microsoft.com/en-us/library/dd347641.aspx(或运行get-help about_execution_policies
)
脚本编写是一个非常强大的工具,但它可能被滥用于恶意软件 目的。保护用户数据和操作的完整性 系统,Windows PowerShell包括几个安全功能 这是执行政策。
http://msdn.microsoft.com/en-us/library/bb648601(v=vs.85).aspx
因此,默认情况下,您不能双击脚本,在控制台中输入它们以运行它们。您可以控制是否可以执行脚本以及脚本的类型。
此外,使用Powershell,您将无法编写/运行您没有管理员设置权限的命令。例如,如果您无法从GUI关闭防火墙,因为您没有必要的权限,那么您也无法从Powershell执行此操作。
Powershell还借鉴了其他地方的安全最佳实践。您只能通过提供脚本名称或exe名称来执行不在路径中的脚本或其他可执行文件。你必须使用类似.\script.ps1
的东西 - 才能运行它。这是因为与CMD不同,当前目录不在路径中,就像你在* nix中看到的那样。这可以确保放在当前目录中的任何恶意脚本都不能覆盖像dir这样的内置命令并导致有害影响。
答案 1 :(得分:4)
除了@manojlds指出一篇好的文章要结账之外。
唐·琼斯这样说:“It is no more dangerous than anything else。”PowerShell的安全性实际上可以由组策略控制(提到的那些执行策略@manojlds)。当你到达Window Server 2008 R2时,你会默认启用它。然后,许多Microsoft产品现在正在安装它并为您启用它(Exchange 2010,SharePoint 2010,SQL Server 2008 R2)。我不得不说微软已经通过PowerShell大大改善了他们的跟踪记录。