Установка powershell windows server core

Базовые команды для настройки и управления Windows Server Core

В этой статье я постарался собрать в одном месте основные команды cmd и PowerShell, которые полезны при настройке и управлении Windows Server Core. Думаю, этот гайд будет полезен как новичкам, так и опытным системным администраторам, как справочник по базовым командам Server Core.

Преимущества Windows Serve Core:

  • Меньшие требования к ресурсам;
  • Повышенная стабильность, безопасность, требует установки меньшего количества обновлений (за счет меньшего количества кода и используемых компонентов);
  • Идеально подходит для использования в качестве сервера для инфраструктурных ролей (контроллер домена Active Directory, DHCP сервер, Hyper-V сервер, файловый сервер и т.д.).

Server Core лицензируется как обычный физический или виртуальный экземпляр Windows Server (в отличии от Hyper-V Server, который полностью бесплатен).

Для установки Windows Server 2016/2019 в режиме Core нужно выбрать обычную установку. Если вы выберите Windows Server (Desktop Experience), будет установлен GUI версия операционной системы (в предыдущих версиях Windows Server она называлась Server with a GUI).

После установки Windows Server Core перед вами появляется командная строка, где нужно задать пароль локального администратора.

При входе на Server Core открывается командная строка (cmd.exe). Чтобы вместо командной строки у вас всегда открывалась консоль PowerShell.exe, нужно внести изменения в реестр. Выполните команды:

Powershell.exe
Set-ItemProperty -Path ‘HKLM:\Software\Microsoft\Windows NT\CurrentVersion\WinLogon’ -Name Shell -Value ‘PowerShell.exe’

И перезагрузите сервер:

Настройка Windows Server Core с помощью SCONFIG

Для базовой настройки Server Core можно использовать встроенный скрипт sconfig. Просто выполните команду sconfig в консоли. Перед вами появиться меню с несколькими пунктами:

С помощью меню Server Configuration можно настроить:

  • Добавить компьютер в домен или рабочую группу;
  • Изменить имя компьютера (hostname);
  • Добавить локального администратора;
  • Разрешить/запретить удаленное управления и ответы на icmp;
  • Настроить параметры обновления через Windows Update;
  • Установить обновления Windows;
  • Включить/отключить RDP;
  • Настроить параметры сетевых адаптеров (IP адрес, шлюз, DNS сервера);
  • Настроить дату и время;
  • Изменить параметры телеметрии;
  • Выполнить logoff, перезагрузить или выключить сервер.

Все пункт в меню sconfig пронумерованы. Чтобы перейти в определенное меню наберите его номер и Enter.

В некоторых пунктах меню настройки sconfig есть вложенные пункты. Там также, чтобы перейти к определенной настройке, нужно сделать выбор цифры пункта меню.

Не будем подробно рассматривать все пункты настройки sconfig, т.к. там все достаточно просто и очевидно. Однако в большинстве случаев администраторы предпочитают использовать для настройки новых хостов с Server Core различные PowerShell скрипты. Это намного проще и быстрее, особенно при массовых развёртываниях.

Основные команды PowerShell для настройки Server Core

Рассмотрим основные команды PowerShell, которые можно использовать для настройки Server Core.

Читайте также:  Отладка qt creator windows

Узнать информацию о версии Windows Server и версии PowerShell:

Get-ComputerInfo | select WindowsProductName, WindowsVersion, OsHardwareAbstractionLayer
$PSVersionTable

Для перезагрузки Server Core нужно выполнить команду PowerShell :

Чтобы выполнить выход из консоли Server Core, наберите:

Настройка параметров сети

Теперь нужно из PowerShell нужно настроить параметры сети (по умолчанию Windows настроена на получение адреса от DHCP). Выведите список сетевых подключений:

Теперь укажите индекс интерфейса сетевого адаптера (InterfaceIndex), который нужно изменить и задайте новый IP адрес:

New-NetIPaddress -InterfaceIndex 4 -IPAddress 192.168.13.100 -PrefixLength 24 -DefaultGateway 192.168.13.1
Set-DNSClientServerAddress –InterfaceIndex 4 -ServerAddresses 192.168.13.11,192.168.13. 111

Проверьте текущие настройки:

Set-DnsClientServerAddress –InterfaceIndex 4 –ResetServerAddresses
Set-NetIPInterface –InterfaceIndex 4 -Dhcp Enabled

Включить/отключить сетевой адаптер:

Disable-NetAdapter -Name “Ethernet0”
Enable-NetAdapter -Name “Ethernet 0”

Включить, отключить, проверить статус поддержки IPv6 для сетевого адаптера:

Disable-NetAdapterBinding -Name «Ethernet0» -ComponentID ms_tcpip6
Enable-NetAdapterBinding -Name «Ethernet0» -ComponentID ms_tcpip6
Get-NetAdapterBinding -ComponentID ms_tcpip6

netsh Winhttp set proxy :

Настройка времени/даты

Вы можете настроить дату, время, часовой пояс с помощью графической утилиты intl.cpl или с помощью PowerShell:

Set-Date -Date «09/03/2022 09:00»
Set-TimeZone «Russia Time Zone 3

Задать имя компьютера, добавить в домен, активация

Чтобы изменить имя компьютера:

Rename-Computer -NewName win-srv01 -PassThru

Добавить сервер в домен Active Directory:

Add-Computer -DomainName «corp.winitpro.ru » -Restart

Если нужно добавить дополнительных пользователей в администраторы, можно настроить групповую политику или добавить вручную:

Add-LocalGroupMember -Group «Administrators» -Member «corp\anovikov»

Для активации Windows Server нужно указать ваш ключ:

Или можно активировать хост на KMS сервере (например, для Windows Server 2019):

slmgr /ipk N69G4-B89J2-4G8F4-WWYCC-J464C
slmgr /skms kms-server.winitpro.ru:1688
slmgr /ato

Разрешить удаленный доступ

Разрешить удаленный доступ к Server Core через RDP:

cscript C:\Windows\System32\Scregedit.wsf /ar 0

Разрешить удаленное управление:

Configure-SMRemoting.exe –Enable
Enable-NetFirewallRule -DisplayGroup “Windows Remote Management”

Настройка Windows Firewall

Информация о настройке Windows Firewall есть в статье по ссылке. Здесь оставлю несколько базовых команд.

Включить Windows Defender Firewall для всех профилей:

Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
Изменить тип сети с Public на Private:

Get-NetConnectionProfile | Set-NetConnectionProfile -NetworkCategory Private

Полностью отключить Windows Firewall (не рекомендуется):

Get-NetFirewallProfile | Set-NetFirewallProfile -enabled false

Разрешить подключение через инструменты удаленного управления:

Enable-NetFireWallRule -DisplayName “Windows Management Instrumentation (DCOM-In)”
Enable-NetFireWallRule -DisplayGroup “Remote Event Log Management”
Enable-NetFireWallRule -DisplayGroup “Remote Service Management”
Enable-NetFireWallRule -DisplayGroup “Remote Volume Management”
Enable-NetFireWallRule -DisplayGroup “Remote Scheduled Tasks Management”
Enable-NetFireWallRule -DisplayGroup “Windows Firewall Remote Management”
Enable-NetFirewallRule -DisplayGroup «Remote Administration»

Установка обновлений в Server Core

Для управления параметрами обновлений предпочтительно использовать групповые политики Windows Update, но можно задать параметры и вручную.

Отключить автоматическое обновление:
Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU -Name AUOptions -Value 1
Автоматически скачивать доступные обновления:
Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU -Name AUOptions -Value 3
Получить список установленных обновлений:
Get-Hotfix
Или
wmic qfe list
Для ручной установки обновлений Windows можно использовать утилиту wusa:
Wusa update_name.msu /quiet

Также для установки и управления обновлениями из командной строки удобно использовать PowerShell модуль PSWindowsUpdate.

Управление ролями, службами и процессами Windows

Для получения списка всех доступных ролей в Windows Server Core выполните команду PowerShell:

