Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Namen das lokalen Administratoren per Batch auslesen

Frage Entwicklung Batch & Shell

Mitglied: kl-A

kl-A (Level 1) - Jetzt verbinden

01.12.2006, aktualisiert 04.12.2006, 12441 Aufrufe, 6 Kommentare, 1 Danke

Gibt es eine möglichkeit per Batchdatei den Namen des lokalen Administrators auszulesen, wenn z. Bsp. das Adminstratorkonto umbenannt wurde?

Ich möchte wenn ein user kein adminrechte hat, ein bestimmtes tool als lokaler Admin starten.

Soweit so gut.
Arbeite hierfür an einem batchscript.

prüfe mit dem tool isadmin.exe (oder so ähnlich, hab es gerade nicht zur hand) ob der user adminrechte hat, wenn ja = ok
wenn nicht, starte das tool mit runas , als lokaler admin.
funktioniert auch, so lange der lokale admin-account nicht umbenannt wurde.

wenn es keine einfache möglichkeit gibt, heraus zufinden wie der name des lokalen admins ist,
würde mir auch eine alternative lösung reichen.

hierfür gebe ich einfach die mitglieder der lokalen gruppe Administratoren aus, mit

net localgroup Administratoren

die ausgabe gefällt mir aber nicht, ist zwar nur ein optische problem, aber wenn es auch schöner geht.
beispiel f. die ausgabe:

Aliasname Administratoren
Beschreibung Administratoren haben uneingeschr"nkten Vollzugriff auf den Computer bzw. die Dom"ne.

Mitglieder

Admin
Max
Otto
Der Befehl wurde erfolgreich ausgefhrt.


wie kann ich nur die namen anzeigen lassen, ohne den ganzen unnötigen text.
das ganze sollte aber auch auf nicht deutschen betriebssytem laufen, d.h. der text wäre z. bsp. engl., französich usw.


gruss kl_A
Mitglied: Biber
01.12.2006 um 18:32 Uhr
Moin kl_A,

Am CMD-Prompt:
01.
>for /f "delims= skip=5" %i in ('net localgroup Administratoren^|find /v "."') do @echo %i
Als "Batch", falls es sich lohnt:
01.
::-ListLocaladmins.bat 
02.
@for /f "delims= skip=5" %%i in ('net localgroup Administratoren^|find /v "."') do @echo %%i
HTH Biber
[Edit] Nachtrag:
Da international wohl die Lokale Administratoren-Gruppe nicht immer "Administratoren" heißt, muss entweder noch eine Zeile vorgeschaltet werden [Denn mit "*Admin" fangen in Europa wohl alle an (?)]:
01.
>for /f "tokens=1 delims=*" %a in ('net localgroup^|findstr /i "^\*Admin"') do @echo %a 
02.
Administratoren

-oder-
sinnigerweise über 10 Zeilen VBS statt über eine Batchzeile gegangen werden.
(/Edit]
Bitte warten ..
Mitglied: kl-A
01.12.2006 um 21:18 Uhr
hi biber,

danke f. die schnelle antwort,....und das am freitag abend!!!

werde das mal testen.

was die administratoren gruppe f. andersprachl. betriebssysteme angeht, das ist recht einfach zu lösen, da diese gruppe immer die selbe SID S-1-5-32-544 hat.
mit psgetsid kann ich den namen ermitteln, hier mal ein codeschnipsel.


psgetsid S-1-5-32-544 >%temp%\sid.txt

findstr /R "Alias:" %temp%\sid.txt >%temp%\sid2.txt

set /p Administratorgruppe= <%temp%\sid2.txt
:cutname
set testname=%Administratorgruppe%
set Administratorgruppe=%Administratorgruppe:*\=%
if not "%Administratorgruppe%"=="%testname%" goto :cutname
echo.%Administratorgruppe%


aber mir ist jetzt noch eine wahrscheinlich viel einfachere methode eingefallen.
habe jetzt hier zu hause nur einen pc, aber ich glaube die SID des lokalen Admin setzt sich aus der SID des Rechner plus der zahl -500 zusammen.

