выполнение сценариев powershell через командную строку - win7

7942
Mpit52

У меня проблемы с запуском скрипта powershell. Каждый раз, когда я звоню или выполняю сценарий, я получаю запрос безопасности, запрашивающий ввод «R» для запуска. Я уже установил политику выполнения «неограниченно» и проверил ее. У кого-нибудь есть предложения?

Предупреждение системы безопасности: запускайте только те сценарии, которым доверяете. Хотя сценарии из Интернета могут быть полезны, сценарий может нанести вред вашему компьютеру. Вы хотите запустить C: \ test \ win7.ps1?

В настоящее время я запускаю скрипт powershell с помощью powershell.exe в cmd. Я также попытался запустить это непосредственно из 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
Просто чтобы уточнить: когда вы говорите «запуск сценария powershell автоматически», что именно это означает? Автоматически при запуске через папку запуска? В определенное время с помощью запланированного задания? --- Кроме того, вы не можете выполнить сценарий PS в целом или только при первом использовании CMD? nixda 10 лет назад 0

1 ответ на вопрос

4
BillP3rd

Проблема в том, что файл, который вы пытаетесь выполнить, имеет альтернативный поток файлов, который указывает, что он пришел из Интернета. Чтобы сообщение исчезло, вам просто нужно удалить поток. У Sysinternals есть бесплатная утилита streams.exe, которая может легко сделать это за вас. (Это является важным отметить, как указано в сообщении, что если файл так поступать из общедоступного Интернета, вы должны быть осторожными при выполнении его и убедитесь, что вы полностью понять, что он собирается делать.)

Как только у вас есть 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 

Определенные идентификаторы зон:

Local machine = 0 Intranet = 1 Trusted = 2 Internet = 3 Restricted = 4 

Похожие вопросы