Konfiguration von lokalen Benuzter / Gruppen

Post Reply
Lars
Posts: 32
Joined: 13. Oct 2006, 10:57
Contact:

Konfiguration von lokalen Benuzter / Gruppen

Post by Lars » 28. Mar 2007, 10:54

Hallo zusammen,

ich beschreibe euch kurz mein Problem:

Wir haben Windows XP mit verschiedenen Sprachen als Client im Einsatz. Ich möchte auf den Clients konfigurationen an den lokalen Benutzern und Gruppen vornehmen. Leider heißt z.B. der lokale Administraor in jeder Sprache anders. Für die lokalen Gruppen gibt es Variablen leider habe ich keine für den lokalen Administrator gefunden. Gibt es da eine?

Wenn nicht kann ich die Sprache aus Windows XP auslesen? Dann könnte ich per Abfrage die Konfiguration vonehmen.

Vielen Dank für Eure hilfe!

Gruß Lars

HeikoLeupolz
Posts: 128
Joined: 14. Dec 2004, 13:37
Location: Pfronten
Contact:

Post by HeikoLeupolz » 28. Mar 2007, 16:24

ich habe leider keinen Empirum Server zur Hand, so dass ich dediziert nachsehen könnte, aber soweit ich das im Kopf habe gibt es doch auch hierfür "Platzhalter" in Empirum. Die heißen in der Art $Admin. Aber da bitte nochmals in der Hilfe nachsehen.
Viele Grüße

Heiko Leupolz

AFiedler
Posts: 265
Joined: 15. Nov 2005, 16:02
Location: Köln
Contact:

Post by AFiedler » 29. Mar 2007, 08:14

Hi Lars,

falls das mit $Admin geht ist das natürlich die besser Lösung, aber wenn nicht könntest du was in der Art probieren:

[Set:Product]
...
callhidden cmd /c net localgroup %$LocalAdmins% > %temp%\admins.txt
if DoesTextInFileExist ("Administrator", "%temp%\admins.txt") == "1" Then "Security:Deutsch" endif
...
[Security:Deutsch]

User avatar
Trickser
Posts: 560
Joined: 11. Oct 2006, 10:51
Location: Jülich
Contact:

Post by Trickser » 29. Mar 2007, 20:40

Hi,

bin mir auch grad nicht mehr sicher ob %$LocalAdmin% funktioniert.

Deshalb 3 unterschiedliche Ansätze für dich, die man für diverse Aufgaben gebrauchen kann:

1:
Empirum erkennt an sich ja schon die Sprache über die Abschnitte [Strings:XX], standardmässig ist aber nur Deutsch (07) und Englisch (09) drin. Französisch (0c) und Spanisch (0a) müsstest du selber ergänzen.
Die anderen kannst du lt. Doku (setupdeu.chm) in der winnt.h nachlesen.
insgesammt recht aufwändig.

2:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Language
enthält in InstallLanguage einen 4-Stelligen Code für die Sprache (0409 ist deutsch).

Weitere:
0401 Arabic
0402 Bulgarian
041a Croatian
0405 Czech
0406 Danish
0413 Dutch (Standard)
0425 Estonian
040b Finnish
040c French (Standard)
0407 German
0408 Greek
040d Hebrew
040e Hungarian
0410 Italian
0411 Japanese
0412 Korean
0426 Latvian
0427 Lithuanian
0414 Norwegian
0415 Polish
0416 Portuguese (Brazil)
0816 Portuguese (Standard)
0418 Romanian
0419 Russian
0804 Simplified Chinese
0c0a Spanish (Modern Sort)
041b Slovak
0424 Slovenian
041d Swedish
041e Thai
0404 Traditional Chinese
041f Turkish

3: (die vielleicht beste Lösung)

folgendes vbs geht über die well known SID des lokalen Admins.
Es liefert deshalb unabhängig von der Sprache das lokale Adminkonto, auch dann wenn es umbenannt wurde.

----------------------------------------------

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colAccounts = objWMIService.ExecQuery _
("Select * From Win32_UserAccount Where LocalAccount = TRUE")

For Each objAccount in colAccounts
If Left (objAccount.SID, 6) = "S-1-5-" and Right(objAccount.SID, 4) = "-500" Then
Wscript.Echo objAccount.Name
End If
Next

-----------------------------------------------------

Gruss,

Michi

Lars
Posts: 32
Joined: 13. Oct 2006, 10:57
Contact:

Post by Lars » 09. May 2007, 13:46

Vielen Dank für die Antworten!

@AFiedler
So hatte ich es bisher auch gemacht, aber mit dieser Lösung bin ich nicht zufrieden. Sobald er User umbenannt wurde bzw. die Sprache von Windows nicht deutsch ist geht es damit nicht mehr.

@Michi
Danke für die 3 Möglichkeiten, wobei mir auch die Lösung 3 sehr gefällt da diese wesentlich unabhängiger ist. Ich habe das Script erweitert und ergänzt, dass es die den Namen in eine Textdatei schreibt.
Leider habe ich nichts hier im Forum und der Empirum Hilfe gefunden mit dem ich das File wieder einslesen kann.

Gibt es da überhaupt eine möglichkeit ein Textfile einzulesen?

Danke für Eure Hilfe!

Gruß Lars

Hier ist noch der vbCode den ich erweitert habe:

Code: Select all

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colAccounts = objWMIService.ExecQuery _
("Select * From Win32_UserAccount Where LocalAccount = TRUE")

Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile("C:\user.txt", True)


For Each objAccount in colAccounts
If Left (objAccount.SID, 6) = "S-1-5-" and Right(objAccount.SID, 4) = "-500" Then
MyFile.WriteLine (objAccount.Name)
End If
Next
For Each objAccount in colAccounts
If Left (objAccount.SID, 6) = "S-1-5-" and Right(objAccount.SID, 4) = "-501" Then
MyFile.WriteLine (objAccount.Name)
MyFile.Close
End If


Post Reply

Return to “Paketierung”

Who is online

Users browsing this forum: No registered users and 4 guests