Windows Server 2012 R2 powershell NUR Wert ausgeben

.mojo

Fleet Admiral
Registriert
Nov. 2004
Beiträge
13.023
Hi.

Ich versuche die SID eines Users in eine Variable zu schreiben um damit dann weiterarbeiten zu können.

wenn ich
Code:
$SID = Get-ADUser -Identity $username -server $DC | select SID | ft -HideTableHeaders
benutze enthält $SID jedoch eine leerzeile...

Code:
PS C:\Windows> $SID

S-1-5-21-4217432684-2118486541-1595447738-5388

Ich bräuchte die Ausgabe aber so:

Code:
PS C:\Windows> $SID
​S-1-5-21-4217432684-2118486541-1595447738-5388

ansonsten kann ich die Variable nicht in weiteren aufrufen verwenden.


Was muss ich tun um powershell dazu zu bringen mir schlicht und ergreifend LEDIGLICH den WErt auszugeben ohne irgendeinen Firlefanz?
 
Ähm ja, wie auch? Du formatierst es als Tabelle und willst dann einen einzelnen Wert?
 
naja mit ft kriege ich immerhin den header weg.
ohne ft siehts so aus:


Code:
PS C:\Windows> $SID

SID                                           
---                                           
S-1-5-21-4217432684-2118486541-1595447738-5388



und ganz ohne den Driss siehts halt so aus:

Code:
PS C:\Windows> $SID = Get-ADUser -Identity $username -server $DC

PS C:\Windows> $SID.sid


BinaryLength AccountDomainSid                          Value                                         
------------ ----------------                          -----                                         
          28 S-1-5-21-4217432684-2118486541-1595447738 S-1-5-21-4217432684-2118486541-1595447738-5388
 
Zuletzt bearbeitet:
Ja, das ist auch richtig so. Das ist nämlich die Ausgabe. Du bekommst dort höchstwahrscheinlich ein Objekt mit der Property SID zurück. Wenn du nun auf $objekt.SID zugreifst, wirst du nur die SID zurückbekommen - ohne Header.
 
siehe edit oben drüber:

leider nicht. So hätte ich es ja im Gruinde von anfang an gemacht.
Leider sieht es dann so aus:

Code:
PS C:\Windows> $SID = Get-ADUser -Identity $username -server $DC

PS C:\Windows> $SID.sid


BinaryLength AccountDomainSid                          Value                                         
------------ ----------------                          -----                                         
          28 S-1-5-21-4217432684-2118486541-1595447738 S-1-5-21-4217432684-2118486541-1595447738-5388
Ergänzung ()

um es nochmal deutlich zu machen:

aus dem Befehl



Code:
Get-ADUser -Identity $username -server $DC


dessen Ausgabe folgendermaßen aussieht:



Code:
DistinguishedName : CN=Name\, Vorname,OU=Benutzer,OU=A/1,OU=A,OU=Abteilungen,DC=bla,DC=blub,DC=de
Enabled           : True
GivenName         : Name
Name              : Vorname, Name
ObjectClass       : user
ObjectGUID        : eb011edd-75e6-4409-a624-7a7b2ba6992e
SamAccountName    : NameV
SID               : S-1-5-21-4217432684-2118486541-1595447738-5388
Surname           : Name
UserPrincipalName : NameV@bla.blub.de


würde ich gerne nur die SID, also nur die Zeichenfolge beginnend mit S-1-5... in eine Variable schreiben.
WIe?
 
SID ist kein String sondern ein SecurityIdentifier-Object.
Das sollte sein was du willst:
Code:
$SID.SID.ToString()

Beim Verwenden von "select" sollte man immer bedenken, dass das ein Alias für "Select-Object" ist, man also immer ein Objekt zurückbekommt, selbst wenn man nur ein Property selektiert hat.
 
wirelessy schrieb:
gedankt sei dir!
Das haben ich gesucht.


Vielen dank.


TheCadillacMan schrieb:
SID ist kein String sondern ein SecurityIdentifier-Object.
Das sollte sein was du willst:
Code:
$SID.SID.ToString()

Beim Verwenden von "select" sollte man immer bedenken, dass das ein Alias für "Select-Object" ist, man also immer ein Objekt zurückbekommt, selbst wenn man nur ein Property selektiert hat.


auch das tut. Vielen Dank auch dir.
 
manchmal ist es wirklich zum verrückt werden..
 
@ wirelessly:

Öhm...?
https://technet.microsoft.com/en-us/library/ee617241.aspx schrieb:
Return Type
Microsoft.ActiveDirectory.Management.ADUser

Returns one or more user objects.

This cmdlet returns a default set of ADUser property values. To retrieve additional ADUser properties, use the Properties parameter.

To get a list of the default set of properties of an ADUser object, use the following command:
Get-ADUser <user>| Get-Member

To get a list of the most commonly used properties of an ADUser object, use the following command:
Get-ADUser <user> -Properties Extended | Get-Member

To get a list of all the properties of an ADUser object, use the following command:
Get-ADUser <user> -Properties * | Get-Member
Der Verweis auf Get-Member ist hier auch gegeben.
 
Jo, kenn ich @Yuuri.

Ich finds trotzdem nicht immer konsequent umgesetzt, wann du nen Custom Objekt zurückkriegst, oder nen Basisdatentyp.
Entsprechend rechne ich mal mit dem einen, mal dem anderen, und am Ende wars meistens nicht das, was ich erwartet hab :).

Get-Member hilft natürlich, aber wenn ich richtig rate ists mir lieber als wenn ich nachgucken muss.

//e: Oder wenn dann nen Objekt in nem Objekt kommt, wie hier im Beispiel des Threads. "Ich will doch nur die verdammte SID haben, wer braucht denn noch die AccountDomain dazu, muss das sein?!"
 
Zuletzt bearbeitet:
Zurück
Oben