none
Powershell Progressbar RRS feed

  • Frage

  • 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 *
    
    
    }

    Dienstag, 17. Juni 2014 06:30