Jump to content

Powershell Export anders wie die Anzeige


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar

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 von PowerShellAdmin
Link zu diesem Kommentar

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...