использование adsisearcher для поиска имени компьютера в домене, если он существует или нет, и возврата значения result = true

#powershell #dns #find

#powershell #dns #Найти

Вопрос:

мой скрипт пытается проверить, ввели ли вы компьютерное имя

 $credObjects = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $userNames, $passwords
    $Credential = Get-Credential -Credential $credObjects
    $Searcher = New-Object -TypeName System.DirectoryServices.DirectorySearcher
    $searcher = [adsisearcher]"(amp;(objectCategory=computer)(objectClass=computer)(name=$global:NewComputerName))"
    $searcher.PropertiesToLoad.AddRange(('name'))
    $searchResult = $searcher.FindAll()
    if($searchResult.count -eq 1)
     {
      $Result = $true
     }
      else
    {
      $Result = $False
    }
  

и они используют его в инструкции if для всплывающего сообщения

 elseif ($Result -match 'true')
        {
        $msgBoxInput7 = [System.Windows.Forms.MessageBox]::Show('computer is exist', 'OK')
    
         switch  ($msgBoxInput7) {

        'OK' {
                    $groupbox1.ResumeLayout()
                    $form1.ResumeLayout()
                    $form1.add_FormClosed($Form_Cleanup_FormClosed)
    }
  }
        }
  

любая помощь, чтобы заставить его работать

Комментарии:

1. В чем проблема, с которой вы столкнулись?

2. Это не работает, результат всегда истинный или всегда ложный, есть ли какие-либо изменения в коде, чтобы заставить его работать

3. Какой результат? Пожалуйста, опишите, что вы ожидаете, и что происходит на самом деле — никто, кроме вас, не может видеть ваш экран 🙂

4. Хорошо, когда я ввожу имя компьютера, скрипт проверяет AD и, если существует, показывает окно сообщения, в котором говорится, что этот компьютер существует, если не существует, переименуйте компьютер на тот, который я ввел для ввода

5. И что происходит в данный момент? Говорит ли он «компьютер существует», когда компьютер не существует?

Ответ №1:

код работает нормально, если я запускаю скрипт в admin в powershell, но при запуске его от имени пользователя он работает не так, как ожидалось