none
Ausgaben von PowerShell Scripts in CSV Dateien ausgeben RRS feed

  • Frage

  • Hallo zusammen

    Ich möchte die beiden Ausgaben (werde momentan in der PowerShell angezeigt) des untenstehenden PowerShell Scriptes in zwei CSV Dateien speichern.

    Wie verwende ich den Befehl "Out-File" hier richtig?

    Danke im Voraus für die Hilfe!

    # to get Get-ADGroup etc...
    # Add-WindowsFeature RSAT-AD-PowerShell
    $allGroups = Get-Content groups.csv
    foreach ($sourceGroup in $allGroups)
    {
        $adGroupName = $sourceGroup -replace 'PROD\\', ''
       
        try
        {
            $sourceADGroup = Get-ADGroup $adGroupName -ErrorAction SilentlyContinue
            $destADGroup = Get-ADGroup -server axusr.net $adGroupName -ErrorAction SilentlyContinue
           
            $sourceMembers = Get-ADGroupMember $sourceADGroup
            $destMembers = Get-ADGroupMember -Server axusr.net $destADGroup
            $missingInSource = $destMembers.samaccountname | ? { $sourceMembers.samaccountname -notcontains $_ }
            $missingInDest = $sourceMembers.samaccountname | ? { $destMembers.samaccountname -notcontains $_ }
           
            # exclude service accounts
            $missingInDest = $missingInDest | ? { $_ -notmatch '^SVC[-_].*' }
            # exclude d-accounts (bad check)
            $missingInDest = $missingInDest | ? { $_ -notmatch '^SAPService.*' }
            <#
            # exclude dt-accounts
            $missingInDest = $missingInDest | ? { $_ -notmatch '^DT.*' }
            # exclude d-accounts (bad check)
            $missingInDest = $missingInDest | ? { $_ -notmatch '^D.*' }
            #>
            if ($missingInDest.Count -gt 0 -or $missingInSource.Count -gt 0)
            {
                "---------------------"
                $adGroupName + ": " + $sourceMembers.Count + "/" + $destMembers.Count
                if ($missingInDest.Count -gt 0)
                {
                    "missing in dest:"
                    $missingInDest
                }
                if ($missingInSource.Count -gt 0)
                {
                    "missing in source:"
                    $missingInSource
                }
            }
        }
        catch { Write-Warning "ad group '$adGroupName' does not exist in AXUSR" }

    }


    • Bearbeitet Tomcat456 Freitag, 21. Juni 2019 12:12 Update
    Freitag, 21. Juni 2019 12:08

Antworten

  • Wie verwende ich den Befehl "Out-File" hier richtig?

    Gar nicht! ;-)  ... Powershell kann super mit strukturierten Daten umgehen ... Du soltlest also, wenn Du mit CSV-Dateien arbeitest, die dafür existierenden cmdlets benutzen - sowohl für den Import von CSV-Daten - Import-Csv, wie für den Export von strukturierten Daten - Export-Csv. Schau Dir bitte die Hilfe für beide cmdlets inklusive der Beispiele an, um zu lernen, wie man sie benutzt.

    Wenn Du hier im Forum Code postest, solltest Du den auch als Code formatieren. Das vermeidet ungewollte Zeilenumbrüche und "Interpretationsversuche" der Forensoftware  und macht ihn leichter lesbar und einfacher zu kopieren usw.  ;-)


    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''

    Freitag, 21. Juni 2019 13:16

Alle Antworten