А АWednesday, 15 October 2025

Get-ADUser та Unable to contact server.

Привіт привіт.

Сьогодні рулимо проблему «Get-ADUser: Unable to contact server» у PowerShell.

Намалював коротеньку інструкцію для діагностики та виправлення проблем із RSAT/ADWS з портом 9389.

Зміст

  1. Початкова інформація та контекст
  2. Перевірки - по кроках
  3. LOGONSERVER vs ADWS - в чому різниця
  4. Що робити, якщо ADWS недоступний
  5. Обхідні шляхи (LDAP / .NET) та рекомендації
  6. Коротке зведення у таблиці

Початкова інформація та контекст

Командлети модуля ActiveDirectory (Get-ADUser, Get-ADDomain, Get-ADComputer) в RSAT використовують службу Active Directory Web Services (ADWS), яка працює через TCP-порт 9389. Якщо при виконанні Get-ADUser ти бачиш помилку “Unable to contact server”, це часто означає, що PowerShell не може зв’язатися з ADWS на жодному доступному контролері домену.

Перевірки - по кроках

1) Перевірка наявності RSAT (AD модуль)

Get-WindowsCapability -Name RSAT* -Online | ? Name -like '*DS-LDS*'

Якщо State : Installed — модуль встановлено. Якщо ні, можна встановити:

Add-WindowsCapability -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0 -Online

2) Перевірка базового мережевого доступу і DNS

Test-Connection <ім'я_DomainController> -Count 1
Resolve-DnsName _ldap._tcp.dc._msdcs.<ваш_домен> -Type SRV

3) Перевірка LOGONSERVER

whoami
echo $env:USERDOMAIN
echo $env:LOGONSERVER

4) Перевірка доступності ADWS (порт 9389)

Get-ADDomainController -Discover -Service ADWS
Test-NetConnection -ComputerName <ім'я_DC> -Port 9389

5) Перевірка безпечного каналу

Test-ComputerSecureChannel -Verbose
Test-ComputerSecureChannel -Repair -Credential (Get-Credential)

LOGONSERVER vs ADWS

LOGONSERVER — контролер, який обробляв ваш вхід. ADWS — служба для PowerShell-запитів (порт 9389). Вони можуть бути різними.

Перевірити обидва

Write-Host "LOGONSERVER: $env:LOGONSERVER"
$dcADWS = Get-ADDomainController -Discover -Service ADWS
Write-Host "ADWS Server: $($dcADWS.HostName) ($($dcADWS.IPv4Address))"

Практичне рішення

$dc = (Get-ADDomainController -Discover -Service ADWS).HostName
Get-ADUser -Server $dc -Filter *

Якщо жоден DC не відповідає на порт 9389

Get-Service ADWS
Start-Service ADWS
Set-Service ADWS -StartupType Automatic
New-NetFirewallRule -DisplayName "Allow ADWS 9389" -Direction Inbound -Protocol TCP -LocalPort 9389 -Action Allow

Обхідні шляхи: LDAP / .NET

$searcher = [ADSISearcher]"(objectClass=user)"
$searcher.FindAll() | Select-Object -First 10

Коротке зведення

СимптомЙмовірна причинаРішення
Get-ADUser → “Unable to contact server”ADWS недоступна або порт 9389 закритийПеревірити ADWS на DC, відкрити порт 9389 або вказати -Server
ADWS відсутнійСтарий DC (до 2008 R2)Використовувати новіший контролер або LDAP/.NET
LOGONSERVER ≠ ADWSВхід через інший DC без ADWSВказувати -Server (ADWS DC) або змінити логон-сервер
Обидва DC без ADWSНемає сучасних DC у доменіОновити DC або використовувати LDAP-запити

Рекомендації

  1. Перевірити, що RSAT AD модуль встановлено.
  2. Переконатися, що DNS показує SRV-записи контролерів домену.
  3. Визначити LOGONSERVER і DC з ADWS.
  4. Тестувати порт 9389 (Test-NetConnection).
  5. Якщо ADWS недоступна - запустити службу, відкрити порт або використовувати інший DC.
  6. Тимчасовий обхід - вказувати -Server з DNS-іменем DC, де ADWS працює.

УВАГА: наведені команди потребують прав адміністратора на сервері PDC.

No comments:

Post a Comment

А что вы думаете по этому поводу?

Версия на печать

Популярное