У цій статті я постарався зібрати в одному місці основні команди cmd і PowerShell, які корисні при налаштуванні і управлінні Ядро Windows Server. Думаю, цей гайд буде корисний як новачкам, так і досвідченим системним адміністраторам, як довідник з базових командам Server Core.

Нагадаємо, що Серверне ядро це особливий режим установки Windows Server без більшості графічних інструментів і оболонок. Управління таким сервером виконується з командного рядка або віддалено.

Переваги 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 2019

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

задати пароль адміністратора в server core

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

Powershell.exe
Set-ItemProperty -Path 'HKLM:SoftwareMicrosoftWindows NTCurrentVersionWinLogon' -Name Shell -Value 'PowerShell.exe'

І перезавантажте сервер:

Restart-Computer -Force

запускати powershell замість командного рядка

Якщо ви випадково закрили вікно командного рядка, натисніть клавіші Ctrl + Alt + Delete, запустіть Task Manager -> File -> Run -> виконайте cmd.exe (або PowerShell.exe).

Налаштування Windows Server Core за допомогою SCONFIG

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

настройка windows server core за допомогою утиліти sconfig

За допомогою меню Server Configuration можна налаштувати:

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

Все пункт в меню sconfig пронумеровані. Щоб перейти в певний меню наберіть його номер і Enter.

У деяких пунктах меню настройки sconfig є вкладені пункти. Там також, щоб перейти до певної налаштування, потрібно зробити вибір цифри пункту меню.

настройка базових параметрів server core з sconfig

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

Основні команди PowerShell для настроювання Server Core

Розглянемо основні команди PowerShell, які можна використовувати для налаштування Server Core.

Дізнатися інформацію про версії Windows Server і версії PowerShell:

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

powershell дізнатися версію windows server

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

Restart-Computer

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

logoff

Налаштування параметрів мережі

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

Get-NetIPConfiguration

Тепер вкажіть індекс інтерфейсу мережевого адаптера (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

задати ip адреса в windows server core за допомогою powershell

Перевірте поточні налаштування:

Get-NetIPConfiguration

Якщо потрібно скинути IP адреса і повернутися до отримання адреси від DHCP, виконайте:

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

Налаштувати winhttp проксі сервер для PowerShell і системних підключень:

netsh Winhttp set proxy <servername>:<port number>

Налаштування часу / дати

Ви можете встановити дату, час, часовий пояс за допомогою графічної утиліти intl.cpl або за допомогою PowerShell:

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

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

Щоб змінити ім’я комп’ютера:

Rename-Computer -NewName win-srv01 -PassThru

Rename-Computer задати ім'я через powershell

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

Add-Computer -DomainName "corp.winitpro.ru " -Restart

Якщо потрібно додати додаткових користувачів в адміністратори, можна налаштувати групову політику або додати вручну:

Add-LocalGroupMember -Group "Administrators" -Member "corpanovikov"

Для активації Windows Server потрібно вказати ваш ключ:

slmgr.vbs –ipk <productkey>
slmgr.vbs –ato

Або можна активувати хост на 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:WindowsSystem32Scregedit.wsf /ar 0

Дозволити віддалене управління:

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

Поточні параметри:

Configure-SMRemoting.exe -Get

Дозволити Win-Rm PowerShell Remoting:

Enable-PSRemoting –force

Налаштування 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:SoftwarePoliciesMicrosoftWindowsWindowsUpdateAU -Name AUOptions -Value 1
Автоматично завантажувати доступні оновлення:
Set-ItemProperty -Path HKLM:SoftwarePoliciesMicrosoftWindowsWindowsUpdateAU -Name AUOptions -Value 3
Отримати список встановлених оновлень:
Get-Hotfix
або
wmic qfe list
Для ручної установки оновлень Windows можна використовувати утиліту wusa:
Wusa update_name.msu /quiet

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

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

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

Get-WindowsFeature

список всіх ролей в windows server core Get-WindowsFeature

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

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

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

Install-WindowsFeature DNS -IncludeManagementTools

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

Get-Service

Список зупинених служб:

Get-Service | Where-Object {$_.status -eq   “stopped”}

Перезапустити службу:

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

Інформація про вільне місце на диску:

Get-WmiObject -Class Win32_LogicalDisk |
Select-Object -Property DeviceID, VolumeName, @{Label="FreeSpace (Gb)"; expression={($_.FreeSpace/1GB).ToString('F2')}},
@{Label="Total (Gb)"; expression={($_.Size/1GB).ToString('F2')}},
@{label="FreePercent"; expression={[Math]::Round(($_.freespace / $_.size) * 100, 2)}}|ft

інформація про диски і вільному місці в windows server core

Інформація про час останніх 10 перезавантажень сервера:

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

Список встановлених програм:

Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall* | 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:UsersAdministratorDocuments

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

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

Для установки драйвера можна використовувати стандартну утиліту:

Pnputil –i –a c:distrhpdp.inf

Також Microsoft пропонує спеціальний пакет Функція сумісності серверних додатків на вимогу (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~~~~0.0.1.0

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

запуск explorer.exe в windows server core за допомогою Server Core App Compatibility Feature on Demand (FOD),

У цій статті я постарався зібрати найнеобхідніші команди, які потрібно постійно тримати під рукою при роботі з Windows Server Core. Час від часу я буду оновлювати статтю і додавати нові команди, які здадуться мені потрібними для повсякденної роботи.

Leave a Reply

Your email address will not be published. Required fields are marked *