none
Loop mit Textzeile als variable RRS feed

  • Frage

  • Hallo Leute,

    ich bin newbie mit Powershell und möchte alle mailboxes von disabled users aus dem exchange exportieren mittels Powershell.

    Ich habe eine text datei wo die liste von alle zu entfernende mailboxes schon bereit ist.

    Jetzt bräuchte ich mit Powershell diese Datei lesen, Zeile nach Zeile, und jedes mal eine cmdlet ausführen, von top nach unten. Ich bin da stecken geblieben.

    Ich wäre sehr dankbar für eure Hilfe.

    Beispiel:

     $inputfile = Get-Content "C:\PSScripts\users.txt"
    Export-Mailbox -Identity $inputfile -PSTFolderPath '\\server1\Backup\Mailboxes\' -Confirm:$false


    Cheers, Ballangan
    Samstag, 19. Juni 2010 05:47

Antworten

  • Hallo zusammen,

     

    viele dank für die Empfehlungen.

    Ich habe dann selbst ein bisschen recherchiert, viel gelesen :-) und wie folgt gelöst:

    $a = Get-Content c:\psscripts\users-to-export.txt
    $Limit = $a.length -1
    $path = "c:\psscripts"
    Write-host "Will now process a total of $limit users."
    for ($Position=0; $Position -le $Limit; $Position++)
    {
    (Get-Content "$path\users-to-export.txt")[$Position..$Position] > $path\target.txt
    Start-Sleep -s 2
    $InputID = Get-Content "$path\target.txt"
    Write-Host "Processing $inputID , $Position of $limit"
    Export-Mailbox -Identity $inputID -PSTFolderPath '\\server\Backup\Mailboxes\' -Confirm:$false
    $inputID | Out-file "$path\log-exported.txt" -append
    Remove-item $path\target.txt
    Write-Host "Done $inputID"
    }
    Write-Host "Finished."
    Write-Host "Completed."
    "Completed." | Out-file "$path\log-exported.txt" -append
    Get-Date | Out-file "$path\log-exported.txt" -append
    c:\psscripts\Log-exported.txt

    Es ist sicherlich verbesserungswurdig.. aber es funktioniert, und ich exportiere seit 2 tage GBs von daten aus dem Exchange.

    Mittlerweile habe ich auch ein Buch über Powershell bestellt :) . möchte gerne ps lernen. danke nochmals


    Cheers, Ballangan
    Donnerstag, 24. Juni 2010 07:57

Alle Antworten

  • Hallo Ballagan,

    Get-Content "C:\PSScripts\users.txt" | Foreach-Object {Export-Mailbox -Identity $_.ToString() -PSTFolderPath '\\server1\Backup\Mailboxes\' -Confirm:$false}

    klappt es so?

    Gruß,
    Andrei

    Montag, 21. Juni 2010 12:13
    Moderator
  • Hallo Ballangan,

    ich würde das so machen ...

    -------------------------------------------

    $input = Import-Csv xxx.txt

    $Input | foreach-object { Export-Mailbox -idendity $_.samid PSTFolderPath '\\server1\Backup\Mailboxes\' -Confirm:$false }

    -------------------------------------------

    wobei die Übergabe von "samid" im Input-File den Usernamen kennzeichnet.

     

    Gruß

    Karsten


    Regards, Karsten (Carpe-diem)
    Mittwoch, 23. Juni 2010 22:07
  • Hallo zusammen,

     

    viele dank für die Empfehlungen.

    Ich habe dann selbst ein bisschen recherchiert, viel gelesen :-) und wie folgt gelöst:

    $a = Get-Content c:\psscripts\users-to-export.txt
    $Limit = $a.length -1
    $path = "c:\psscripts"
    Write-host "Will now process a total of $limit users."
    for ($Position=0; $Position -le $Limit; $Position++)
    {
    (Get-Content "$path\users-to-export.txt")[$Position..$Position] > $path\target.txt
    Start-Sleep -s 2
    $InputID = Get-Content "$path\target.txt"
    Write-Host "Processing $inputID , $Position of $limit"
    Export-Mailbox -Identity $inputID -PSTFolderPath '\\server\Backup\Mailboxes\' -Confirm:$false
    $inputID | Out-file "$path\log-exported.txt" -append
    Remove-item $path\target.txt
    Write-Host "Done $inputID"
    }
    Write-Host "Finished."
    Write-Host "Completed."
    "Completed." | Out-file "$path\log-exported.txt" -append
    Get-Date | Out-file "$path\log-exported.txt" -append
    c:\psscripts\Log-exported.txt

    Es ist sicherlich verbesserungswurdig.. aber es funktioniert, und ich exportiere seit 2 tage GBs von daten aus dem Exchange.

    Mittlerweile habe ich auch ein Buch über Powershell bestellt :) . möchte gerne ps lernen. danke nochmals


    Cheers, Ballangan
    Donnerstag, 24. Juni 2010 07:57