Windows PowerShell позволяет:
- Менять настройки операционной системы;
- Управлять службами и процессами;
- Настраивать роли и компоненты сервера;
- Устанавливать программное обеспечение;
- Управлять установленным ПО через специальные интерфейсы;
- Встраивать исполняемые компоненты в сторонние программы;
- Создавать сценарии для автоматизации задач администрирования;
- Работать с файловой системой, реестром Windows, хранилищем сертификатов и т.д.
Для начала работы необходимо изменить настройку политики запуска на RemoteSigned, используя команду Set-ExecutionPolicy
- Restricted — выполнение скриптов запрещено. Стандартная конфигурация;
- AllSigned — можно запускать скрипты, подписанные доверенным разработчиком; перед запуском скрипта PowerShell запросит у вас подтверждение;
- RemoteSigned — можно запускать собственные скрипты или те, что подписаны доверенным разработчиком;
- Unrestricted — можно запускать любые скрипты.
Командлеты — это команды с предопределённой функцией, подобные условным операторам в языках программирования. У них есть несколько ключевых особенностей. Список всех доступных командлетов можно вывести с помощью Get-Help-Category.
Полезные командлеты:
- Get-Help – показывает справку по командлету, функции и общую справку по Windows PowerShell. Справка бывает нескольких типов: краткая, детальная, полная и вывод только примеров;
- Update-Help — загружает и устанавливает новые файлы справки, т.е. обновление справки;
- Get-Command – командлет поиска нужной команды, можно искать как по глаголу, так и по существительному, также возможно использование маски, если Вы не знаете точное наименование глагола или существительного;
- Get-Alias – показывает псевдонимы, все или конкретной команды;
- Get-PSDrive – показывает подключенные диски;
- Get-Member – выводит свойства и методы, которые есть у объекта;
- Get-WindowsFeature – выводит сведения о доступных ролях и компонентах сервера;
- Install-WindowsFeature (эквивалентен Add-WindowsFeature) — устанавливает роли или компоненты на указанный сервер;
- Uninstall-WindowsFeature (эквивалентен Remove-WindowsFeature) – удаляет роли или компонента сервера;
- Get-History — возвращает список команд, введенных в ходе текущей сессии.
Работа с переменными:
- Get-Variable – выводит список переменных и их значения (или одну указанную переменную);
- New-Variable – создает новую переменную;
- Set-Variable – задает значение переменной. Если переменная с указанным именем не существует, то она будет создана;
- Clear-Variable — удаляет значение переменной;
- Remove-Variable — удаляет переменную и ее значение.
Форматирование:
- Format-List – вывод результата команды в формате списка свойств, где на каждой новой строке отдельное свойство;
- Format-Table — вывод результата команды в виде таблицы;
- Format-Wide — вывод результата команды в виде широкой таблицы, в которой отображается только одно свойство каждого объекта;
- Format-Custom – в данном случае форматирование вывода происходит с использованием пользовательского представления.
Импорт и экспорт:
- Export-Csv – экспорт данных в формат CSV;
- Import-Csv – импортирует данные из CSV файла;
- Export-Clixml — экспорт данных в формат XML;
- Import-Clixml — импортирует файл CLIXML и создает соответствующие объекты в оболочке Windows PowerShell;
- Out-File — посылает вывод результата работы командлета во внешний файл (например, в TXT);
- Out-Printer — вывод результата работы команды на принтер;
- Import-Module — добавляет модули в текущей сессии.
Работа с сетью:
- Disable-NetAdapter – командлет отключает сетевой адаптер;
- Enable-NetAdapter – данный командлет включает сетевой адаптер;
- Rename-NetAdapter — переименовывает сетевой адаптер;
- Restart-NetAdapter — перезапускает сетевой адаптер;
- Get-NetIPAddress – выводит информацию о конфигурации IP-адреса;
- Set-NetIPAddress — изменяет конфигурацию IP-адреса;
- New-NetIPAddress — создает и настраивает IP-адрес;
- Remove-NetIPAddress — удаляет IP-адрес и его конфигурацию;
- Get-NetRoute — выводит таблицу маршрутизации IP;
- Set-NetRoute — изменяет таблицу маршрутизации IP;
- New-NetRoute — создает запись в таблице маршрутизации IP;
- Remove-NetRoute — удаляет одну или несколько записей (IP маршрутов) из таблицы маршрутизации IP;
- Get-NetIPv4Protocol — выводит информацию о конфигурации протокола IPv4;
- Get-NetIPv6Protocol — выводит информацию о конфигурации протокола IPv6;
- Get-NetIPInterface — выводит информацию о свойствах интерфейса IP;
- Get-NetTCPSetting — показывает информацию о настройках и конфигурации TCP;
- Test-Connection – командлет посылает ICMP пакеты к одному или нескольким компьютерам, т.е. «пингует» компьютеры.
Работа с элементами:
- Clear-Item — очищает содержимое элемента, но не удаляет сам элемент;
- Copy-Item – копирует элемент;
- Get-Item — получает элемент в указанном месте;
- Invoke-Item — выполняет действие по умолчанию над указанным элементом;
- Move-Item – перемещает элемент;
- New-Item – создает новый элемент;
- Remove-Item – удаляет указанные элементы;
- Rename-Item — переименовывает элемент в пространстве имен поставщика Windows PowerShell;
- Set-Item — изменяет элемент;
- Get-ChildItem — возвращает элементы и дочерние элементы в одном или нескольких определенных местах;
- Get-Location – выводит информацию о текущем местонахождении.
Работа с Active Directory:
- New-ADUser – создание нового пользователя в Active Directory;
- Get-ADUser – выводит информацию о пользователях Active Directory;
- Set-ADUser — изменяет пользователя Active Directory;
- Remove-ADUser — удаляет пользователя Active Directory;
- New-ADGroup – командлет создает группу в Active Directory;
- Get-ADGroup – выводит информацию о группе или выполняет поиск, чтобы получить несколько групп из Active Directory;
- Set-ADGroup – командлет изменяет группу в Active Directory;
- Remove-ADGroup — удаление группы в Active Directory;
- Add-ADGroupMember — командлет добавляет учетные записи пользователей, компьютеров или групп в качестве новых членов группы Active Directory;
- Get-ADGroupMember — выводит информацию о членах группы Active Directory;
- Remove-ADGroupMember — удаление элементов из группы Active Directory;
- Set-ADAccountPassword — сброс пароля учетной записи Active Directory;
- Disable-ADAccount — отключает учетную запись Active Directory.
- Enable-ADAccount — включает учетную запись Active Directory;
- Unlock-ADAccoun — разблокирует учетную запись Active Directory;
- New-ADComputer — создание новой учетной записи компьютера в Active Directory;
- Get-ADComputer — выводит информацию об одном или нескольких компьютерах в Active Directory;
- Set-ADComputer — изменение учетной записи компьютера в Active Directory;
- Remove-ADComputer — удаление компьютера из Active Directory.
Работа с Hyper-V:
- New-VM — создание новой виртуальной машины;
- Set-VM — настройка виртуальной машины;
- Start-VM — запуск виртуальной машины;
- Stop-VM — закрытие, выключение или сохранение виртуальной машины;
- Import-VM — импорт виртуальной машины из файла;
- Move-VM — перемещение виртуальной машины на новый Hyper-V хост;
- Remove-VM — удаление виртуальной машины;
- Rename-VM — переименование виртуальной машины;
- New-VHD — создание одного или нескольких новых виртуальных жестких дисков;
- Set-VHD – настройка виртуального жесткого диска;
- Test-VHD — тестирование виртуального жесткого диска на предмет обнаружения проблем, которые сделали бы его непригодным для использования;
- Add-VMDvdDrive — добавляет DVD диск к виртуальной машине;
- Remove-VMDvdDrive — удаляет DVD-диск из виртуальной машины;
- Add-VMHardDiskDrive — добавляет жесткий диск к виртуальной машине;
- Remove-VMHardDiskDrive — удаляет один или несколько виртуальных жестких дисков (VHD) из виртуальной машины;
- Add-VMNetworkAdapter — добавляет виртуальный сетевой адаптер на виртуальной машине;
- Remove-VMNetworkAdapter — удаляет один или несколько виртуальных сетевых адаптеров из виртуальной машины;
- Copy-VMFile — копирование файлов на виртуальную машину;
- Get-VMVideo – выводит информацию о настройках видео для виртуальных машин;
- Move-VMStorage — перемещение хранилища виртуальной машины.
Работа с фоновыми заданиями:
- Start-Job – запустить фоновую задачу;
- Stop-Job – остановить фоновую задачу
- Get-Job – посмотреть список фоновых задач;
- Receive-Job – посмотреть результат выполнения фоновой задачи;
- Remove-Job – удалить фоновую задачу;
- Wait-Job – перевести фоновую задачу на передний план, для того чтобы дожидаться ее окончания.
Работа с объектами:
- Measure-Object – командлет позволяет рассчитывать на основе свойств объектов такие числовые агрегирующие параметры как: минимальное, максимальное, среднее значение, сумму и количество. Например, Вы хотите узнать максимальный или средний размер файла в определенном каталоге, или просто узнать количество файлов (запущенных процессов, служб и так далее);
- Select-Object – с помощью данного командлета можно выбрать определенные объекты или свойства этих объектов, например Вы хотите выводить только название файла и его размер;
- Sort-Object — сортирует объекты по значениям свойств;
- Where-Object – командлет для того чтобы ставить условие для выборки объектов на основе значений их свойств;
- Group-Object – группирует объекты, которые содержат одинаковое значение для заданных свойств;
- ForEach-Object – перебор объектов с целью выполнения определенной операции над каждым из этих объектов.
Для удаленного управления:
- Enter-PSSession — запускает интерактивный сеанс с удаленным компьютером;
- Exit-PSSession — завершает интерактивный сеанс с удаленным компьютером;
- New-PSSession — создает постоянное подключение к локальному или удаленному компьютеру;
- Remove-PSSession — закрывает один или несколько сеансов Windows PowerShell;
- Disconnect-PSSession — отсоединяется от сеанса;
- Connect-PSSession — подключается к отключенным сеансам;
- Get-PSSession — получает сеансы Windows PowerShell на локальных и удаленных компьютерах;
- Invoke-Command — выполняет команды на локальном и удаленных компьютерах.
Работа со службами и процессами:
- Get-Process – выводит информацию о запущенных процессах на компьютере;
- Start-Process – запускает один или несколько процессов на компьютере;
- Stop-Process — останавливает один или несколько запущенных процессов;
- Get-Service – выводит информацию о службах;
- Restart-Service – перезапускает службу;
- Start-Service – запускает службу;
- Stop-Service — останавливает службу;
- Suspend-Service – приостанавливает работу службы;
- Set-Service – с помощью данного командлета можно изменить свойства службы, например, описание, отображаемое имя и режим запуска. Также его можно использовать для запуска, остановки или приостановки службы.
Работа с компьютером:
- Restart-Computer – командлет перезапускает операционную систему (перезагружает компьютер);
- Stop-Computer – выключает компьютер;
- Rename-Computer – переименовывает компьютер;
- Checkpoint-Computer — создает точку восстановления системы на локальном компьютере;
- Restore-Computer — запускает восстановление системы на локальном компьютере;
- Disable-ComputerRestore — отключает функцию восстановления системы на указанном диске файловой системы;
- Enable-ComputerRestore — включает функцию восстановления системы на указанном диске файловой системы;
- Remove-Computer — удаляет локальный компьютер из домена;
- Get-EventLog – выводит информацию о событиях в журнале событий, или список журналов событий на локальном или удаленном компьютере;
- Clear-EventLog — удаляет записи из указанных журналов событий.
Работа с контентом:
- Get-Content – получает содержимое элемента (например, считывает файл);
- Add-Content – добавляет содержимое в заданные элементы, например, текст в файл;
- Clear-Content — удаляет содержимое элемента, но не удаляет сам элемент;
- Set-Content — записывает или заменяет содержимое в элемент с новым содержанием.
Другие командлеты:
- Get-ExecutionPolicy – с помощью данного командлета можно узнать действующую политику выполнения Windows PowerShell для текущего сеанса;
- Set-ExecutionPolicy – командлет изменяет политику выполнения Windows PowerShell;
- Write-Host – выводит информацию на экран (пишет текст);
- Read-Host – считывает строку ввода из консоли;
- Write-Warning – выводит предупреждающее сообщение;
- Write-Error – командлет объявляет ошибку и выводит ее в поток ошибок;
- Get-Date – возвращает текущую дату и время;
- Set-Date – командлет изменяет системную дату и время на компьютере.