locked
Lokale Gruppen auslesen und ausgabe in csv RRS feed

  • Frage

  • Hallo Zusammen,

    Da ich erst gerade super hier beraten worden bin komme ich gleich mit einem weiteren problem das ich habe.  Eventuell wird die frage als sehr einfach empfunden, habe auch erst seit 2wochen mit PS beschäftigt und daher ist noch alles recht neuland.

    Ziel meines Scripts soll sein alle User und Gruppen mitglieder einer/mehreren lokalen Gruppe herauszulesen und mir dann in ein csv exportiert. Ich habe einige Scripts hier und da gefunden jedoch meist das nur immer eine Gruppe herausgelesen wird. Da ich aber eine Liste habe mit über 100 Gruppen die er auslesen soll will ich nicht jedesmal die Gruppe angeben sondern er soll dies von einem existierenden File entnehmen.

    $csv = Get-Content ".\group.csv" 
    #$group=$_
    
    
    # Specify the local group.
    $strGroup = $csv
    
    # Retrieve Distinguished Name of current domain.
    $Domain = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
    $Root = $Domain.GetDirectoryEntry()
    $Base = ($Root.distinguishedName)
    
    
    
    # Specify the computer.
    $strComputer = "Server"
    "Computer: $strComputer"
    $result = $csv | foreach-object {
    # Bind to the group object with the WinNT provider.
    $Group = [ADSI]"WinNT://$strComputer/$strGroup,group"
    "Group: $strGroup"
    }
    
    EnumLocalGroup $Group | set-content .\groupandmem.csv

    Nun ist das problem sobald mein .\group.csv mehr als eine Gruppe hat gibt er gar nix aus sondern eine fehlermeldung:

    
    Exception calling "Invoke" with "2" argument(s): "The group name could not be found.
    

    und der Befehl:

    EnumLocalGroup $Group | set-content .\groupandmem.csv 

    funktioniert auch nicht, wenn ich | set-content .\groupandmem.csv entferne gibt er mir alle Informationen aus aber er schreibt sie nicht in das csv, dies bleibt leer.

    Danke schon mal für eure tolle unterstützung.

    Gruss

    Dienstag, 19. November 2013 14:45

Antworten

  • Hallo Psyclos!

    Dein Problem ist, das du nicht verstehst, dass PowerShell mit Objekten Arbeitet!

    Bitte mach mal meinen PowerShell CSV Workshop, dann wird dir hoffentlich einiges klarer!

    http://www.admin-source.de/BlogDeu/963/import-csv-workshop


    Meine PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
    Mein deutscher PowerShell Blog
    Mein 21 Teiliger PowerShell Video Grundlehrgang
    Deutsche PowerShell Videos auf Youtube
    Folge mir auf:
    Twitter | Facebook | Google+ | Deutsches PowerShell Forum (TechNet)

    Dienstag, 19. November 2013 14:54
  • function Get-LocalGroupMembers() {
      param ([string]$groupName = $(throw "Need a name") )
      $lines = net localgroup $groupName
      $found = $false
      for ($i = 0; $i -lt $lines.Length; $i++ ) {
        if ( $found ) {
          if ( -not $lines[$i].StartsWith("The command completed")) {
            $lines[$i]
          }
        } elseif ( $lines[$i] -match "^----" ) {
          $found = $true;
        }
      }
    }

    So funktioniert das.

    Als Parameter kannst du die Gruppe angeben die du auslesen möchtest.

    Wegen der CSV Ausgabe guck dir bitte Peter's Workshop an ;-)

    Aber Grundsätzlich hat Peter recht, ich bin genauso an das Thema Powershell rn gegangen wie du, aber lernen zu verstehen was dort abläuft und wie es funktioniert lerne ich jetzt aus einem richtig guten Buch ;-)

    http://www.amazon.de/Scripting-mit-Windows-PowerShell-Skript-Programmierung/dp/3866456875/ref=sr_1_1?ie=UTF8&qid=1384935228&sr=8-1&keywords=powershell



    • Bearbeitet Geo_Uma Mittwoch, 20. November 2013 09:39
    • Als Antwort markiert Alex Pitulice Freitag, 22. November 2013 08:34
    Mittwoch, 20. November 2013 08:14

Alle Antworten

  • Hallo Psyclos!

    Dein Problem ist, das du nicht verstehst, dass PowerShell mit Objekten Arbeitet!

    Bitte mach mal meinen PowerShell CSV Workshop, dann wird dir hoffentlich einiges klarer!

    http://www.admin-source.de/BlogDeu/963/import-csv-workshop


    Meine PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
    Mein deutscher PowerShell Blog
    Mein 21 Teiliger PowerShell Video Grundlehrgang
    Deutsche PowerShell Videos auf Youtube
    Folge mir auf:
    Twitter | Facebook | Google+ | Deutsches PowerShell Forum (TechNet)

    Dienstag, 19. November 2013 14:54
  • function Get-LocalGroupMembers() {
      param ([string]$groupName = $(throw "Need a name") )
      $lines = net localgroup $groupName
      $found = $false
      for ($i = 0; $i -lt $lines.Length; $i++ ) {
        if ( $found ) {
          if ( -not $lines[$i].StartsWith("The command completed")) {
            $lines[$i]
          }
        } elseif ( $lines[$i] -match "^----" ) {
          $found = $true;
        }
      }
    }

    So funktioniert das.

    Als Parameter kannst du die Gruppe angeben die du auslesen möchtest.

    Wegen der CSV Ausgabe guck dir bitte Peter's Workshop an ;-)

    Aber Grundsätzlich hat Peter recht, ich bin genauso an das Thema Powershell rn gegangen wie du, aber lernen zu verstehen was dort abläuft und wie es funktioniert lerne ich jetzt aus einem richtig guten Buch ;-)

    http://www.amazon.de/Scripting-mit-Windows-PowerShell-Skript-Programmierung/dp/3866456875/ref=sr_1_1?ie=UTF8&qid=1384935228&sr=8-1&keywords=powershell



    • Bearbeitet Geo_Uma Mittwoch, 20. November 2013 09:39
    • Als Antwort markiert Alex Pitulice Freitag, 22. November 2013 08:34
    Mittwoch, 20. November 2013 08:14
  • also bei mir wirft dein Script einen fehler, weil schon die syntax für "net localgroup" falsch ist...
    Freitag, 4. November 2016 10:00
  • Jeffrey, der Thread ist drei Jahre alt, der OP wird dir nicht mehr antworten. :) Bitte keine alten Threads ausgraben.

    Grüe, Denniver


    Blog: http://bytecookie.wordpress.com

    Neu: Powershell Code Manager v5 ! Link
    (Schneller, besser + komfortabler scripten.)

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.



    Freitag, 4. November 2016 14:17
    Moderator
  • falls es nicht unbedingt powershell sein muss, nimm CMD - whoami /?


    Chris

    Sonntag, 13. November 2016 18:35
  • Ernsthaft jetzt?

     


    Blog: http://bytecookie.wordpress.com

    Neu: Powershell Code Manager v5 ! Link
    (Schneller, besser + komfortabler scripten.)

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.



    Montag, 14. November 2016 03:52
    Moderator