faroxius
Goto Top

Alle Attribute von lokale Benutzer mit Powershell auslesen

Hallo zusammen,

ich versuche gerade alle Attribute die man bei einen lokalen Benutzer anlegen kann, mit PS auszulesen. Es handelt sich hier um einen WS2008R2, der als Radius Server eingerichtet ist.
Mit den Cmdlet Get-WmiObject fehlen mir die Dial-In Einstellungen, statische routen, usw. . Ich benötige diese Parameter um den Radius migrieren zu können.
Kennt jemand ein Cmdlet der hier weiterhelfen kann?

Vorab schon mal, Get-ADUser hilft hier nicht, weil der Server sich nicht in eine Domäne befindet.

Vielen Dank im Voraus für nützliche Tipps.

VG

Content-Key: 392918

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

Ausgedruckt am: 19.03.2024 um 02:03 Uhr

Mitglied: 137846
137846 15.11.2018 aktualisiert um 15:34:22 Uhr
Goto Top
gwmi Win32_UserAccount | fl *
Oder auch: für weitere Eigenschaften:
[ADSI]"WinNT://<computername>/maxmustermann" | fl *  
A.
Mitglied: faroxius
faroxius 15.11.2018 um 16:05:47 Uhr
Goto Top
Hallo answer,

Mit gwmi tauchen die Radius Attribute nicht auf, ist dasselbe wie Get-WmiObject. Mit ADSI aber liegst du richtig, nur schade das diese nicht angezeigt werden... noch ne Idee wie man die entschlüsseln kann?

PS C:\Windows\system32> [ADSI]"WinNT://srv04/Guest" | fl *

Parameters : {m d☺ P♠(4☺msNPCallingStationID????????????????
??????????24☺msNPSavedCallingStationID??????????????????????????&x☺msRADIUSFramedRoute????
????????????????????????????????????????????????????????.@☺msRADIUSFramedIPAddress????????
????????????????????????*x☺msRASSavedFramedRoute??????????????????????????????????????????
??????????????????2@☺msRASSavedFramedIPAddress????????????????????????????????}
Mitglied: 137846
137846 15.11.2018 aktualisiert um 16:23:06 Uhr
Goto Top
Mit der Methode InvokeGet("EIGENSCHAFT") auf dem Object natürlich face-wink.
([ADSI]"WinNT://srv04/Guest").psbase.InvokeGet("ATTRIBUT")  

Die nötigen Attributnamen findest du hier:
http://www.selfadsi.de/user-attributes-w2k12.htm
Mitglied: faroxius
faroxius 15.11.2018 um 17:00:01 Uhr
Goto Top
InvokeGet kann nur auf "Parameters" zielen und liefert das selbe verschlüsselte Ergebnis. Die Attribute msRADIUSFramedRoute, sNPSavedCallingStationID, msRADIUSFramedIPAddress, usw. erkennt er nicht als solche, werden ja auch als Werte von Parameters angezeigt.

Kann ich mit
[ADSI]"WinNT://srv04/  
die Attribute von alle User auslesen oder geht das nur einzeln?

Danke inzwischen schon mal für die weisen Tipps face-wink
Mitglied: 137846
137846 15.11.2018 aktualisiert um 17:13:57 Uhr
Goto Top
Zitat von @faroxius:

InvokeGet kann nur auf "Parameters" zielen und liefert das selbe verschlüsselte Ergebnis. Die Attribute msRADIUSFramedRoute, sNPSavedCallingStationID, msRADIUSFramedIPAddress, usw. erkennt er nicht als solche, werden ja auch als Werte von Parameters angezeigt.
Nöp, geht hier einwandfrei.
Kann ich mit
[ADSI]"WinNT://srv04/  
die Attribute von alle User auslesen oder geht das nur einzeln?
Klar:
([ADSI]'WinNT://srv04,computer').children  
https://mcpmag.com/articles/2015/06/18/reporting-on-local-groups.aspx
Oder eben Schleife mit den Usernamen und Variablen eingebaut.
Mitglied: faroxius
faroxius 15.11.2018 um 17:30:56 Uhr
Goto Top
Muss dann mal nachforschen warum es bei mir nicht läuft.
Ansonsten komme ich jetzt Dank deiner Hilfe gut voran, Danke!
Mitglied: 137846
137846 15.11.2018 aktualisiert um 18:50:55 Uhr
Goto Top
Also die einzelnen Attribute aus der "Parameters" Eigenschaft brauchst du nicht einzeln auszulesen, es reicht wenn du dieses Attribut einfach so wie es ist in eine Variable schreibst von mir auch als BYTE Array (ist in Wirklichkeit ein Unicode-String siehe: https://docs.microsoft.com/en-us/windows/desktop/adsi/winnt-custom-user- ..) und dann beim neu Anlegen des Accounts die Parameters Eigenschaft mit dem Unicode String beschreibst, dann werden die erweiterten Eigenschaften im Useraccount korrekt wiederhergestellt.

Beispiel zum übertragen der erweiterten Parameters von einem Account auf einen neuen:
$quellaccount = [ADSI]'WinNT://srv04/Administrator'  
$params = $quellaccount.Parameters.Value

$newaccount = ([ADSI]'WinNT://srv04,computer').Create('user','NeuerUser')  
$newaccount.SetPassword('Passw0rd')  
# usw. hier die anderen Eigenschaften setzen
$newaccount.Parameters.Value = $params
$newaccount.CommitChanges()