Как узнать, находится ли локальный компьютер в домене?
Существует ли простой и быстрый способ узнать, подключен ли локальный компьютер к домену с помощью PowerShell?
Я нахожу много материала о получении текущего домена рабочей группы ИЛИ, но нет четких указаний на то, как узнать, действительно ли это рабочая группа или домен. Просто хочу выяснить это, прежде чем вызывать некоторые связанные с Active Directory вещи, которые дают тайм-аут только после долгого ожидания на компьютерах рабочей группы.
Метод [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
занимает много времени, прежде чем происходит сбой на компьютерах рабочих групп, и класс WMI Win32_ComputerSystem
отображает имя, но не в том случае, если это реальный домен.
Ответы
Ответ 1
Win32_ComputerSystem
имеет свойство PartOfDomain
которое указывает, присоединен ли компьютер к домену или нет. Существует также свойство рабочей группы - оно должно быть пустым, если компьютер находится в домене.
Пример:
if ((gwmi win32_computersystem).partofdomain -eq $true) {
write-host -fore green "I am domain joined!"
} else {
write-host -fore red "Ooops, workgroup!"
}
Ответ 2
Это просто. Работает, потому что, если компьютер не находится в домене, пользовательский домен по умолчанию является локальным компьютером
if ($env:computername -eq $env:userdomain) { echo " no AD domain" }
else { echo "must be in AD"}
Ответ 3
Может быть, введите "Systeminfo" в PowerShell и посмотрите в разделе "Домен"?