Tipps

Die Existenz einer OU testen mit Powershell

Leider bietet das Powershell AD-Modul keine Möglichkeit, auf das Vorhandensein einer Organizational Unit zu testen. Diese Funktion lässt sich aber einfach nachrüsten. 

Grundsätzlich kann man die Existenz einer OU testen, indem man einfach das Cmdlet Get-OrganizationalUnit verwendet. Prüft man die Abfrage in einer IF-Bedingung, wird der Scriptblock des IF ausgeführt, wenn die OU existiert. Das Ganze hat allerdings einen Haken, denn Get-ADOrganizationalUnit bricht die Skriptverarbeitung mit einem unbehandelten Fehler ab, wenn die OU nicht existiert.

If ( Get-ADOrganizationalUnit -Identity "OU=test,DC=Netz-Weise,DC=DE" ) { $true }
get-adorganizationalUnit : Directory object not found

Dieses Verhalten kann man sich zunutze machen, indem man die Ausführung des Get-ADOrganizationalUnit mit Try-Catch ausführt. Wird ein unbehandelter Fehler ausgeführt, wird die Catch-Block aufgerufen und ausgeführt. In diesem muß man jetzt nur noch einen $False zurück liefern. 

function Test-ADOrganizationalUnit

{

  <#

      .SYNOPSIS

      Test Existance of an Organizational Unit and Returns True of False.

      .DESCRIPTION

      The Function is testing an OU-Path. If the OU exists, the function returns $true, else $false.

      It can be used inside an IF-Statement.

      .EXAMPLE

      Test-ADOrganizationalUnit -OU "OU=test,DC=Netz-Weise,DC=DE"

      Tests the given OU-path and returns true, if the OU exists, else false.

      .LINK

      https://www.netz-weise-it.training/weisheiten/tipps/item/381-die-existenz-einer-ou-testen-mit-powershell.html

      The first link is opened by Get-Help -Online Test-ADOrganizationalUnit

      .INPUTS

      List of input types that are accepted by this function.

      .OUTPUTS

      List of output types produced by this function.

  #>

  [CmdletBinding()]

  param(

    [ValidateNotNullOrEmpty()]

    $OU

  )

  Try

  {

    IfGet-ADOrganizationalUnit -Identity $OU )

    {

      $true

    }

  }

  Catch

  {

    $false

  }

 

Der Aufruf der Funktion sieht dann so aus: 

Test-ADOrganizationalUnit -OU "OU=test,DC=Netz-Weise,DC=DE"


 2686,    29  Nov  2016 ,   Tipp
Holger Voges

  E-Mail Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!

Holger Voges ist Inhaber der Firma Netz-Weise IT-Training und seit 1999 als Trainer und Consultant tätig. Als Allrounder in den Bereichen Windows Server, Active Directory, SQL Server, Hyper-V und Windows PowerShell, hat er in der Vergangenheit zahlreiche Einsätze als Consultant in namenhaften Firmen absolviert und so neben der Theorie auch umfangreiche praktische Erfahrungen gesammelt.

 

Netz-Weise

Das Haupt-Tätigkeitsfeld von Netz-Weise sind Schulungen für Profis. Bei uns bekommen Sie das Programm für den fortgeschrittenen Praktiker, der die Tiefen des Systems ausloten möchte genauso wie Standard-Schulungen.

So erreichen Sie uns:

Netz-Weise
IT-Training und Beratung
Freundallee 13a
30173 Hannover
 
Tel: (0511) 165 925-0
Fax: (0511) 165 925-99
email: info(at)netz-weise.de
 

Newsletter bestellen

Das Wichtigste kompakt ins E-Mailfach!