Coloneltw 10 Geschrieben 27. Oktober 2011 Melden Teilen Geschrieben 27. Oktober 2011 Hallo an alle, ich bin gerade dabei meine Scripte, welche mit ADFind arbeiten durch Powershell abzulösen. Die Ausgaben sollten ähnlich sein. Ist auch kein Problem bis auf eine winzige Sache. Bei einem Attribut steht bei der normalen Ausgabe ein Wert, in der CSV aber taucht "Microsoft.ActiveDirectory.Management.ADPropertyValueCollection" sowas als Wert auf. Es geht um dieses Attribut: securecomputingCom2000-SafeWord-UserID Bei einigen Usern sollte da ein 7 stelliger Wert stehen, bei anderen nichts. Sowie ich einen Export in eine CSV Datei mache steht da nur Müll drin. Alle anderen Werte sind wie gefordert richtig. Ist euch sowas schonmal untergekommen? Anbei die Abfrage Get-ADUser -filter * -Properties Samaccountname, Givenname, Surname, Company, Mail, Description, msNPAllowDialin, securecomputingCom2000-SafeWord-UserID, LastLogondate | select Samaccountname, Givenname, Surname, Company, Mail, Description, msNPAllowDialin, securecomputingCom2000-SafeWord-UserID, LastLogondate | export-csv \\servername\freigabe\nutzer.csv -Encoding utf8 -notype Danke schön Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 27. Oktober 2011 Melden Teilen Geschrieben 27. Oktober 2011 Ich benutze export-csv nie und baue mir meinen export mit out-file selbst. Daher kann ich nur sagen, wie man es anders macht. Zitieren Link zu diesem Kommentar
PowerShellAdmin 169 Geschrieben 27. Oktober 2011 Melden Teilen Geschrieben 27. Oktober 2011 (bearbeitet) Hallo, 1. Test das Attribut mal bitte in eckigen Klammern. Dein Aufruf sollte so aussehen: Get-ADUser -filter * -Properties Samaccountname, Givenname, Surname, Company, Mail, Description, msNPAllowDialin, [securecomputingCom2000-SafeWord-UserID], LastLogondate | select Samaccountname, Givenname, Surname, Company, Mail, Description, msNPAllowDialin, [securecomputingCom2000-SafeWord-UserID], LastLogondate | export-csv \\servername\freigabe\nutzer.csv -Encoding utf8 -notype 2. Test mal bitte folgenden Aufruf $sam="DEIN SAMMACCOUNTNAME" $scc2000=(((([directoryservices.directorysearcher] "(samaccountname=$sam").findall())[0].properties.getenumerator() | ? { $_.name -eq "securecomputingCom2000-SafeWord-UserID"}).value[0]).tostring() $scc2000 3. Sollte die Ausgabe in der Console korrekt sein, die Daten nur nicht erfolgreich exportiert werden, dann liegt ein Problem mit dem Datentyp vor. Deine Pipe mit der Anordnung durch das Select ist auch richtig, ein |FT geht nicht in Verbindung mit einer CSV (nur zu Konsolenausgabe). bearbeitet 27. Oktober 2011 von PowerShellAdmin Zitieren Link zu diesem Kommentar
Coloneltw 10 Geschrieben 27. Oktober 2011 Autor Melden Teilen Geschrieben 27. Oktober 2011 Hallo FunkyPunky1985 Hallo,1. Test das Attribut mal bitte in eckigen Klammern. Dein Aufruf sollte so aussehen: Get-ADUser -filter * -Properties Samaccountname, Givenname, Surname, Company, Mail, Description, msNPAllowDialin, [securecomputingCom2000-SafeWord-UserID], LastLogondate | select Samaccountname, Givenname, Surname, Company, Mail, Description, msNPAllowDialin, [securecomputingCom2000-SafeWord-UserID], LastLogondate | export-csv \\servername\freigabe\nutzer.csv -Encoding utf8 -notype Das mit den [] funktioniert leider gar nicht. Get-ADUser : Die Attributsyntax, die dem Verzeichnisdienst übergeben wurde, ist ungültig Parametername: [securecomputingCom2000-SafeWord-UserID] Bei Zeile:1 Zeichen:11 + Get-ADUser <<<< -filter * -Properties Samaccountname, Givenname, Surname, Company, Mail, Description, msNPAllowDialin, [securecomputingCom2000-SafeWord-UserID], LastLogondate | select Samaccountname, Givenname, Surname, Co mpany, Mail, Description, msNPAllowDialin, [securecomputingCom2000-SafeWord-UserID], LastLogondate | export-csv \\mmwsmart\aspera\app\uploads\prod\data_exchange\user_admin\in\nutzerps.csv -Encoding utf8 -notype + CategoryInfo : InvalidArgument: (:) [Get-ADUser], ArgumentException + FullyQualifiedErrorId : Die Attributsyntax, die dem Verzeichnisdienst übergeben wurde, ist ungültig Parametername: [securecomputingCom2000-SafeWord-UserID],Microsoft.ActiveDirectory.Management.Commands.GetADUser 2. Test mal bitte folgenden Aufruf $sam="DEIN SAMMACCOUNTNAME" $scc2000=(((([directoryservices.directorysearcher] "(samaccountname=$sam").findall())[0].properties.getenumerator() | ? { $_.name -eq "securecomputingCom2000-SafeWord-UserID"}).value[0]).tostring() $scc2000 3. Sollte die Ausgabe in der Console korrekt sein, die Daten nur nicht erfolgreich exportiert werden, dann liegt ein Problem mit dem Datentyp vor. Deine Pipe mit der Anordnung durch das Select ist auch richtig, ein |FT geht nicht in Verbindung mit einer CSV (nur zu Konsolenausgabe). Das leider auch nicht Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen. Bei Zeile:2 Zeichen:114 + $scc2000=(((([directoryservices.directorysearcher] "(samaccountname=$sam").findall())[0].properties.getenumerator <<<< () | ?.{ $_.name -eq "securecomputingCom2000-SafeWord-UserID"}).value[0]).tostring() + CategoryInfo : InvalidOperation: (getenumerator:String) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull Vielen Dank aber schonmal Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 27. Oktober 2011 Melden Teilen Geschrieben 27. Oktober 2011 Hallo, Das Attribut ist offenbar ein Multivalueattribut, d.h. ein Array du musst irgendwie versuchen dieses Attribut anders als die SinglevalueAttribute zu behandeln, Ansatzweise: foreach($value in $Attributarray){ $Gesamtvalue+=$value+"," } $GesamtValue "Othertelephone" oder "memberof" sind ebenfalls multivalue. Probier die mal aus. blub Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 2. November 2011 Melden Teilen Geschrieben 2. November 2011 Versuch mal beim Select die Option -Expandproperty. Get-ADUser | Select -ExpandProperty memberof Damit werden MultiValueVariablen "enpackt" Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.