Введение в оболочку командной строки Windows PowerShell. Введение в оболочку командной строки Windows PowerShell
Скачать 368 Kb.
|
Запуск сценариев PowerShellДавайте запустим наш первый сценарий PowerShell. Для этого создадим с помощью Блокнота Windows текстовый файл test.ps1 и запишем в него одну строку: Write-Host "Эта строка печатается из сценария PowerShell" Сохраним этот файл в каталоге C:\Script. Как мы помним, сценарии WSH на языках VBScript или JScript можно было запускать из Проводника Windows, щелкая мышью на значках этих сценариев. Со сценариями PowerShell этот метод не работает – если дважды щелкнуть мышью на значке сценария PowerShell, то он не запустится, а откроется для редактирования в Блокноте (это позволяет предотвратить случайный запуск сценария). Попробуем запустить созданный нами сценарий из оболочки PowerShell: PS C:\> C:\script\test.ps1 Не удается загрузить файл C:\script\test.ps1, так как выполнение сценариев запрещено для данной системы. Введите "get-help about_signing" для получения дополнительных сведений. В строка:1 знак:18 + C:\script\test.ps1 <<<< Как мы видим, по умолчанию выполнение сценариев PowerShell вообще запрещено. Это сделано из соображений безопасности, так как в сценариях может содержаться вредоносный код, который может повредить систему или несанкционированно воспользоваться пользовательскими данными. Для определения того, возможно ли выполнение сценариев на данном компьютере и должны ли эти сценарии быть подписаны цифровой подписью, в оболочке PowerShell используется специальная политика обеспечения безопасности, называемая политикой выполнения. Политики выполнения сценариевПолитика выполнения (execution policy) оболочки PowerShell определяет, можно ли на данном компьютере выполнять сценарии PowerShell, и если да, должны ли они быть подписаны цифровой подписью. Кроме того, политика выполнения определяет, можно ли загружать конфигурационные файлы при запуске оболочки. Политика выполнения PowerShell хранится в реестре операционной системы и не удаляется даже при переустановке оболочки PowerShell. Возможные политики выполнения PowerShell описаны в табл. 19.1 (получить аналогичную информацию в PowerShell можно с помощью команды Get-Help about_signing ).
Узнать, какая политика выполнения является активной, можно с помощью командлета Get-ExecutionPolicy: PS C:\> Get-ExecutionPolicy Restricted Командлет Set-ExecutionPolicy позволяет сменить политику выполнения. Например, для установки политики выполнения RemoteSigned нужно выполнить следующую команду: Set-ExecutionPolicy RemoteSigned Проверим снова текущую политику: PS C:\> Get-ExecutionPolicy RemoteSigned Теперь вновь попробуем запустить наш сценарий: PS C:\> C:\script\test.ps1 Эта строка печатается из сценария PowerShell Как мы видим, сценарий test1.ps1 успешно выполнен. При запуске сценариев PowerShell следует учесть, что путь к файлу с кодом нужно всегда указывать явно, даже если сценарий находится в текущем каталоге. В противном случае сценарий не будет выполнен, например: PS C:\> cd script PS C:\script> dir Каталог: Microsoft.PowerShell.Core\FileSystem::C:\script Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 09.12.2007 17:37 59 test.ps1 PS C:\script> test.ps1 Условие "test.ps1" не распознано как командлет, функция, выполняемая программа или файл сценария. Проверьте условие и повторите попытку. В строка:1 знак:9 + test.ps1 <<<< Напомним, что для текущего каталога в системе зарезервировано имя . (точка). Сценарий в текущем каталоге запускается следующим образом: PS C:\script> .\test.ps1 Эта строка печатается из сценария PowerShell Для запуска сценария PowerShell непосредственно из командной строки интерпретатора Cmd.exe или с помощью пункта Выполнить (Run) меню Пуск (Start) нужно указать полный путь к этому сценарию после в качестве параметра программы powershell.exe, например: C:\> powershell.exe C:\script\test.ps1 |