none
get-aduser RRS feed

  • Frage

  • Hallo,

    Code:

    $selectlist = "name,enabled";
    $name = "jd123456";
    $filter = "samaccountname";
    $userinfos = get-aduser -filter {$filter -like $name } -properties * | select $selectlist;
    $userinfos;


    Resultat:

    name,enabled
    ------------
    {}

    Folgender Code liefert die gewünschten Ergebnisse:

    $selectlist = "name","enabled";
    $name = "jd123456";
    $filter = "samaccountname";
    $userinfos = get-aduser -filter {$filter -like $name } -properties * | select $selectlist;
    $userinfos;

    Resultat:

    name                                                               enabled
    ----                                                                    -------
    Doe John                                                         True


    Da ich aber den Wert für $selectlist aus einer Datei beziehen will (get-content), hilft mir das nicht viel. Hat jemand eine Idee, wie ich aus einem Powershell script heraus mehrere Attribute selektieren kann ohne mehrere Befehle auszuführen?

    Vielen Dank im voraus...

    /John

    Montag, 12. November 2012 14:54

Antworten

  • Deleted
    • Als Antwort markiert Pick Aname Dienstag, 13. November 2012 08:40
    Montag, 12. November 2012 15:12

Alle Antworten


  • Da ich aber den Wert für $selectlist aus einer Datei beziehen will (get-content), hilft mir das nicht viel.

    Get-Content liest Text aus einer Datei Zeilenweise.
    Muss es unbedingt eine Text Datei sein? Dann landest du immer bei Text (String) Verarbeitung oder beim Zeilen zählen!
    Gerade das versucht die PowerShell mit dem Objekt basierten Ansatz zu vermeiden, da es sehr fehleranfällig ist!
    Kannst du zum einlesen nicht eine CSV Datei nehmen? Die besteht auch aus Text und wird beim Einlesen in Objekte verwandelt da die Daten sauber in einer "Tabelle" stehen.

    CSV Dateien lassen sich leicht mit Excel erstellen und verwalten.


    Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
    German ? Come to German PowerShell Forum!


    Montag, 12. November 2012 15:14
  • @Matthias

    Woher weißt du denn wie die Text-Datei von Pick Aname aufgebaut ist?
    Das hat er nämlich nicht verraten ;-)


    Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
    German ? Come to German PowerShell Forum!

    Montag, 12. November 2012 15:18
  • Wieder mal ein hübsches Beispiel, das unzureichende Information nur heiteres Rätselraten mit 'ner Trefferquote von maximal 50% verursacht.  :)

    Falls Matthias` Lösung nicht ausreicht, poste bitte mal einen Auszug der Datei und beschreibe was du genau machen willst. Beispielsweise, warum die Attribute überhaupt in einer Datei angeliefert werden. Ich würde wetten, da gibts ne effizientere Lösung.

    Für die Zukunft lies bitte mal diesen Post.
     
    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".

    Montag, 12. November 2012 16:01
    Moderator
  • Ich habe die config datei, die in die Variable $selectlist mit get-content eingelesen wird, in eine csv datei konvertiert und dass script nochmal laufen lassen. Leider habe ich dann auch nur folgendes Resultat erhalten. Die Datei besteht eigentlich nur aus einer Zeile - nur um zu definieren, welche Attribute selektiert werden sollen. Auch wird die Datei nicht manuell bearbeitet. Trotzdem würde mich interessieren, warum es mit der csv datei nicht funktioniert hat. Hätte ich die csv datei eher importieren als mit get-content einlesen sollen?   

    name,enabled
    ------------
    {}

    danke für die tipps

    edit: get-content -> array of strings

    • Bearbeitet Pick Aname Dienstag, 13. November 2012 10:14
    Dienstag, 13. November 2012 08:54
  • >Hätte ich die csv datei eher importieren als mit get-content einlesen

    Jain. Import-CSV ist grundsätzlich dafür da CSV-Dateien einzulesen. Schau dir mal die Beispiele im Link an um zu verstehen wie die Daten dann vorliegen.

    Get-Content hingegen, liest deine Datei in ein Array, mit je einer kompletten Textzeile als ein Eintrag. 

    Falls du also eine echte CSV (als Text gespeicherte Tabelle(!)) vorliegen hast, ist import-csv die beste Wahl. Falls deine CSV aber nur aus einer Zeile  durch Komma getrennter Werte besteht, ist es einfacher, diese Zeile mit get-content zu lesen und mit split(",") in ein Array zu wandeln.

     

    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".



    Dienstag, 13. November 2012 11:30
    Moderator