Netz-Weise Logo

Weisheiten - der Netz-Weise Blog

Hier finden Sie Tipps und Tricks für vor, während und nach der Schulung.
1 Minuten Lesezeit (291 Worte)

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"

Details von GPO-Backups anzeigen mit Powershell
Freie Laufwerke finden mit Powershell

Ähnliche Beiträge

 

Kommentare

Derzeit gibt es keine Kommentare. Schreibe den ersten Kommentar!
Bereits registriert? Hier einloggen
Sonntag, 19. Mai 2024

Sicherheitscode (Captcha)