通过命令提示符执行 powershell 脚本 - win7

通过命令提示符执行 powershell 脚本 - win7

我无法自动运行 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

相关内容