- Устанавливаем PowerShell в старых версиях Windows
- Установка PowerShell в Windows
- Как установить PowerShell 7 в Windows 10
- Что нового в PowerShell 7?
- Как установить PowerShell 7 с пакетом MSI
- Как установить PowerShell 7 с помощью команды
- Установщик PowerShell 7
- Как открыть PowerShell 7
- Управление ролями и компонентами Windows Server из PowerShell
- Как вывести все установленные роли и компоненты Windows Server?
- Установка ролей и компонентов Windows Server из PowerShell
- Деплой ролей на множество серверов Windows Server
- Как удалить роль или компонент в Windows Server с помощью PowerShell?
Устанавливаем PowerShell в старых версиях Windows
Установка PowerShell в Windows
PowerShell — это современная замена комадной строки в Windows, альтернатива Bash от Microsoft и просто мощный инструмент в умелых руках. Тем не менее, есть он далеко не во всех операционных системах Windows — первой операционной системой, в которой был встроен PowerShell, была Windows 7. К счастью, установить его можно и на более старые системы — такие как Windows XP, Vista и их серверные аналоги. Делается это с помощью установки комплекта Windows Management Framework.
Программная часть компьютера при этом должна соответствовать следующим требованиям:
Операционная система:
Windows XP с установленным Service Pack 3
Windows Server 2003 с установленными Service Pack 2
Windows Vista с установленными Service Pack 1 или Service Pack 2
Windows Server 2008 с установленными Service Pack 1 или Service Pack 2
Установленный Microsoft .NET Framework 2 (так же подходит .NET Framework 3 и .NET Framework 3.5).
Скачать обновления для нужной операционной системы, содержащие в себе Windows Management Framework, в том числе Windows PowerShell 2.0 и WinRM 2.0 можно по следующим ссылкам:
Windows XP и Windows Embedded (обновление KB968930):
Windows Server 2003 (обновление KB968930):
Windows Server 2003 x64 (обновление KB968930):
Windows Vista (обновление KB968930):
Windows Vista x64 (обновление KB968930):
Windows Server 2008 (обновление KB968930):
Windows Server 2008 x64 (обновление KB968930):
После установки, исполняемый файл PowerShell можно будет найти по адресу C:\WINDOWS\system32\WindowsPowerShell\v1.0, а так же в меню Пуск.
Как установить PowerShell 7 в Windows 10
4 марта 2020 года Microsoft анонсировала PowerShell 7.0. Это последнее крупное обновление PowerShell, межплатформенной оболочки командной строки и языка сценариев Microsoft. В данной статье рассказано, что нового в PowerShell 7 и как вы можете установить его на свой ПК с Windows.
Что нового в PowerShell 7?
Последняя версия, PowerShell 7, основана на предыдущем PowerShell Core 6.1. Она продолжает поддерживать кроссплатформенное развёртывание и добавляет множество новых функций, командлетов и исправлений ошибок. Некоторые из наиболее важных новых функций включают в себя:
- Распределение по конвейеру с помощью ForEach-Object. Выполняйте итерацию по элементам коллекции параллельно с новым параметром -Parallel или задайте максимальное число потоков (по умолчанию пять) с параметрами -ThrottleLimit.
- Добавление новых операторов:
Тернарный оператор «? : »: Работает так же, как оператор if-else, сравнивая два выражения с условием, чтобы увидеть, является ли оно истинным или ложным, например,
Операторы «||» и «&&»: оператор && выполняет правую часть выражения, если левая часть завершилась успешно. И наоборот, оператор || выполняет правую часть только в случае неудачи левой части.
- Командлет Get-Error. Упрощённое и динамическое представление ошибок для более простого изучения самой последней ошибки в текущем сеансе.
- Автоматические уведомления о новых версиях. Показ уведомлений для пользователей о появлении новой версии PowerShell. Функция обновления по умолчанию проверяет новые выпуски один раз в день.
В дополнение к перечисленным выше новым функциям Microsoft добавила множество других командлетов, экспериментальные улучшения и добавила PowerShell 7 в свой выпуск для долгосрочного обслуживания, который позволит ей получать обновления, пока поддерживается .Net 3.1. Полный список всего нового, исправлений и улучшений можно найти в журнале изменений Github для PowerShell 7.
Как установить PowerShell 7 с пакетом MSI
PowerShell 7 доступен для Windows, macOS и Linux. Мы покажем вам, как установить его на Windows 10.
Первый метод, который мы рассмотрим, использует MSI-файл для установки PowerShell. Пакеты MSI работают почти идентично файлу EXE и позволяют устанавливать программу с использованием графического интерфейса пользователя. Это метод установки, который использует только необходимые и ключевые файлы. Все, что вам нужно сделать, — это дважды щёлкнуть по файлу, чтобы запустить мастер установки.
Примечание. PowerShell 7 устанавливается и работает параллельно с Windows PowerShell 5.1, которая поставляется с Windows 10, но заменяет PowerShell Core 6.x. Если вам нужно запустить PowerShell 6 параллельно с PowerShell 7, вам необходимо установить его через ZIP-пакет.
Чтобы загрузить пакет, запустите браузер и перейдите на страницу релизов PowerShell Github. Прокрутите вниз до раздела «Assets» и найдите там файл MSI (PowerShell-*-win-x64.msi), чтобы загрузить его.
Обязательно выберите правильный пакет для вашей версии Windows, x64 для 64-разрядных или x86 для 32-разрядных систем.
При появлении запроса выберите место для загрузки и нажмите «Сохранить», чтобы начать загрузку.
После завершения загрузки перейдите в папку, в которой находится файл, и дважды щёлкните его, чтобы запустить установку.
Как установить PowerShell 7 с помощью команды
Разработчики PowerShell также создали скрипт, который можно вызывать непосредственно из PowerShell. Это однострочный командлет, который автоматически загружает и запускает мастер установки. Все, что вам нужно сделать, это вставить фрагмент кода и нажать клавишу Enter.
Запустите PowerShell и скопируйте/вставьте в окно следующий командлет:
Нажмите клавишу Enter, и PowerShell запустит команду и начнёт загрузку.
Установщик PowerShell 7
Когда откроется мастер установки, нажмите «Next», чтобы установить PowerShell 7.
На следующем экране выберите папку, где будут размещены файлы PowerShell 7 и нажмите «Next»:
Затем вы решаете, какие дополнительные функции включить при установке. Вы можете включить или отключить следующие четыре параметра:
- Add PowerShell to Path Environment Variable: добавляет PowerShell в переменную среды Windows Path и позволяет вызывать PowerShell из любой другой оболочки или терминала.
- Register Windows Event Logging Manifest: добавляет PowerShell в манифест регистрации событий Windows и позволяет регистрировать события из экземпляра PowerShell.
- Enable PowerShell Remoting: Включает возможность удалённого запуска команд.
- Add ‘Open here’ Context Menus to Explorer: добавляет параметр в контекстное меню, вызываемое правой кнопкой мыши, который открывает экземпляр PowerShell в папке, которую вы щёлкнули.
Нажмите «Next» после выбора всех дополнительных функций, которые вы хотите.
Нажмите «Intall», чтобы начать установку. Появится приглашение UAC с запросом прав администратора для установки пакета. Нажмите «Да», чтобы продолжить.
После завершения работы мастера установки нажмите «Готово» для выхода.
Как открыть PowerShell 7
После завершения установки вы можете открыть PowerShell 7 несколькими способами.
Если вы выбрали параметры «Add PowerShell to Path Environment Variable» и «Add ‘Open here’ Context Menus to Explorer», вы можете ввести в командной строке
или щёлкнуть правой кнопкой мыши папку и выбрать PowerShell 7 → Open here.
Однако одним из самых простых способов является ввод в строку поиска «pwsh». После этого нажмите Enter или кликните на иконке PowerShell мышкой. Здесь же вы можете запустить PowerShell 7 с правами Администратора.
Чтобы убедиться, что вы используете PowerShell 7, посмотрите на заголовок окна:
Для обновления справки выполните команду:
Если предыдущая команда завершилась ошибкой, то попробуйте обновить справку так:
Управление ролями и компонентами Windows Server из PowerShell
В Windows Server 2012R2/2016/2019 вы можете устанавливать и удалять различные роли и компоненты сервера через графический Server Manager. Однако в большинстве случаев эти же самые операции можно выполнить гораздо быстрее из консоли PowerShell. В этой статье мы рассмотрим особенности управления ролями и компонентами в актуальных версиях Windows Server.
Как вывести все установленные роли и компоненты Windows Server?
Чтобы вывести список всех доступных ролей и компонентов Windows Server используется командлет Get-WindowsFeature . Если выполнить его без параметров, появится информация обо всех компонентах.
Как вы видите, отображается название компонента (Display Name), его системное имя (Name) и состояние (Install State: Installed, Available или Removed). Список ролей и компонентов представляет собой дерево со вложенными ролями, которое напоминает то, которые вы видите при установке ролей через графический Server Manager. Для установки и удаления ролей и компонентов через PowerShell, вам нужно знать их системное имя, которое содержится в столбце Name.
Роли и компоненты удаляются из образа так:
Uninstall-WindowsFeature –Name DHCP –Remove
Чтобы установить удаленную роль, воспользуйтесь командлетом:
Install-WindowsFeature DHCP (понадобится доступ в Интернет)
Либо вы можете восстановить компоненты их дистрибутива с вашей версией Windows Server:
Install-WindowsFeature DHCP -Source E:\sources\sxs
Вы можете вывести список установленных компонентов сервера:
Get-WindowsFeature | Where-Object <$_. installstate -eq "installed">| ft Name,Installstate
Судя по скриншоту, данный сервер используется как файловый сервер (роли FileAndStorage-Services, Storage-Services). Большинство оставшихся компонентов используются для управления и мониторинга сервера.
Если вы не знаете точно имя роли, можно использовать знаки подстановки. Например, чтобы проверить какие из web компонентов роли IIS установлены, выполните (немного сократим синтаксис):
Get-WindowsFeature -Name web-* | Where installed
Вы можете получить список установленных компонентов на удаленном Windows Server:
Get-WindowsFeature -ComputerName msk-prnt1 | Where installed | ft Name,Installstate
Судя по установленным ролям Print-Services и Print-Server, этот сервер используется в качестве сервера печати.
Вы можете использовать командлет Get-WindowsFeature для поиска серверов в домене, на которых установлена определенная роль. Вы можете искать на серверах в определенном OU Active Directory с помощью командлета Get-ADComputer из модуля ActiveDirectory for PowerShell, или по указанному списку серверов ( $servers = (‘server1’, ‘server2’) ). Например, нам нужно найти все файловые сервера c ролью FileAndStorage-Services в указанном контейнере AD (я использую редактор PS — Visual Studio Code)
import-module activedirectory
$Servers=get-adcomputer -properties * -Filter
Foreach ($server in $Servers)
<
Get-WindowsFeature -name FileAndStorage-Services -ComputerName $server.Name | Where installed | ft $server.name, Name, Installstate
>
В результате у нас появился список серверов, на которых установлена данная роль.
Установка ролей и компонентов Windows Server из PowerShell
Для установки ролей и компонентов в Windows Server используется командлет Install-WindowsFeature.
Чтобы установить роль DNS на текущем сервере и инструменты управления (в том числе модуль Powershell – DNSServer), выполните:
Install-WindowsFeature DNS -IncludeManagementTools
По-умолчанию командлет устаналивает все необходимые зависимые роли и компоненты при установке роли. Чтобы вывести список зависимостей до установки воспользуйтесь параметров.
Install-WindowsFeature -name UpdateServices -whatif
Например, для установки роли сервера обновлений WSUS, необходимо установить некоторые компоненты IIS.
What if: Continue with installation?
What if: Performing installation for «[Windows Server Update Services] Windows Server Update
What if: Performing installation for «[Windows Server Update Services] WID Database».
What if: Performing installation for «[Windows Server Update Services] WSUS Services».
What if: Performing installation for «[Web Server (IIS)] Windows Authentication».
What if: Performing installation for «[Web Server (IIS)] Dynamic Content Compression».
What if: Performing installation for «[Web Server (IIS)] Performance».
What if: Performing installation for «[Web Server (IIS)] Static Content».
What if: Performing installation for «[Windows Internal Database] Windows Internal Database».
What if: The target server may need to be restarted after the installation completes.
Чтобы установить роль Remote Desktop Session Host, службу лицензирования RDS и утилиты управления RDS на удаленном сервере, воспользуйтесь командой:
Install-WindowsFeature -ComputerName msk-rds21 RDS-RD-Server, RDS-Licensing –IncludeAllSubFeature –IncludeManagementTools –Restart
C параметром –Restart сервер будет автоматически перезагружен, если установленный компонент это потребует.
Также можно установить компонент такой командой (например роль SMTP сервера):
Get-WindowsFeature -Name SMTP-Server | Install-WindowsFeature
Деплой ролей на множество серверов Windows Server
Еще одна интересная возможность при развертывании однотипных серверов. Вы можете установить необходимые компоненты на эталонном Windows Server и экспортируете список установленных ролей в CSV файл:
Get-WindowsFeature | where <$_.Installed -eq $True>| select name | Export-Csv C:\ps\Roles.csv -NoTypeInformation –Verbose
Потом вы можете использовать этот CSV файл для установки такого же набора ролей на других типовых серверах:
Import-Csv C:\PS\Roles.csv | foreach
Если роль или компонент уже установлен, команда вернет NoChangeNeeded и продолжит установку следующей роли.
Либо для установки одинакового набора ролей сразу на нескольких серверах можно использовать такую команду:
$servers = (‘srv1’, ‘srv2’,’srv3’)
foreach ($server in $servers)
Как удалить роль или компонент в Windows Server с помощью PowerShell?
Для удаления ролей и компонентов Windows Server используется командлет Remove-WindowsFeature .
Например, чтобы удалить роль принт-сервера, выполните команду:
Remove-WindowsFeature Print-Server -Restart