also könnte man mit psgetsid die SID des Rechner ermitteln die -500 anhängen und hätte die SID des lokalen admins, egal wie der name ist.

psgetsid %COMPUTERNAME% >%temp%\sid_machine.txt
findstr /R "S-1-5-21" %temp%\sid_machine.txt >%temp%\sid_machine2.txt


jetzt ne blöde frage. wie bekomme ich die -500 angehängt
mit:
echo -500>>%temp%\sid_machine2.txt
bekomme ich einen zeilenumbruch in die datei.
oder kann ich direkt eine variable setzen
set /P AdminSID=<%temp%\sid_machine2.txt plus die -500

gruss kl_A
Bitte warten ..
Mitglied: Biber
03.12.2006 um 16:08 Uhr
Moin kl_A,
oder kann ich direkt eine variable setzen
set /P AdminSID=<%temp%\sid_machine2.txt plus die -500

Ja, das geht relativ einfach:
01.
set /P AdminSID=<%temp%\sid_machine2.txt 
02.
set "AdminSID=%AdminSID%-500"
Gruß
Biber
Bitte warten ..
Mitglied: Biber
04.12.2006 um 07:27 Uhr
Moin, kl_A,

Nachtrag:
Dieses "Set AdminSID=whatever" works as designed, sprich:
Es funktioniert natürlich, geht aber an der eigentlichen Frage voll vorbei.

Der User "Administrator", der seines Zeichens Lokaler Administrator auf der Maschine XYZ ist, hat in der Tat als SID die SID des Rechners plus eine angehängte "-500".
So weit weder Geheimnis noch Hexenwerk.

Die Localgroup "Administratoren" allerdings hat zwar einen ähnlich klingenden Namen und auch den Strich-500er-LocalAdmin als Member, aaaaaaaaaaaaaber hat als Well-Known-Sid eine andere:
01.
SID for VORDEFINIERT\Administratoren: 
02.
S-1-5-32-544
Und das müsste die lokale Truppe sein, die bei "net localgroup Administratoren" angezeigt wird.

Grüße
Biber
Bitte warten ..
Mitglied: kl-A
04.12.2006 um 12:32 Uhr

Es funktioniert natürlich, geht aber an
der eigentlichen Frage
voll vorbei.

Grüße
Biber


Hi Biber,

den einwand verstehe ich nicht ganz.

mein ziel ist es, wenn der angemeldete user kein lokaler admin ist, ein tool als lokaler admin zu starten. auch dann wenn der lok. adminaccount umbenannt wurde. und das ist denek ich am einfachsten wenn man über die SID den namen des lok. admins herausbekommt.

hier meine lösung:

@echo off
setlocal

set DasTool=%windir%\tool.exe

:FIRSTSTEP
ISADMIN if errorlevel 1 goto ADMIN
goto NOADMIN

:ADMIN
%DasTool%
goto END

:NOADMIN
REM === SID des Rechners ermitteln
psgetsid %COMPUTERNAME% >%temp%\machine.sid
findstr /R "S-1-5-21" %temp%\machine.sid >%temp%\machine2.sid

REM === SID des lokalen Adminaccounts zusammen basteln,
REM === aus SID des Rechners plus der Zeichenfolge -500
set /P tmpAdminSID=<%temp%\machine2.sid
set tmpAdminSID=%tmpAdminSID%-500

REM === ermitteln des Namens des lokalen Adminaccounts
psgetsid %tmpAdminSID% >%temp%\admin.sid
findstr /R "User:" %temp%\admin.sid >%temp%\admin2.sid
set /p AdminSID=<%temp%\admin2.sid
:cut
set testSID=%AdminSID%
set AdminSID=%AdminSID:*\=%
if not "%AdminSID%"=="%testSID%" goto :cut

REM === Tool als lokaler admin starten
runas /noprofile /env /savecred /user:%Computername%\%AdminSID% %DasTool%
goto END

:END
del /Q %temp%\*.sid
ENDLOCAL
exit


wenn jemand hinweise, verbesserungsvorschläge hat bzw. fehler findet, bitte hier posten.