Получить список всех установленных ролей и компонентов в Windows Server(можно быстро понять, для чего используется сервер):

Читайте также:  Prefetch что это за служба windows 10

Get-WindowsFeature | Where-Object <$_. installstate -eq "installed">| ft Name,Installstate

Например, для установки службы DNS воспользуйтесь такой командой:

Install-WindowsFeature DNS -IncludeManagementTools

Список всех служб в Windows:

Список остановленных служб:

Restart-Service -Name spooler

Для управление процессами можно использовать стандартный диспетчер задач (taskmgr.exe) или PowerShell модуль Processes:

Get-Process cmd, proc1* | Select-Object ProcessName, StartTime, MainWindowTitle, Path, Company|ft

Часто используемые команды в Server Core

Ну и наконец, приведу список различных полезных мне команд, которые я периодически использую в Server Core.

Информация о статусе и здоровье физических дисков (используется стандартный модуль управления дисками Storage):

Get-PhysicalDisk | Sort Size | FT FriendlyName, Size, MediaType, SpindleSpeed, HealthStatus, OperationalStatus -AutoSize

Информация о времени последних 10 перезагрузок сервера:

Get-EventLog system | where-object <$_.eventid -eq 6006>| select -last 10

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize

Скачать и распаковать zip файл с внешнего сайта:

Invoke-WebRequest https://contoso/test.zip -outfile test.zip
Expand-Archive -path ‘.\test.zip’ -DestinationPath C:\Users\Administrator\Documents\

Чтобы скопировать все файлы из каталога на удаленный компьютер по сети можно использовать Copy-Item:

$session = New-PSSession -ComputerName remotsnode1
Copy-Item -Path «C:\Logs\*» -ToSession $session -Destination «C:\Logs\» -Recurse -Force

Для установки драйвера можно использовать стандартную утилиту:

Pnputil –i –a c:\distr\hpdp.inf

Также Microsoft предлагает специальный пакет Server Core App Compatibility Feature on Demand (FOD), который позволяет установить в Windows Server 2019 некоторые графические инструменты и консоли (MMC, Eventvwr, Hyper-V Manager, PerfMon, Resmon, Explorer.exe, Device Manager, Powershell ISE). Этот FOD доступен для загрузки в виде ISO при наличии активной подписки. Установка выполняется командой:

Add-WindowsCapability -Online -Name ServerCore.AppCompatibility

Установка Server Core App Compatibility Feature on Demand будет использовать дополнительно около 200 Мб оперативной памяти в Server Core.

В этой статье я постарался собрать самые нужные команды, которые нужно постоянно держать под рукой при работе с Windows Server Core. Время от времени я буду обновлять статью и добавлять новые команды, которые покажутся мне нужными для повседневной работы.

Обновление версии PowerShell в Windows

В этой статье мы рассмотрим, как обновить версию Windows PowerShell до актуальной 5.1 и установить (обновить) PowerShell Core 7.0. В предыдущей статье мы рассказывали, что на данный момент есть две ветки PowerShell: старая версия Windows PowerShell (максимальная версия 5.1, которая более не развивается) и новая платформа PowerShell Core (сейчас доступна версия 7.0). Несмотря на то, что нумерация версий PowerShell продолжается с 5.1 (6.0, 6.1, 7.0 и т.д.), это две разные платформы. Соответственно мы рассмотрим отдельно как обновить Windows PowerShell и PowerShell Core.

Обновление Windows PowerShell до 5.1

Попробуем обновить версию Windows PowerShell в Windows Server 2012 R2 до версии 5.1.

По-умолчанию Windows Server 2012 R2 (Windows 8.1) устанавливается с версией 4.0.

Сначала проверим текущую версию PowerShell (на скриншоте видно, что это PowerShell 4.0):

Чтобы обновить вашу версию PowerShell до 5.1, нужно установить пакет Windows Management Framework 5.1, который в свою очередь требует наличия .NET Framework 4.5.2 (или более поздней версии). Убедитесь, что у вас установлена версий .NET 4.5.2 или выше командой:

