我无法自动运行 powershell 脚本。每次我调用或执行脚本时,我都会收到一个安全提示,要求我输入“R”来运行。我已经将执行策略设置为“不受限制”,并已验证其设置。有人有什么建议吗?
安全警告:仅运行您信任的脚本。虽然来自互联网的脚本可能有用,但该脚本可能会损害您的计算机。您要运行 C:\test\win7.ps1 吗?
我目前正在通过 cmd 中的 powershell.exe 调用运行 powershell 脚本。我也尝试过直接从 powershell 运行它并收到相同的错误消息。
powershell -command C:\nst\win7.ps1 "var1" "var2" "var3"
我也尝试过通过 cmd 运行以下命令:
powershell -executionpolicy unrestricted -command C:\nst\win7.ps1 "var1" "var2" "var3"
Win7脚本:
$domain = $args[0]
$pwd = $args[2]
$usr = $args[1]
$password = ConvertTo-SecureString $pwd -AsPlainText -Force
$username = "$domain\$usr"
$credential = New-Object System.Management.Automation.PSCredential($username,$password)
Add-Computer -DomainName $domain -Credential $credential
任何帮助都将不胜感激
答案1
问题是你尝试执行的文件有一个备用文件流这表明它来自互联网。要让该消息消失,您只需删除该流即可。系统内部有一个免费的实用程序叫做流可以很容易地为你做到这一点。(它是值得注意的是,如消息中所示,如果文件做过来自公共互联网,执行时应小心谨慎,并确保您完全理解它要做什么。)
一旦您有了streams.exe,命令将是:
streams.exe -d C:\nst\win7.ps1
从命令行查看备用流可能比较棘手,但是 notepad++ 可以打开它们。在我的系统上,命令如下:
"c:\Program Files (x86)\Notepad++\notepad++.exe" "e:\temp\test.ps1:Zone.Identifier:$DATA"
另外,如果你好奇的话,给你带来所有悲伤的流包含:
[ZoneTransfer]
ZoneId=3
定义的 ZoneIds 为:
Local machine = 0
Intranet = 1
Trusted = 2
Internet = 3
Restricted = 4