Gruss kl_A
Bitte warten ..
Mitglied: Biber
04.12.2006 um 13:12 Uhr
Moin kl_A,
den einwand verstehe ich nicht ganz.
mein ziel ist es, wenn der angemeldete user kein lokaler admin ist,
ein tool als lokaler admin zu starten

Hast Recht, ich hatte überlesen, dass der Einsatz von IsAdmin.exe (oder ähnlichen) auch eine Alternative ist.
Ich war davon ausgegangen, dass Du die "Mitglieder" der LocalGroup "Administratoren" einzeln und per Namensvergleich abklapperst.

Wenn Du die Berechtigungsprüfung über ein schlichtes "IsAdmin" machst, dann ist dieser Aufruf natürlich international genug

Und der zweite Teil des Plans, dann das Tool mit der Strich-500er-AdministratorID zu starten, ist natürlich plausibel.

Mein Fehler.
Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Windows Tools
Auslsen des Namens der lokalen Administratorgruppe per Batch
gelöst Frage von ArminWeinmannWindows Tools5 Kommentare

Hallo, ich suche nach einem Weg den Namen der lokalen Administratorgruppe sprachabhängig zu ermitteln und diesen dann in einer ...

Batch & Shell
Bash: Email und Name auslesen
Frage von SIPSIPBatch & Shell29 Kommentare

Hallo zusammen Brauche eure Hilfe, verzweifle fast Muss aus einer grossen csv Datei mit HTML Inhalt E-Mail Adresse und ...

Windows Userverwaltung
Mitglieder der lokalen Administratoren haben keine Berechtigungen
Frage von 120917Windows Userverwaltung10 Kommentare

Hallo, ich vergebe lokale Administratorenrechte per Gruppenrichtlinie über eingeschränkten Gruppen. Eine im AD angelegte Gruppe wird auf jedem Rechner ...

Batch & Shell
Lokaler Administrator PW ändern
Frage von OniChanBatch & Shell3 Kommentare

Moin zusammen, ich habe vor, das lokale Administrator Konto auf Win7 & Win10 Clients zu aktivieren und ihm ein ...

Neue Wissensbeiträge
Windows 10

Windows 10 Hello-Anmeldung per Foto ausgehebelt

Tipp von kgborn vor 1 StundeWindows 10

Windows Hello ist eine Funktion, um sich per Fingerabdruck-, Gesichts- oder Iriserkennung bei Windows 10-Geräten anzumelden (siehe), setzt aber ...

Perl

Perl hat heute Geburtstag: 30 Jahre Perl: Lange Gesichter zum Geburtstag

Information von Penny.Cilin vor 8 StundenPerl2 Kommentare

Hallo, auch wenn es wenige wissen und noch weniger Leute es nutzen. Perl hat heute Geburtstag. 30 Jahre Perl ...

Sicherheit

Blackberry stirbt - Keine Updates für Priv mehr

Tipp von certifiedit.net vor 9 StundenSicherheit1 Kommentar

Blackberry wird zu einer 08/15 Firma und geht wohl mehr und mehr den Weg, den HTC schon ging. Von ...

Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 1012 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Heiß diskutierte Inhalte
Windows Server
SCCM 2016: PXE Boot des Clients schlägt fehl
Frage von gabeBUWindows Server22 Kommentare

Hallo Zusammen Ich habe eine Testumgebung erstellt um über SCCM 2016 einen virtuellen Client aufzusetzen. Folgende Maschinen habe ich ...

Netzwerkgrundlagen
Belibiges Teilnetz einer Subnetzmaske rausfinden?
gelöst Frage von CenuzeNetzwerkgrundlagen19 Kommentare

Wundervollen Gutentag, mittlerweile kann ich Subnetting so einigermaßen, aber ein Problem habe ich noch. Netzwerkadresse und Boradcast errechnen ist ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless12 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Windows Server
Logging von "gesendeten Nachrichten" auf Terminalservern
gelöst Frage von Z3R0C0MM4N0THiN6Windows Server10 Kommentare

Hallo zusammen, kann mir jemand auf kurzem Wege sagen ob 1) die per Task-Manager (oder damals tsadmin) an Benutzer ...