2010-12-10 5 views
18

Есть ли простой способ и Быстрый способ узнать, подключен ли локальный компьютер к домену с помощью PowerShell?Как найти локальный компьютер в домене?

Я нахожу много вещей о том, как получить текущий домен рабочей группы OR, но нет четких указаний на то, как узнать, действительно ли это рабочая группа или домен. Просто хочу найти это, прежде чем вызывать некоторые связанные с Active Directory материалы, которые дают только тайм-аут после длительного ожидания на компьютерах рабочей группы.

[System.DirectoryServices.ActiveDirectory.Domain] :: GetCurrentDomain() занимает много времени перед сбоем на компьютерах рабочих групп, а WMI Win32_ComputerSystem показывает имя, но не является реальным доменом.

/Per

ответ

30

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!" 
} 
0

Это просто. Работает, потому что, если компьютер не в домене, UserDomain по умолчанию используется локальный компьютер

if ($env:computername -eq $env:userdomain) { echo " no AD domain" } 
else { echo "must be in AD"} 
+2

Это не работает, если пользователь входит в системе с помощью учетной записи локальной или является встроенной учетной записью системы. Это также приведет к сбою в многодоменной среде, когда пользователь и компьютер не находятся в одном домене. – CoinEnablers 2016-04-16 21:07:55

Смежные вопросы