Hallo,
ich möchte gerne in meinem Script ein Fortschirttsbalken haben und was am ende des Vorgangs ausgibt :"Import durchgeführt".
Script:
#AD-Module importieren Import-Module ActiveDirectory [System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | Out-Null $dialog = New-Object System.Windows.Forms.OpenFileDialog $dialog = New-Object System.Windows.Forms.OpenFileDialog $dialog.DefaultExt = '.csv' $dialog.Filter = 'CSV Datei|*.csv|All Files|*.*' $dialog.FilterIndex = 0 $dialog.InitialDirectory = $home $dialog.Multiselect = $false $dialog.RestoreDirectory = $true $dialog.Title = "Select a csv file" $dialog.ValidateNames = $true $dialog.ShowDialog() $dialog.FileName $script:ErrorActionPreference = "silentlyContinue" #Eingabeaufforderung #$Pfad = Read-Host "Bitte Pfad zur .CSV Datei angeben #Beispiel: C:\users\Administrator\desktop\powershell\Export_cherwell_bearbeitet.csv" #CSV-Datei importieren $DatenSaetze = Import-Csv $dialog.FileName -UseCulture -Encoding UTF8 #Jeden Datensatz der CSV-Datei durchlaufen ForEach ($DatenSatz in $DatenSaetze){ # Set-AdUser-Aufruf mit dem SamAccountName des derzeitigen CSV-Eintrags initieren. $Kommando = "Set-AdUser $($Datensatz.samAccountName)" # Für jeden CSV-Eintrag die entsprechenden Attribute durchlaufen ForEach ($Attribut in (Get-Member -InputObject $DatenSatz -MemberType NoteProperty)){ $Wert = $DatenSatz.($Attribut.Name) #Überprüfen, ob Wert nicht leer ist und nicht den SamAccountName enthält if ($Wert -and ($Wert.Name -ne 'samAccountName')){ # Zuvor initierten Aufruf von Set-AdUser um entsprechende Werte erweitern $Kommando+= " -$($Attribut.Name) '$Wert'" } } #Inhalt von $Kommando mittels Invoke-Expression ausführen Invoke-Expression $Kommando Write-Progress -activity “Import wird ausgeführt..” -status “Status: ” -PercentComplete * }