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

Try Catch funktioniert nicht richtig

$
0
0

Hallo,

Ich habe ein problem mit Try Catch es macht mir nie das was in Catch steht nur was in try steht (ich habe natürlich auch fehler eingebaut sodass eigentlich das kommen sollte was in Catch steht).

Was muss ich machen das es richtig funktioniert.

Lg 

Script ohne Fehler:

try
{
# deklaration (bekannt machen) von einer Funktion
Function NEWADUSER 
    {
    param
    (
        [string]$Vorname,
        [string]$Nachname,
        [string]$Gruppe,
        [string]$Password,
        [string]$Email,
        $PasswordNeverExpires,
        $CannotChangePassword

    )


    $name = $Vorname + "." + $Nachname
    $displayname = $Vorname + " " + $Nachname
    $OUPath = "OU=Konten,OU=Test,DC=test,DC=local"
    $kuerzel = $Vorname[0] + $Nachname[0]
    $ConverToSecureString = $Password | ConvertTo-SecureString -AsPlainText -Force

    

    New-Aduser $name `
    -AccountPassword $ConverToSecureString `
    -DisplayName "$dispyname" `
    -path $OUPath `
    -EmailAddress $Email `
    -Initials "$kuerzel" `
    -givenname "$vorname"`
    -surname "$nachname"`
    -UserPrincipalName ($name +"@test.local")


    

            #Hier werden die einzelnen Flags definiert ob die Flags true oder fals sind steht in der CSV Datei.   
            Set-ADAccountControl -Identity $name -PasswordNeverExpires $PasswordNeverExpires
            Set-ADAccountControl -Identity $name -CannotChangePassword $CannotChangePassword
            Set-ADAccountControl -Identity $name -Enabled $true

             #Hier wird überprüft ob die Gruppe die in der CSV Datei steht schon vorhand ist oder nicht,
            #Wenn Sie nicht vorhand ist wird die Gruppe erstellt.
            $groupcheck = Get-ADGroup -LDAPFilter "(sAMAccountName=$Gruppe)"


                    If ($groupcheck -eq $null)
                    {
                    New-ADGroup -Name "$Gruppe" -GroupCategory Security -GroupScope Global -DisplayName "$Gruppe" -Path "OU=Groups,OU=Test,DC=test,DC=local" 
                    }
                    else
                    {
                    #Hier wird der Benutzer der Gruppe hinzugefügt.
                    Add-ADGroupMember -Identity "$Gruppe" -Members $name
                    }


            $Antwort1 = New-Object PSObject
            $Antwort1 | Add-Member -MemberType NoteProperty -Name Name -value $Vorname
            $Antwort1 | Add-Member -MemberType NoteProperty -Name Nachname -value $Nachname
            $Antwort1 | Add-Member -MemberType NoteProperty -Name Status -value "Der Benutzer wurde erfolgreich erstellt."
	        # ausgabe des Ergebniss
	        # Write-Output $Antwort1 # oder
	        # return $Antwort1 # oder
	        $Antwort1

           
    }
    $erfolg = "erfolgreich"
    write-host "erfolgreich"
    exit 0
}
catch
{
    remove-ADUser $name -Confirm:$false
    $keinerfolg = "Benutzer konnte nicht angelegt werden"
    Write-Host "Der Benutzer $name konnte nicht angelegt werden, weil: " $Error[0]
    exit 1
}


finally{
        
# deklaration (bekannt machen) von einer Funktion
Function CreateHTML {


    # erzeugen einer leeren ArrayList
	$AntwortListe = [System.Collections.ArrayList]@()
    $CSVDaten = Import-Csv -Path "C:\scripts\csv\mitarbeiter.csv" -Delimiter ";" | % {[Boolean]$_.PasswordNeverExpires = [System.Convert]::ToBoolean($_.PasswordNeverExpires); $_.CannotChangePassword = [boolean]::Parse($_.CannotChangePassword);$_ }

    foreach($Benutzer in $CSVDaten)
    { 
        		 
		 # nutzen der nun bekannte Funktion 
		 $Antwort = NEWADUSER -Vorname $Benutzer.Vorname -Nachname $Benutzer.Name -Gruppe $Benutzer.Gruppe -Password $Benutzer.Password -PasswordNeverExpires $Benutzer.PasswordNeverExpires -CannotChangePassword $Benutzer.CannotChangePassword
		 
		 # zufügen des ergebnisses zu der ArrayList
		 $Antwortliste.add($Antwort)
    }
     $AntwortListe | ConvertTo-Html | Out-File "C:\scripts\test.html"
}

# nutzen der nun bekannte Funktion
CreateHTML 'C:\scripts\test.html'

& 'C:\Program Files (x86)\Internet Explorer\iexplore.exe' 'C:\scripts\test.html'
}

csv:

Vorname;Name;Gruppe;Password;Email;CannotChangePassword;PasswordNeverExpires

test4;nachname;keineahnung;Abcd1234abcd;test.nachname@gmx.com;false;false



Viewing all articles
Browse latest Browse all 2314


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