Я пытаюсь создать скрипт, который предлагает пользователю ввести имя компьютера, а затем скрипт вернет, существует ли он в нашем домене или нет, используя следующее.
$compname = Read-Host -Prompt "Please enter a computer name"
$computers = Get-ADComputer -Filter * -SearchBase 'DC=LAN,DC=COMPANY,DC=COM' -SearchScope 2
foreach($computer in $computers)
{
if($computer.Name -eq $compname)
{
Write-Output "$compname exists in your domain."
}
elseif($computer.Name -ne $compname)
{
Write-Output "$compname does not exist in your domain."
}
Это работаетвплоть до заявления elseif
.Если я ищу компьютер, который на 100% уверен, что он существует, скрипт возвращается, как и должен, но когда я пытаюсь найти компьютер, который на 100% уверен, что он не существует, он ничего не возвращает.
Поправьте меня, если я ошибаюсь, но я верю, что это потому, что оно содержится в утверждении foreach
.Тем не менее, я борюсь за то, куда еще поместить выражение «не содержит» или что использовать.
Я все еще очень плохо знаком с Powershell, но я стараюсь выучить как можно больше и иногда делаю этоключ к обучению.
Примечание. Мне известно, что база поиска не имеет описания, она предназначена для обеспечения безопасности компании, но я могу заверить вас, что при вводе правильного OU он работает до elseif
, как указано выше.
Следующим шагом было бы поместить это в цикл do
until
, который спросит, хочет ли процесс повториться.
Большое спасибо заранее