Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

Formular Benutzer anlegen/ändern

$
0
0

Ich schreibe gerade an einem PowerShell Script um Benutzer Daten anzulegen und ändern zu können.

Das Anzeigen vorhandener Benutzer klappt auch super, nur wenn der Benutzer in der AD nicht gefunden wurde und in eine andere Funktion springt habe ich ein Problem.

Wie gehe ich vor:

Es wird ein Formular aufgerufen:

Hier gebe ich den Anmeldenamen ein. Beim Verlassen des Feldes wird der Benutzer in der AD gesucht.

$handler_TB_Anmeldename_Leave= 
{
Try
  { 
   #Fehler abfangen, wenn der Anmeldename nicht gefunden wird. 
   $Script:GetADUserResult = Get-ADUser -Identity $TB_Anmeldename.Text  -Properties Title,Initials,telephoneNumber,otherTelephone,mobile,otherMobile,mail,description,physicalDeliveryOfficeName,EmployeeID,EmployeeNumber,extensionAttribute1,msTSProfilePath,distinguishedName -errorvariable myerrorvariable  
  }
  Catch [Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException]
  {
   # Bei nicht gefundenem Anmeldenamen wird zur Eingabe gesprungen
   Write-Host "Benutzer wird angelegt"
   $SetADUser = @()
   Set-WLUserEingabe
   return;
  }
  Catch 
  {
   Write-Host "Es ist ein unbekannter Fehler aufgetreten!"+$Error[0]
   break
  }
  Finally
  {
   Write-Host "Finally und dann nix"
  }
  Write-Host "Benutzer anzeigen"
  # Wenn der Benutzer vorhanden ist und kein Fehler aufgetreten ist, werden die Attribute angezeigt.
  If (!$myerrorvariable)
  {
   Get-WLUserDaten        
  }
}

Sollte der Benutzer vorhanden sein, dann werden die Attribute, soweit in der AD gepflegt, angezeigt.

Ist der Benutzer nicht vorhanden, dann wird die Funktion Set-WLUserEingabe gesprungen.

In dieser Funktion sollen die Attribute eingetragen werden, bis ein bestimmtes Ereignis eintritt, z.B. klicken auf einen Button Speichern. Zur Zeit soll die Eingabe solange aktiv bleiben, bis das Feld Kartennummer einen bestimmten Wert hat.

function Set-WLUserEingabe()
{
  $TB_UserPrincipalName.Focus()
  Do 
  {
  $SetADUser.Anmeldename = $TB_Anmeldename.Text
  $TB_UserPrincipalName.Text = $TB_Anmeldename.Text+"@WL.ADS"	
  $SetADUser.UserPrincipalName = $TB_UserPrincipalName.Text
  $SetADUser.Title = $TB_Titel.Text
  $SetADUser.GivenName = $TB_Vorname.Text
  $SetADUser.Surname = $TB_Nachname.Text
  $SetADUser.Initials = $TB_Initalen.Text
  $SetADUser.telephoneNumber = $TB_TelefonNr.Text
  $SetADUser.otherTelephone = $TB_TelefonKurzw.Text
  $SetADUser.mobile = $TB_HandyNr.Text
  $SetADUser.otherMobile = $TB_HandyKruzw.Text
  $TB_EMailAdresse.Text = $TB_Vorname.Text+"."+$TB_Nachname.Text+"@westlotto.com"
  $SetADUser.mail = $TB_EMailAdresse.Text
  $SetADUser.physicalDeliveryOfficeName = $TB_Dienstort.Text
  $SetADUser.description = $TB_Beschreibung.Text
  $SetADUser.EmployeeNumber = $TB_MitarbeiterNr.Text
  $SetADUser.EmployeeID = $TB_Kartennr.Text
  Write-Host $SetADUser.Anmeldename
  }until($TB_Kartennr.Text -eq "Schluss")
}

Leider hängt sich das Script in der Do-Until Schleife auf bzw. das Script wird nicht bedienbar! Weiß einer Rat? Oder wo habe ich einen Denk Fehler?

Gruß

Dirk


Viewing all articles
Browse latest Browse all 2314


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>