PS C:\> get-wmiobject win32_LogicaIDisk -filter "drivetype=3"
|%{$_.deviceid;$_.freespace/lGB}
|
Задание:
Выполнить все представленные выше команды в PowerShell и прокомментировать, что они обозначают.
Министерство образования и науки Российской Федерации
федеральное государственное бюджетное образовательное учреждение высшего образования "Российский экономический университет имени Г.В.Плеханова" МОСКОВСКИЙ ПРИБОРОСТРОИТЕЛЬНЫЙ ТЕХНИКУМ
ЛАБОРАТОРНАЯ РАБОТА № 9
«Работа со скриптами в PowerShell.» (время на выполнение – 2 часа)
по дисциплине: ОП.04 Операционные системы
Составил: М.В.Синдикаев, преподаватель ФГБОУ ВО "РЭУ им. Г.В.Плеханова"
Цель работы: Ознакомиться с написанием и выполнением скриптов в PowerShell.
Теоретические сведения
Написание скрипта
Скрипт 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
Запуск скрипта
Скрипт нужно выполнять из консоли 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.
Запуск PowerShell-скрипта из обычной Windows-консоли cmd
Скрипт PowerShell можно выполнить и из обычной консоли Windows. Для этого можно воспользоваться командой:
Powershell -File ./systemInfo.ps1
Таким образом можно выполнять скрипты прямо из FAR Manager, и они будут работать. Но тут есть небольшая тонкость. Параметр -File срабатывает только на локальных путях, даже если путь указан относительный "./". То есть, если *.ps1 - файл лежит на локальном диске C: или D:, то такой вызов будет работать. Но если попробовать выполнить скрипт, расположенный на доменном ресурсе, то скрипт не будет найден. Возможно, это исправят в следующих версиях PowerShell.
Достарыңызбен бөлісу: |