Читайте также:  Как установить windows если не включается компьютер

(Get-ItemProperty ‘HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full’ -Name Release).Release

В моем случае код 378675 говорит о том, что установлена версия .NET 4.5.1. Поэтому мне нужно скачать и установить более новую .NET Framework 4.8 (ссылка на офлайн установщик https://go.microsoft.com/fwlink/?linkid=2088631 — ndp48-x86-x64-allos-enu.exe).

Установите .NET 4.8 (потребуется перезагрузка).

Скачайте WMF 5.1 для Windows Server 2012 R2 — Win8.1AndW2K12R2-KB3191564-x64.msu (https://go.microsoft.com/fwlink/?linkid=839516).

Установите Windows Management Framework 5.1.

После перезагрузки сервера, запустите консоль PS и убедитесь, что версия была обновлена до PowerShell 5.1.

Установка/обновление PowerShell Core 7.0

Обратите внимание, что последняя версия Windows PowerShell, устанавливаемая в Windows 10 и Windows Server 2019 — PowerShell 5.1. Вместо нее Microsoft начала разрабатывать кроссплатформенную версию PowerShell Core. На данный момент доступны версии PowerShell Core 6.0, 6.1, 6.2 и 7.0. По сути PowerShell Core это новая платформа, которая устанавливается в системе вместе с Windows PowerShell. Т.е. нельзя обновить PowerShell 5.1 до PowerShell Core 7.0. PowerShell 7 устанавливается на компьютере отдельно от Windows PowerShell 5.1.

Если у вас уже установлен PowerShell Core 6.0, вы можете обновить версию PowerShell на своем компьютере до последней версии PowerShell 7.0 Core (либо можно установиь PowerShell Core 7.0 рядом с Windows PowerShell 5.1). В этом примере мы попробуем обновить версию PowerShell Core в Windows 10 1909. Есть два способа обновления:

  • Можно вручную скачать msi установщик PowerShell Core на GitHub
  • Можно скачать и запустить установку (обновление) непосредственно из консоли PowerShell

Если вы хотите установаить PowerShell Core с помощью MSI пакета, перейдите на старицу проекта https://github.com/PowerShell/PowerShell, найдите последний релиз (на момент написания статьи это v7.0.0 Release of PowerShell от 4 марта, доступны также более новые v7.1.0-preview Release of PowerShell, но лучше пока не ставить их до выхода стабильной версии). Разверните список Assets и найдите пакет для вашей версии Windows (PowerShell-7.0.0-win-x64.msi или PowerShell-7.0.0-win-x86.msi).

Скачайте msi файл и установите его.

msiexec.exe /package PowerShell-7.0.0-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1

Вы можете обновить PowerShell непосредственно из консоли.

Обновим (установим) последнюю версию PoSh Core с помощью команды:

  • -Destination – каталог установки PowerShell Core
  • -Preview – установка Preview версии
  • -Quiet – тихая установка
  • -AddToPath – добавить путь к каталогу установки PowerShell Core в переменные окружения

Данная команда загружает установочный MSI файл PowerShell 7.0 с GitHub и запускает установку, затем запускается установка через MSI Installer.

После окончания установки открывается окно PowerShell Core (pwsh.exe), проверьте версию PowerShell и убедитесь, что теперь это PoSh 7.0.0.

Если у вас установлен менеджер пакетов Chocolatey, вы можете установить или обновить версию PowerShell командами:

choco install powershell -y
choco upgrade powershell -y

Обратите внимание, что имя исполняемого файла среды PowerShell изменился. Теперь это c:\Program Files\PowerShell\7\pwsh.exe . У него собственная иконка в меню Start.

  • Для запуска Windows PowerShell, основанного на .NET Framework используется команда powershell.exe
  • Для запуска PowerShell Core, основанного на .NET Core, нужно использовать команду pwsh.exe

Т.е. теперь на этом компьютере есть две версии: Windows PowerShell 5.1 и PowerShell Core 7.0

Оцените статью