Windows Server 2019
Обзор
Ссылки по теме:
Каналы распространения
- Long-Term Servicing Channel (LTSC)
- поставляется в виде ISO образа
- включает редакции Standard и Datacenter (без рабочего стола)
- есть возможность выбрать вариант с рабочим столом для обоих редакций
- Semi-Annual Channel (SAC)
- поставляется в виде образов отдельных контейнеров с основными сервисами
- контейнер nano Server
Основные области применения
- гибридное облако
- безопасность
- платформа приложений
- гиперконвергентная инфраструктура (HCI)
Возможности
- Windows Admin Center - веб сервис для управления инфраструктурой серверов и кластеров
- можно ставить на Windows Server 2019, Windows 10, также поддерживается установка на предыдущие версии для серверов и рабочих станций
- может управлять серверами и рабочими станциями различных версий
- поставляется бесплатно (либо в составе ОС)
- Системная аналитика
- подсистема анализа и прогнозирования на базе машинного обучения
- анализирует системные данные, такие как события и счетчиков производительности
- предоставляет аналитические результаты
Windows Server release information
Оригинальные ISO
Файл: SW_DVD9_Win_Server_STD_CORE_2019_64Bit_English_DC_STD_MLF_X21-96581.iso Семейство: Operating Systems Версия: Windows Server 2019 (Updated Sept 2018) - re-release Язык: Английский (США) - (en) CRC-32: 4b67205e MD5: f1222583e87a979c516e431d10ae0b16 SHA-1: e1da51796746668fb36864a7c3c6460d01f7d0aa SHA-256: 61a391f0dc98e703da674df3c984ac2eb432ff757f949385360e68476c920478 SHA-512: 6eaf8b8e55b5ece6ea5ab6cd99e625de665e683c72f91405efd5c84b4167020251dacb0a7485682979241370cd24ab7ce3b3ed7b8d724ed5a41ec51e0ff0bb92 SHA3-256: 63a9737bf4f8591f08b0529e921dbca999afbf67b3b360125f7f99696217be02 SHA3-512: be45b7e57178fb6243af2568045907dd97d554a928a53e216ca165012090731fe9c7af40e9697fe886f49b547981e489c6fc7d1bf6116220a90de709b65e72ff Размер: 4.51 GB (4843016192 байт)
Установка
При установке Windows Server 2019 можно выбрать одну из четырех редакций:
- Windows Server 2019 Standard
- Windows Server 2019 Standard (Desktop Experience)
- Windows Server 2019 Datacenter
- Windows Server 2019 Datacenter (Desktop Experience)
В русском дистрибутиве список редакций выглядит так:
- Windows Server 2019 Standard
- Windows Server 2019 Standard (возможности рабочего стола)
- Windows Server 2019 Datacenter
- Windows Server 2019 Datacenter (возможности рабочего стола)
Windows Server 2019 Nano - является контейнером и может работать только внутри другой редакции ОС Windows.
Windows Server 2019 Standard
Редакция без полноценного графического интерфейса, считается базовой и рекомендуется для всех сервисов, которые могут работать без графического интерфейса.
Установка
Выбор языковых настроек
Language to install: [English(United States)] Time and currency format: [English(United States)] Keyboard or input method: [US]
Важно: Нельзя выбирать русские параметры, т.к. по умолчанию задается только одна раскладка и если она не [US], то вы не сможете вводить никакие команды
После установки
Смените региональные настройки на русские
# 203 Russia # 244 United States Set-WinHomeLocation -GeoId 203
Добавьте русскую раскладку
Get-ItemProperty "HKCU:\Keyboard Layout\Preload\" New-ItemProperty "HKCU:\Keyboard Layout\Preload\" -Name 2 -Type String -Value "00000419"
Если необходимо, то измените сочетание клавиш для смены раскладки
Get-ItemProperty "HKCU:\Keyboard Layout\Toggle\" Set-ItemProperty "HKCU:\Keyboard Layout\Toggle\" -Name "HotKey" -Value 2 # 1 - Alt+Shift # 2 - Ctrl+Shift
Проверьте настройки "Current User" и скопируйте их на системный профиль и профиль по умолчанию, после чего смените локаль на русскую
intl.cpl
Formats Format: Russian (Russia) Administrative [Copy settings] Current User Display language: English (United States) Input language: English (United States) - US Format: Russian (Russia) Location: Russia Copy your current settings to: [v] Welcome screen and system accounts [v] New user accounts [OK] [Change system locale ...] Russian (Russia) [ ] Beta: Use Unicode UTF-8 for worldwide language support Перезагрузка
При установке с русского дистрибутива, важно выбрать
Устанавливаемый язык: [Русский] Формат времени и денежных единиц: [Английский(США)] Метод ввода (раскладка клавиатуры): [США]
Далее делаем все так же как и для англоязычного дистрибутива
Конфигурация
Включение RDP
powershell
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server" -Name fDenyTSConnections -Value 0 Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
утилиты, команды
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f netsh advfirewal firewall set rule group="Remote Desktop" new enable=yes
Управление
Общее
Приложения
powershell
clear-host # очистка экрана (синонимы: clear, cls) get-childitem # список дочерних объектов (синонимы: dir,ls), умеет перечислять каталоги и файлы, переменные среды, реестр ls C:\ ls ENV:\ ls ENV:\username ls HKLM:\SOFTWARE Stop-Computer # выключить компьютер Restart-Computer # перегрузить компьютер # информация об ОС systeminfo /fo csv | ConvertFrom-Csv | select OS*, System* # полный номер версии ОС cmd /c ver # смена имени компьютера Rename-Computer -NewName MyComp Restart-Computer # вывод имени компьютера (Get-ComputerInfo).CsName dir env:\computername # список устройств с проблемой драйвера Get-PnpDevice | where { ($_.Status -ne "OK") -and ($_.Present) } # проверка активации # если status=1, значит успешно активирована Get-CimInstance -ClassName SoftwareLicensingProduct |where PartialProductKey | select Name, ApplicationId, LicenseStatus | Format-List *
Просмотр логов
# Вывод последних 100 записей из лога System Get-EventLog -LogName System -Newest 100
Включение удаленного управления
# если категория сети на сетевом интерфейсе public, то необходимо изменить на private Set-NetConnectionProfile -InterfaceIndex <номер_интерфейса> -NetworkCategory Private # включение удаленного управления Enable-PSRemoting -force # определение доверенных хостов, которым разрешено подключение Set-Item WSMan:\localhost\Client\TrustedHosts -Value * # удаленное подключение Enter-PSSession -ComputerName <server_IP> -Credential .\Administrator
утилиты, команды (выполняется в command shell, т.е. в cmd)
cls # очистка экрана shutdown /s /t 0 # выключить компьютер shutdown /r /t 0 # перегрузить компьютер dir # перечисление каталогов и файлов reg # работа с реестром set # перечисление переменных среды # вывод имени компьютера echo %computername% # работа с драйверами устройств pnputil /? # информация о системе (версия ОС, версия BIOS, процессоры, память, и т.д.) systeminfo # полный номер версии ОС ver
Смена SID с помощью sysprep
# выполняется в command shell cd C:\Windows\System32\sysprep sysprep.exe # в графическом окне Enter System Out-of-Box Experience (OOBE) [v] Generalize Shutdown options [Shutdown] # Enter System Out-of-Box Experience (OOBE) - запустить мастер первичной настройки ОС при следующем старте системы # Generalize - удалить SID и драйвера специфичные для текущего оборудования
Время
powershell
Get-TimeZone # получить текущую временную зону Get-TimeZone -ListAvailable # список доступных временных зон Set-TimeZone -id "..." # установка текущей временной зоны по id Set-TimeZone -Name "..." # установка текущей временной зоны по StandardName
Настройка NTP
# включение NTP сервера Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\w32time\TimeProviders\NtpServer" -Name "Enabled" -Value 1 # проверка правила файрвола, разрешающего доступ к серверу времени # на контроллерах домена оно включается в составе группы "Active Directory Domain Services" Get-NetFirewallRule -DisplayName "Active Directory Domain Controller - W32Time (NTP-UDP-In)" Get-NetFirewallRule | where {$_.DisplayName -match "W32time"} # задание списка вышестоящих серверов времени для обновления (по умолчанию "time.windows.com,0x8") Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\services\W32Time\Parameters" -Name "NtpServer" -Value "0.pool.ntp.org,0x1 1.pool.ntp.org,0x1 2.pool.ntp.org,0x1" # выставление флагов (значение по умолчанию 0x0A) Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\services\W32Time\Config" -Name "AnnounceFlags" -Value <0x05 или 0x0A> # AnnounceFlags: # 0x00 Not a time server # 0x01 Always time server # 0x02 Automatic time server # 0x04 Always reliable time server # 0x08 Automatic reliable time server Restart-Service w32Time
Для управления синхронизацией времени можно также использовать утилиту w32tm /?
Дисковая подсистема
powershell
Get-Disk # список физических дисков Get-Volume # список томов Get-SMBOpenFile # список файлов открытых по сети Close-SMBOpenFile # закрыть файл открытый по сети
утилиты
diskpart # управление дисками и томами openfiles # управление открытыми по сети файлами (для управления локальными файлами нужна доп. настройка ОС)
Локальные группы и пользователи
powershell
Get-LocalUser # вывести список локальных пользователей Get-LocalGroup # вывыести список локальных групп # Список членов локальной группы Get-LocalGroup -Name Administrators | Get-LocalGroupMember # смена паролья локального администратора Set-LocalUser -Name Administrator -Password $( Read-Host "pass" -AsSecureString )
Active Directory
powershell
Управление пользователями
# получить список всех пользователей AD в заданном контейнере Get-ADUser -filter 'Name -like "*"' -SearchBase <путь_к_контейнеру> | ft name # добавление нового пользователя New-ADUser -Name <общее_имя> -PasswordNeverExpires $true -SamAccountName <имя_учетки> -path <путь_к_контейнеру> # смена пароля пользователя AD Set-ADAccountPassword <имя_учетки> -NewPassword $( Read-Host "Enter new password" -AsSecureString ) # установка атрибута смены пароля при входе Set-ADUser <имя_учетки> -PasswordNeverExpires $false -ChangePasswordAtLogon $true # включение учетки Set-ADUser <имя_учетки> -Enabled $true
Управление группами
# список групп заданного типа Get-ADGroup -filter 'GroupScope -eq "Global"' | ft Name Get-ADGroup -filter 'GroupScope -eq "DomainLocal"' | ft Name Get-ADGroup -filter 'GroupScope -eq "Universal"' | ft Name # добавление учетки в группу Add-ADGroupMember <имя_группы> -Members <имя_учетки>
Другое
# включение компьютера в домен $credential = New-Object System.Management.Automation.PSCredential("Administrator@firma.ru",(Read-Host "password" -AsSecureString)) Add-Computer -DomainName "firma.ru" -Credential $credential [-OUPath ...] # Работа с группами Get-ADGroup Get-ADGroupMember # Работа с OU Get-ADOrganizationalUnit # определение Forest Level Get-ADForest | select ForestMode # определение Domain Level Get-ADDomain | select DomainMode
Сеть
Ссылки по теме
- Настройка сети с помощью PowerShell (IP адрес, DNS, шлюз, маршруты)
- Объединение сетевых карт (Nic Teaming) в Windows Server 2019
powershell
# список командлетов включенных в модуль NetTCPIP get-command -module NetTCPIP # Список сетевых адаптеров Get-NetAdapter # переименование адаптера Rename-NetAdapter -Name "Ethernet 3" -NewName "LAN" # вывести текущие IPv4 адреса Get-NetIPAddress -AddressFamily IPv4 # вывести текущие IP адреса (другой способ) Get-NetIPConfiguration # отключение DHCP на интерфейсе Set-NetIPInterface -InterfaceIndex <номер_интерфейса> -Dhcp Disabled # Set-NetIPAddress использует параметр IPAddress для поиска, но не для изменения # для ручной настройки IP адреса, используйте командлет New-NetIPAddress # например так $ipParams = @{ InterfaceIndex = 4 IPAddress = "192.168.0.10" PrefixLength = 24 AddressFamily = "IPv4" DefaultGateway = "192.168.0.1" } New-NetIPAddress @ipParams # после добавления IP адреса не забудьте проверить текущий список IP и корректность маршрута по умолчанию, лишнее удаляйте # удаление IP адреса добавленного вручную Remove-NetIPAddress -IPAddress <IP_адрес> # вывод списка маршрутов Get-NetRoute # удаление маршрута Remove-NetRoute -DestinationPrefix <префикс_назначения> ... прочие параметры однозначно идентифицирующие маршрут # перезагрузка интерфейса, желательна после изменения конфигурации Restart-NetAdapter -InterfaceAlias <имя_интерфейса> # установка главного (primary) DNS суффикса Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -Name 'NV Domain' -Value 'example.com' Restart-Computer # указание DNS серверов для интерфейса Set-DnsClientServerAddress -InterfaceIndex <номер_интерфейса> -ServerAddresses <IP_DNS1>,<IP_DNS2> # проверка очередности DNS серверов Get-NetAdapter LAN | Get-DnsClientServerAddress # проверка флага RegisterThisConnectionAddress Get-NetAdapter <имя_адаптера> | Get-DnsClient # параметры сетевого подключения Get-NetConnectionProfile # в том числе выводит тип сети # NetworkCategory : Public # изменение сети на private Set-NetConnectionProfile -InterfaceIndex <номер_интерфейса> -NetworkCategory Private # разрешение DNS имени Resolve-DNSName <dns_name> # выключение IPv6 Get-NetAdapterBinding -ComponentID ‘ms_tcpip6’ | Disable-NetAdapterBinding -ComponentID ‘ms_tcpip6’ -PassThru
Объединение сетевых карт (Nic Teaming)
- В Диспетчере серверов создаем группу и задаем ее имя
- Включаем в нее сетевые интерфейсы
- В разделе "Дополнительно" выбираем режим поддержки группы (Teaming Mode), доступны следующие настройки
- Режим поддержки групп
- Режим балансировки нагрузки
- Резервный адаптер
- Основной групповой интерфейс
Режим поддержки групп, возможны 3 варианта
- Не зависит от коммутатора (Switch independent)
- можно включать в разные коммутаторы
- не нужно ничего настраивать на стороне коммутаторов
- балансируется только исходящий трафик
- входящий трафик приходит на основной адаптер группы, если он выходит из строя, то все входящие идут на другой адаптер группы
- Статическая поддержка групп (Static Teaming) (IEE 802.3ad draft v1)
- Необходима настройка на стороне коммутатора, порты вручную объединяются в группу
- Все адаптеры должны быть подключены к одному коммутатору
- Данный режим обычно поддерживают коммутаторы серверного класса
- Исходящие будут балансироваться по алгоритму заданному на стороне сервера
- Входящие будут балансироваться по алгоритму заданному на стороне коммутатора
- LACP (Link Aggregation Control Protocol), IEE 802.1.ax
- Необходима настройка на стороне коммутатора
- Нет привязки к конкретным портам, настройка осуществляется на уровне коммутатора
- Переключение в другой порт обычно не требует внесения изменений в настройку коммутатора
- Согласование портов происходит динамически по протоколу LACP
Режим балансировки нагрузки также имеет 3 варианта
- Хеш адреса (Address Hash)
- Порт Hyper-V (Hyper-V Port)
- Динамический (Dynamic)
Firewall
powershell
# список команд Get-Command -Module NetSecurity # список групп правил файрвола Get-NetFirewallRule | select DisplayGroup -Unique # список правил файрвола в заданной группе Get-NetFirewallRule -DisplayGroup "Remote Desktop" | ft Enabled, Name, DisplayName, Action, Profile
Hyper-V
Ссылки по теме:
- Using FreeRDP to connect to the Hyper-V console
- Работа с Hyper-V и Windows PowerShell
- Сжатие виртуальных динамических дисков Hyper-V
Get-Command -Module hyper-v # список всех команд в модуле hyper-v Get-VM # список виртуальных машин Get-VM myVM | Get-Member # вывод списка всех параметров и методов объекта # вывод основных параметров $VM = Get-VM myVM $VM| ft Name,ProcessorCount,MemoryStartup $VM.NetworkAdapters $VM.HardDrives $VM.DVDDrives Start-VM -Name myVM # запуск машины myVM Stop-VM -Name myVM # штатное завершение работы гостевой системы, если нет активных сессий Stop-VM -Name myVM -Force # штатное завершение работы гостевой системы, завершение всех сессий и принудительное завершение процессов, которые не могут корректно завершиться Stop-VM -Name myVM -Save # сохранить текущее состояние и выключить (аналог гибернации) Stop-VM -Name myVM -Turnoff # выключить виртуальную машину (аналог выключения питания) Suspend-VM -Name myVM # поставить виртуальную машину на паузу (аналог сна) Resume-VM -Name myVM # снять виртуальную машину с паузы Get-VMSnapshot -VMName myVM # вывести список snapshot-ов # создать snapshot для виртуальной машины myVM и присвоить ему имя BeforeUpdates Checkpoint-VM -Name myVM -SnapshotName BeforeUpdates # восстановление на момент создания указанной контрольной точки (изменения текущего состояния до момента вышестоящей контрольной точки теряются) Restore-VMSnapshot -VMName myVM -SnapshortName <имя_контрольной_точки> # удаление контрольной точки Remove-VMSnapshot -VMName myVM -SnapshortName <имя_контрольной_точки> # удаление контрольной точки включая все дочерние Remove-VMSnapshot -VMName myVM -SnapshortName <имя_контрольной_точки> -IncludeAllChildSnapshots
Пример создания новой виртуальной машины
$VMName="SRV01" $VM = @{ Name = "$VMName" Generation = 2 MemoryStartupBytes = 4GB NewVHDPath = "$VMName.vhdx" NewVHDSize = 50GB BootDevice = "VHD" SwitchName = "Default Switch" } New-VM @VM Set-VMProcessor -VMName $VMName -Count 4 Add-VMDvdDrive -VMName $VMName -Path "D:\hyper-v\iso\win2019.iso" # смотрим текущий порядок загрузки $Boot = (Get-VMFirmware -VMName $VMName).BootOrder $Boot # задаем нужный порядок загрузки Set-VMFirmware -VMName $VMName -BootOrder $Boot[2],$Boot[0],$Boot[1] # отключаем создание автоматических контрольных точек, как минимум на период установки ОС Set-VM -Name $VMName -AutomaticCheckpointsEnabled $false # отключение динамической памяти, по необходимости (динамическая память может создать проблемы с производительностью) Set-VMMemory -VMName $VMName -DynamicMemoryEnabled $false
Переключение виртуальной машины на другой виртуальный коммутатор
Get-VM myVM | Get-VMNetworkAdapter | Connect-VMNetworkAdapter -SwitchName "NewSwitch"
Подключение к консоли гостевой машины на Hyper-V из Linux
# получите идентификатор гостевой машины (Get-VM <имя>).id # подключение из ubuntu 20.04 (проверено) sudo apt install freerdp2-x11 xfreerdp /cert-ignore /u:<username> /vmconnect:<vmid> /v:<hypervhost> # в других дистрибутивах Linux возможен еще такой вариант (не проверено) xfreerdp -ignore-certificate -no-nego -u <username> -pcb <vmid> -t 2179 <hypervhost>
Управление ролями и компонентами
# вывод дерева ролей и компонентов Get-WindowsFeature # установка компонента Install-WindowsFeature "<имя_компонента>" # удаление компонента Uninstall-WindowsFeature -Name "<имя_компонента>" -Remove
Управление модулями Powershell
Get-Module -list
Управление пакетами
# вывод списка установленных провайдеров пакетов Get-PackageProvider # Установка провайдера пакетов Install-PackageProvider -Name <имя_провайдера>
Удаление провайдера пакетов
# определение пути размещения провайдера пакетов (Get-PackageProvider -Name <имя_провайдера>).ProviderPath # обычно Windows загружает дополнительные провайдеры пакетов из каталога поиска провайдеров пакетов C:\Program Files\PackageManagement\ProviderAssemblies # если провайдер расположен в другом месте, то вопрос удаления необходимо дополнительно изучить # для удаления провайдера достаточно удалить все его файлы и подкаталог # файлы провайдеров обычно открыты и просто так удалить не получится # сначала файлы провайдера нужно переместить за пределы каталога провайдеров и перегрузить компьютер # после этого можно удалить файлы и подкаталоги провайдера # пример удаления провайдера пакетов NuGet move "C:\Program Files\PackageManagement\ProviderAssemblies\nuget\2.8.5.208\Microsoft.PackageManagement.NuGetProvider.dll" C:\ rmdir "C:\Program Files\PackageManagement\ProviderAssemblies\nuget" -Recurse Restart-Computer del "C:\Microsoft.PackageManagement.NuGetProvider.dll"
Обновление
Ссылки по теме
# Установка пакетного провайдера NuGet Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force Install-Module -Name PSWindowsUpdate Get-Content Function:\Start-WUScan Get-Command -Module WindowsUpdateProvider
Терминальная ферма
# список серверов терминальной фермы и их ролей # выполняется на активном RDCB Get-RDServer
Установка приложений или правка реестра на хосте с установленным RDSH
# переключение текущей сессии в режим установки change user /install ... устанавливаем приложения, правим реестр и т.п. ... # переключение текущей сессии в режим выполнения change user /execute
Возможности (Capabilities)
Список возможностей (на 5.07.2021)
- Accessibility.Braille
- Browser.InternetExplorer
- Hello.Face.17658
- Hello.Face.Migration.17658
- Kernel.Soft.Reboot
- Language.Basic*
- Language.Fonts.*
- Language.Handwriting*
- Language.OCR*
- Language.Speech*
- Language.TextToSpeech*
- MathRecognizer
- Media.WindowsMediaPlayer
- Microsoft.Onecore.StorageManagement
- Microsoft.Windows.StorageManagement
- Msix.PackagingTool.Driver
- NetFX3
- OpenSSH.Client
- OpenSSH.Server
- Print.EnterpriseCloudPrint
- Print.MopriaCloudService
- RIP.Listener
- ServerCore.AppCompatibility
- Tools.DTrace.Platform
- Tools.Graphics.DirectX
- WMI-SNMP-Provider.Client
- XPS.Viewer
Полный список содержит множество вариаций для различных языков, поэтому я использовал символ маски *, для обозначения группы элементов. Также из имени удален номер версии.
Особенности (Features)
Обзор
Особенности (Feature) бывают трех типов (FeatureType)
- Role
- Role Service
- Feature
На верхнем уровне иерархии особенностей располагаются роли и простые особенности. Сервисы обычно входят в состав ролей. Простые особенности также могут содержать вложенную иерархию особенностей.
Роли
- Active Directory Certificate Services
- Active Directory Domain Services
- Active Directory Federation Services
- Active Directory Lightweight Directory Services
- Active Directory Rights Management Services
- Device Health Attestation
- DHCP Server
- DNS Server
- Fax Server
- File and Storage Services
- Host Guardian Service
- Hyper-V
- Network Policy and Access Services
- Print and Document Services
- Remote Access
- Remote Desktop Services
- Volume Activation Services
- Web Server (IIS)
- Windows Deployment Services
- Windows Server Update Services
Особенности верхнего уровня (не имеющие статус роли)
- .NET Framework 3.5 Features
- .NET Framework 4.7 Features
- Background Intelligent Transfer Service (BITS)
- BitLocker Drive Encryption
- BitLocker Network Unlock
- BranchCache
- Client for NFS
- Containers
- Data Center Bridging
- Direct Play
- Enhanced Storage
- Failover Clustering
- Group Policy Management
- Host Guardian Hyper-V Support
- I/O Quality of Service
- IIS Hostable Web Core
- Internet Printing Client
- IP Address Management (IPAM) Server
- iSNS Server service
- LPR Port Monitor
- Management OData IIS Extension
- Media Foundation
- Message Queuing
- Multipath I/O
- MultiPoint Connector
- Network Load Balancing
- Network Virtualization
- Peer Name Resolution Protocol
- Quality Windows Audio Video Experience
- RAS Connection Manager Administration Kit (CMAK)
- Remote Assistance
- Remote Differential Compression
- Remote Server Administration Tools
- RPC over HTTP Proxy
- Setup and Boot Event Collection
- Simple TCP/IP Services
- SMB 1.0/CIFS File Sharing Support
- SMB Bandwidth Limit
- SMTP Server
- SNMP Service
- Storage Replica
- Telnet Client
- TFTP Client
- VM Shielding Tools for Fabric Management
- WebDAV Redirector
- Windows Biometric Framework
- Windows Defender Antivirus
- Windows Identity Foundation 3.5
- Windows Internal Database
- Windows PowerShell
- Windows Process Activation Service
- Windows Search Service
- Windows Server Backup
- Windows Server Migration Tools
- Windows Standards-Based Storage Management
- Windows Subsystem for Linux
- Windows TIFF IFilter
- WinRM IIS Extension
- WINS Server
- Wireless LAN Service
- WoW64 Support
- XPS Viewer
Active Directory Domain Services
Этапы:
- Настройте сетевой интерфейс:
- статический IP адрес
- маску подсети
- шлюз по умолчанию
- Смените имя компьютера на нужное и перегрузите компьютер
- Если компьютер клонирован с образа, то смените SID, в win2019 это важно, потому что в win2019 домен примет SID от первого контроллера, что создаст проблемы с включением в домен серверов с этого же образа.
- При включенном IPv6 добавление нового контроллера домена может зависнуть, нужно разбираться в причинах или отключить IPv6 на всех контроллерах домена
- Установите роль DNS сервера
- Установите роль Active Directory Domain Services
- Перегрузите компьютер
- Повысьте сервер до контроллера домена
# проверка конфигурации IP Get-NetIPConfiguration Get-NetIPAddress -AddressFamily IPv4
Установите роль DNS сервера
Install-WindowsFeature DNS # Если не планируете разрешать имена от корня, # то укажите DNS сервер для форвардинга Set-DNSServerForwarder -IPAddress <DNS_сервер> -IncludeManagementTools
Установите роль Active Directory Domain Services
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
Создание нового леса
$params = @{ DomainName = "example.com" CreateDnsDelegation = $false DatabasePath = "C:\Windows\NTDS" DomainMode = 7 DomainNetbiosName = "EXAMPLE" ForestMode = "7" InstallDns = $true LogPath = "C:\Windows\NTDS" NoRebootOnCompletion = $true SysvolPath = "C:\Windows\SYSVOL" Force = $true } Install-ADDSForest @params Restart-Computer
Первая перезагрузка займет немного больше времени чем обычно.
Обратите внимание, что повышение до контроллера домена сбросила на сетевом интерфейсе порядок опроса DNS серверов на 127.0.0.1
. В более ранних версиях Windows такая настройка могла создать проблему при загрузке, т.к. служба DNS стартовала позже и не могла ответить контроллеру. Если контроллер будет постоянно долго висеть на загрузке, то попробуйте изменить порядок DNS серверов, указав первым соседний контроллер домена.
Добавление контроллера домена в существующий домен
Install-ADDSDomainController -DomainName "example.com"
Remote Desktop Services
Состав роли, редакция: Windows Server 2019 Standard
[ ] Remote Desktop Services [ ] Remote Desktop Licensing
Состав роли, редакция: Windows Server 2019 Standard (Desktop Experience)
[ ] Remote Desktop Services [ ] Remote Desktop Connection Broker [ ] Remote Desktop Gateway [ ] Remote Desktop Licensing [ ] Remote Desktop Session Host [ ] Remote Desktop Virtualization Host [ ] Remote Desktop Web Access
Сокращения:
- RDWA (Remote Desktop Web Access)
- RD Licensing (Remote Desktop Licensing)
- RDCB (Remote Desktop Connection Broker)
- RDVH (Remote Desktop Virtualization Hosts)
- RDSH (Remote Desktop Session Host)
- RDG (Remote Desktop Gateway)
Схемы развертывания:
- Стандарт - RDCB, RDWA, RDSH - ставятся на 3 разных сервера
- Быстрый старт - все компоненты ставятся на один сервер
- Multipoint - вариант для учебных заведений, к серверу подключается несколько мониторов по HDMI и клавиатур по USB, Multipoint дает каждому свой рабочий стол.
- PSD (Personas Sessin Desktop) - нужно разобраться, это что-то типа каждому пользователю по своей виртуальной среде, типа почти как по своей виртуалке, но в рамках одной ОС сервера.
- RDCH - ?
Примеры установки
Известные проблемы:
DNS Server
KMS SRV Record
Add-DnsServerResourceRecord -Srv -Name "_VLMCS._tcp" -ZoneName "mydomain.ru" -DomainName "kms.mydomain.ru" -Priority 0 -Weight 0 -Port 1688
DHCP Server
Не стоит экспериментировать с DHCP в рабочем сегменте сети. Ваш тестовый DHCP может выдать кому-то некорректный IP адрес, что может создать серьезные проблемы для всей сети.
Приведенные ниже инструкции предполагают, что будущий DHCP сервер уже включен в домен и все команды выполняются на DHCP сервере.
Установка роли DHCP сервера
# добавление роли и средств управления Add-WindowsFeature -Name DHCP -IncludeManagementTools # добавление локальных групп "DHCP Users" и "DHCP Administrators" # если DHCP сервер является контроллером домена, то добавляются домен-локальные группы Add-DHCPServerSecurityGroup # перезапуск сервиса DHCP Restart-Service DHCPServer # добавление сервера в список авторизованных серверов в Active Directory Add-DhcpServerInDC -DnsName <dhcp_server> # получение списка DHCP серверов авторизованных в Active Directory Get-DhcpServerInDC # задание учетки, под которой DHCP сервис будет вносить изменения в DNS # имя необходимо задавать в формате domain\user или user@domain.ru Set-DHCPServerDnsCredential -Credential (Get-Credential) # Добавление области Add-DHCPServerv4Scope -Name <name> -StartRange <IP1> -EndRange <IP2> -SubnetMask <маска подсети> -State Active # вывод текущего списка областей Get-DHCPServerv4Scope # определение опций на уровне сервера, которые наследуются всеми областями Set-DHCPServerv4OptionValue -DnsServer <IP_dns1>, <IP_dns2> -DnsDomain <dns_domain> -Router <IP_gateway> # вывод списка опций заданных на уровне сервера Get-DHCPServerv4OptionValue # удаление опции заданной на уровне сервера Remove-DHCPServerv4OptionValue -OptionId <option_id> # определение опций на уровне области Set-DhcpServerv4OptionValue -ScopeId <scope_id> -Router <IP_gateway> # вывод списка опций заданных на уровне области Get-DHCPServerv4OptionValue -ScopeId <scope_id> # удаление опции заданной на уровне области Remove-DHCPServerv4OptionValue -ScopeId <scope_id> -OptionId <option_id>
Текст ниже пока только скопипастил из статьи выше.
Нужно протестировать и причесать.
# Если после конфигурации DHCP выходит сообщение, что конфигурация не настроена, то выполняем: Set-ItemProperty -Path registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ServerManager\Roles\12 -Name ConfigurationState -Value 2 # перезагрузка Restart-Computer -Force
Windows Server Update Services
WSUS (Windows Server Update Services) - предназначен для централизации процесса обновления систем на базе Microsoft Windows
Ссылки по теме
- Windows Server Update Services best practices
- The complete guide to WSUS and Configuration Manager SUP maintenance
Install-WindowsFeature -Name UpdateServices -IncludeManagementTools # настраиваем каталог данных WSUS # каталог данных не рекомендуется размещать на системном диске mkdir D:\WSUS & 'C:\Program Files\Update Services\Tools\WsusUtil.exe' postinstall CONTENT_DIR=D:\WSUS # определение в качестве вышестоящего источника обновлений Microsoft Update Set-WsusServerSynchronization -SyncFromMU # корректировка конфигурации WSUS $wsus = Get-WsusServer $wsusConfig = $wsus.GetConfiguration() # включение языка $wsusConfig.AllUpdateLanguagesEnabled = $false $wsusConfig.SetEnabledUpdateLanguages("ru") $wsusConfig.Save() $subscription = $wsus.GetSubscription() $subscription.StartSynchronizationForCategoryOnly() Get-WsusProduct | where-Object { $_.Product.Title -in ( 'SQL Server 2019', 'Exchange Server 2010', 'Windows Server 2019') } | Set-WsusProduct Get-WsusClassification | Where-Object { $_.Classification.Title -in ( 'Update Rollups', 'Security Updates', 'Critical Updates', 'Service Packs', 'Updates') } | Set-WsusClassification $subscription.SynchronizeAutomatically=$true $subscription.SynchronizeAutomaticallyTimeOfDay= (New-TimeSpan -Hours 0) $subscription.NumberOfSynchronizationsPerDay=1 $subscription.Save() # запуск синхронизации $subscription.StartSynchronization() # проверка текущего процесса синхронизации $subscription.GetSynchronizationStatus()