Цель работы:
Ознакомиться с написанием и выполнением скриптов в PowerShell.
Теоретические сведения
1. Написание скрипта
Скрипт PowerShell (не важно какой версии) - это
текстовый файл с расширением *.ps1.
Вот пример простого Power Shell срипта (файл systemInfo.ps1):
# Retrieve WMI object for the operating system
Get-WmiObject Win32_OperatingSystem
Этот файл можно создавать и редактировать, например, в FAR Manager.
Обратите внимание, что FAR Manager хоть и может работать в
консоли Power Shell, но
выполняет из-под себя скрипты в окружении обычной Windows-консоли cmd. То есть, FAR
Manager можно использовать только для создания и редактирования PowerShell скриптов,
но не для запуска. Но прежде чем разочаровываться, прочитайте пункт 3
2. Запуск скрипта
Скрипт нужно выполнять из консоли Power Shell, а не из обычной консоли Windows. В
консоли Power Shell необходимо перейти в каталог, где лежит скрипт (командами cd), и
затем запустить сам скрипт, обязательно прописав перед ним символы ".\". Например,
имеем путь к файлу скрипта d:\work\systemInfo.ps1. Тогда команды запуска будут
выглядеть так:
d:
cd \
cd work
.\systemInfo.ps1
или так (просто указывается полный путь к скрипту):
d:\work\systemInfo.ps1
Скорее всего, при запуске скрипта появится следующая ошибка:
Не удается загрузить файл D:\work\systemInfo.ps1, так как выполнение скриптов
запрещено для данной системы. Введите "get-help about_signing" для получения
дополнительных сведений.
строка:1 знак: 18
+ CategoryInfo : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : RuntimeException
Ошибка появляется из-за того, что по-умолчанию в
Power Shell включена максимальная
политика безопасности, которая позволяет выполнять команды PowerShell в командной
строке, но не позволяет в
той же командной строке выполнить скрипт с командами
PowerShell.
Чтобы разрешить выполнение PowerShell скриптов, нужно создать *.bat файл, например
enableScript.bat со следующим содержимым:
powershell -Command Set-ExecutionPolicy RemoteSigned
Этот *.bat файл можно выполнить в любой консоли: хоть в PowerShell, хоть в
обычной
cmd. После выполнения этого файла, PowerShell-скрипты станут запускаться в консоли
PowerShell.
3. Запуск PowerShell-скрипта из обычной Windows-консоли cmd
Скрипт PowerShell можно выполнить и из обычной консоли Windows. Для этого можно
воспользоваться командой:
Powershell -File ./systemInfo.ps1
Таким образом можно выполнять скрипты прямо из FAR Manager, и они будут работать.
Но тут есть небольшая тонкость. Параметр -File срабатывает только на локальных путях,
даже если путь указан относительный "./". То есть, если *.ps1 - файл лежит на локальном
диске C: или D:, то такой вызов будет работать. Но если попробовать выполнить скрипт,
расположенный на доменном ресурсе, то скрипт не будет найден. Возможно, это исправят
в
следующих версиях PowerShell.
Достарыңызбен бөлісу: