multimania
Goto Top

Powershell Full Username abfragen

Hallo,

ich frage per WMI den angemeldeten User ab, funktioniert auch einwandfrei:

Get-WmiObject -Class Win32_ComputerSystem -ComputerName $Computername | fl UserName

Jetzt benötige ich aber den Vor- und Nachnamen von dem User, die Ausgabe gibt mir aber nur domäne\username zurück.

Kann mir jemand helfen?

Danke.

Gruß Multi

Content-ID: 204994

Url: https://administrator.de/contentid/204994

Ausgedruckt am: 20.11.2024 um 03:11 Uhr

colinardo
colinardo 15.04.2013 aktualisiert um 12:37:23 Uhr
Goto Top
Hi Multi,
$username = (Get-WmiObject -Class Win32_ComputerSystem -ComputerName $Computername).UserName
$fullname = (get-WmiObject -Class Win32_UserAccount | Where-Object -FilterScript {$_.Caption -eq "$username"}).FullName  
$vorname = $fullname.Split(" ")  
$nachname = $fullname.Split(" ")[1]  

Bei Abfrage auf einem AD-Server geht noch folgendes:
$vorname = (Get-User -Identity DOMAIN\User).FirstName
$nachname = (Get-User -Identity DOMAIN\User).LastName
Grüße Uwe
Multimania
Multimania 15.04.2013 um 12:37:39 Uhr
Goto Top
Hallo,

danke, verstanden und funktioniert soweit auch.

Jedoch dauert die zweite Abfrage doch sehr lange, liest er erstmal alle User ein und filtert dann?
Gibt es evtl. eine Alternative?
colinardo
colinardo 15.04.2013 aktualisiert um 12:49:04 Uhr
Goto Top
Hier eine Lösung, hatte zunächst Probleme mit dem Filter in Get-WMIObject (deshalb die zusätzliche Stufe mit dem where-Object), da bei diesem der Backslash escaped werden muss...
$username = (Get-WmiObject -Class Win32_ComputerSystem -ComputerName $Computername).UserName.Replace("\","\\")  
$fullname = (get-WmiObject -Class Win32_UserAccount -Filter "Caption = '$username'").FullName  
Damit sollte es wesentlich schneller gehen weil nicht mehr alle User durchlaufen werden müssen...

Grüße Uwe
lenny4me
lenny4me 15.04.2013 um 18:26:00 Uhr
Goto Top
Hallo,

sollte ein AD dahinter hängen (wovon ich nun einfach mal ausgehe)

Get-AdUser Samaccountname -properties * | Fl cn

Grüße