从命令行忽略“安全警告”运行脚本
我试图从我信任的共享文件夹执行脚本:
PowerShell -file "\\server\scripts\my.ps1"
但我得到安全警告,必须按“R”继续
安全警告仅运行您信任的脚本。 虽然来自Internet的脚本可能有用,但此脚本可能会损害您的计算机。 你想运行\ server \ scripts \ my.ps1吗? [D]不运行[R]运行一次[S]暂停[?]帮助(默认为“D”):d
我可以忽略这个警告吗? 我想要的伪代码是:
PowerShell -IGNORE_SECURITY_WARNING -file "\\server\scripts\my.ps1"
这在Lee Holmes博客的 “ 标准映像中的PowerShell执行策略”和Windows Power Shell博客上的“PowerShell安全指导原则”中有所涉及。
总结一些机器将UNCpath看作是一个糟糕的互联网,所以PowerShell将它们视为远程文件。 您可以在这些服务器上禁用此function( UncAsIntranet = 0,
),也可以将远程计算机添加到您的可信主机。
如果你不这么做,PowerShell v2支持一个-ExecutionPolicy
参数,它完全符合你的伪代码的要求。 PowerShell -ExecutionPolicy Bypass -File (...)
。
为了避免警告,您可以:
Set-ExecutionPolicy bypass
如果您从下载的PowerShell脚本中遇到此错误,可以通过以下方式解除对脚本的阻止:
-
用鼠标右键单击有问题的
.ps1
文件,然后select“ 属性” -
点击文件属性中的解除阻止
-
点击OK
只需将SEE_MASK_NOZONECHECKS envvariables赋值为1即可
$env:SEE_MASK_NOZONECHECKS = 1 Start-Process $msi_file_path /qn -Wait | out-null
试试这个,编辑文件:
notepad foo.ps1:Zone.Identifier
并设置“ZoneId = 0”
你想使用Set-ExecutionPolicy在你的机器上设置执行策略:
Set-ExecutionPolicy Unrestricted
你可能想调查各种执行政策,看看哪一个适合你。 看看“ help about_signing
”了解更多信息。
你有没有从网上下载脚本?
然后在命令行中使用sysinternal的streams.exe从文件中删除NTFSstream。
cmd> streams.exe .\my.ps1
现在尝试再次运行脚本。
这在我的具体情况下都不起作用。 什么是从FQDN更改为NetBIOS名称。
代替:
\\server.domain.net\file.ps1
使用:
\\server\file.ps1
使用名称绕过IE中的“自动检测Intranetnetworking”configuration。
请参阅此处的博客中的选项1: http : //setspn.blogspot.com/2011/05/running-powershell-scripts-from-unc.html
假定您需要从共享文件夹启动ps脚本
copy \\\server\script.ps1 c:\tmp.ps1 /y && PowerShell.exe -ExecutionPolicy Bypass -File c:\tmp.ps1 && del /fc:\tmp.ps1
PS减less谷歌search)
我做了这个PowerShell脚本来解除阻塞在我的服务器上共享的所有文件
Get-ChildItem "\\ServerName\e$\MyDirectory\" -Recurse -File | % { Unblock-File -Path $_.FullName }