Убедитесь, что OU существует - PullRequest
0 голосов
/ 28 февраля 2019

Я хочу выяснить, существует ли организационная единица, или нет, поэтому я написал следующий код, но он показывает ошибку: Невозможно найти объект с идентификатором OU_Bloquage. Несмотря на то, что он действительно существует (я его создал), нижеэто код, который я написал

Import-Module ActiveDirectory
Import-Module 'Microsoft-PowerShell.Security'
$OUName = 'OU_Bloquage'
if([bool] (Get-ADOrganizationalUnit $OUName))
{ Write-Host 'true' }
else { Write-Host 'false' }

Ответы [ 3 ]

0 голосов
/ 28 февраля 2019

@ Bearded Brawler - Вы близки, но пропускаете контекст остальной части вопроса.

Вместо:

$OUName = 'OU_Bloquage'                  # the OU your looking for.

$OUName = "Name -like '$($OUName)'"
if([bool](Get-ADOrganizationalUnit -Filter $OUName)) {
 Write-Host 'true'
} else {
  Write-Host 'false' }

Примечание. Предполагается, что OUна самом деле 'OU_Bloquage', а не 'Bloquage'.Если это просто Bloquage, отредактируйте первую строку так, чтобы она читалась как таковая.

0 голосов
/ 01 марта 2019

Этот код должен работать. Фильтр с использованием Where-Object

Import-Module ActiveDirectory
$OUName = "OU_NAME"
if([bool] (Get-ADOrganizationalUnit -Filter * | ? {$_.Name -eq $OUName} ))
{ Write-Host 'true' }
else { Write-Host 'false' } 

Результат:

PS C:\Windows\system32> Import-Module ActiveDirectory
$OUName = "CLOUD"
if([bool] (Get-ADOrganizationalUnit -Filter * | ? {$_.Name -eq $OUName} ))
{ Write-Host 'true' }
else { Write-Host 'false' } 
true

PS C:\Windows\system32> Import-Module ActiveDirectory
$OUName = "dsdsadasda"
if([bool] (Get-ADOrganizationalUnit -Filter * | ? {$_.Name -eq $OUName} ))
{ Write-Host 'true' }
else { Write-Host 'false' } 
false
0 голосов
/ 28 февраля 2019

Вместо этого я бы использовал фильтр, чтобы найти подразделение, в котором вы не уверены, полный путь к

Get-ADOrganizationalUnit -Filter 'Name -like "* Bloquage *"' |Имя таблицы формата, отличительное имя -A

...