Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 12113 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 ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...