У Вас не должно быть нескольких ключей, однако, по умолчанию позволит только одно соединение с определенным ключом, т.е. у Вас могут быть проблемы, если пользователи не разъединяют свое соединение VPN. Существует установка (duplicate-cn
) в конфигурационном файле для разрешения многочисленных связей с определенным сертификатом/ключом.
$c = Get-ADComputer <$ComputerName>
if($c -eq $null) { ItDoesntExist } else { ItLives }
Это должно делать именно то, что вам нужно ... вы сказали, что это не работает для вас, почему именно?
Извините, похоже, что этот командлет на самом деле выдает исключение, а не просто возвращает $ null
, как описано здесь ... и он также игнорирует параметр -erroraction
(прокрутите вниз до комментариев на связанной странице).
Предлагаемое решение:
$errorActionPreference = "SilentlyContinue"
Get-ADComputer <$ComputerName>
Или, лучше, посмотрите мой другой ответ.
Чтобы протестировать объект AD в целом с помощью DistinguishedName, вы можете использовать следующее:
[bool] (Get-ADObject -Filter {DistinguishedName-eq "CN = Users, DC = domain, DC = local"})
Или, если вы хотите выполнить поиск по другому свойству, например samaccountname:
[bool] (Get-ADObject -Filter {sAMAccountname -eq "Administrator"})
Оба возвращают только логическое значение ($ true или $ false) и могут использоваться в условной логике (если / иначе и т. д.).
$errored=$false
try { Add-ADGroupMember -Identity $SomeGroupName $SomeComputer }
catch {
$errored=$true
Write-Output "$SomeComputer does not exist in AD,$_" | Tee-Object $errorLogFileName -Append
}
if ( $errored == $false) {
#either accept the computer is added to $SomeGroupName or delete it back out now that you know $someComputer exists
}