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

Geschrieben

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

Geschrieben (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 von PowerShellAdmin
Geschrieben

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

Geschrieben

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

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

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...