Windows 7 Batch (CMD) für alle Benutzer
Hallo...
habe folgendes Problem.
Ich habe 2 CMD Scripte, die bei Bedarf den "MYSQL-Dienst" starten oder stoppen (script 1 Start MySQS, script 2 Stopp MySQL).
In Windows XP funktionierten beide einwandfrei, bei allen Anwendern.
Windows 7 Ultimate... laufen die aber nur, wenn ich sie als "Administrator" ausführe!
Habe nun schon versucht, die nach C:/Windows bzw. C/Windows/System zu Kopieren, und nur als Verknüpfung auf jeden Desktop. Geht aber auch nicht!
Wie mache ich es, dass auch PC-Benutzer ohne Administrative-Rechte die Verknüpfung nutzen können?
habe folgendes Problem.
Ich habe 2 CMD Scripte, die bei Bedarf den "MYSQL-Dienst" starten oder stoppen (script 1 Start MySQS, script 2 Stopp MySQL).
In Windows XP funktionierten beide einwandfrei, bei allen Anwendern.
Windows 7 Ultimate... laufen die aber nur, wenn ich sie als "Administrator" ausführe!
Habe nun schon versucht, die nach C:/Windows bzw. C/Windows/System zu Kopieren, und nur als Verknüpfung auf jeden Desktop. Geht aber auch nicht!
Wie mache ich es, dass auch PC-Benutzer ohne Administrative-Rechte die Verknüpfung nutzen können?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 238420
Url: https://administrator.de/forum/windows-7-batch-cmd-fuer-alle-benutzer-238420.html
Ausgedruckt am: 22.04.2025 um 01:04 Uhr
10 Kommentare
Neuester Kommentar
Hallo,



Und wenn du möchtest das ein "Normaler" eingeschränkter Benutzer auch Dienste Starten oder beenden sollen darf, dann musst du diesen Benutzern auch die Rechte dazu geben damit diese Dienste Starten / Beenden dürfen.
Gruß,
Peter
Zitat von @Waldiman:
Ich habe 2 CMD Scripte, die bei Bedarf den "MYSQL-Dienst" starten oder stoppen (script 1 Start MySQS, script 2 Stopp MySQL).
Das nennst du ein Problem? Ich habe 2 CMD Scripte, die bei Bedarf den "MYSQL-Dienst" starten oder stoppen (script 1 Start MySQS, script 2 Stopp MySQL).
In Windows XP funktionierten beide einwandfrei, bei allen Anwendern.
Jaja, vor langer Zeit war alles anders und besser Windows 7 Ultimate... laufen die aber nur, wenn ich sie als "Administrator" ausführe!
Si.Habe nun schon versucht, die nach C:/Windows bzw. C/Windows/System zu Kopieren, und nur als Verknüpfung auf jeden Desktop.
Warum? Was soll der Blödsinn?Geht aber auch nicht!
Si. Wie mache ich es, dass auch PC-Benutzer ohne Administrative-Rechte die Verknüpfung nutzen können?
Da Windows 7 und das Sicheherheitskonzept seit Vista für dich Neuland zu sein scheint, lies dich mal in der Benutzerkontensteuerung (UAC) ein. Die sollte eingeschaltet sein und auf der Standardstufe stehen. Ein Administrator ist nicht mehr ein Vollwertiger Administrator, dazu bedarf es die Erhöhten Rechte (Elevated Rights). die sich anfordern lassen, sei es durch das Zauberwort "Setup.exe" oder Rechte Maustaste und "Als Administrator ausführen" um nur zwei zu nennen.Und wenn du möchtest das ein "Normaler" eingeschränkter Benutzer auch Dienste Starten oder beenden sollen darf, dann musst du diesen Benutzern auch die Rechte dazu geben damit diese Dienste Starten / Beenden dürfen.
Gruß,
Peter
Hallo Waldiman,
über die Aufgabenplanung lässt sich das ggf. schon abwickeln. Sinnvollerweise sollte man den Inhalt deiner Batchdateien aber in die geplanten Tasks mit einarbeiten, damit niemand auf die Idee kommt den Code der Dateien zu ändern und die Sache zu missbrauchen. Wenn du also den (vemutlichen) Einzeiler in den Batchdateien hier mal posten würdest, würde ich dir auch fix ein Script schreiben, dass dir die entsprechenden Tasks anlegt.
Grüße
rubberman
über die Aufgabenplanung lässt sich das ggf. schon abwickeln. Sinnvollerweise sollte man den Inhalt deiner Batchdateien aber in die geplanten Tasks mit einarbeiten, damit niemand auf die Idee kommt den Code der Dateien zu ändern und die Sache zu missbrauchen. Wenn du also den (vemutlichen) Einzeiler in den Batchdateien hier mal posten würdest, würde ich dir auch fix ein Script schreiben, dass dir die entsprechenden Tasks anlegt.
Grüße
rubberman
Hallo,
Zum Anfangen sollte das erst mal reichen. Dein Internet ist voll davon. Frage deine Suchmaschine....
http://windows.microsoft.com/de-de/windows7/products/features/user-acco ...
http://windows.microsoft.com/de-de/windows/turn-user-account-control-on ...
http://de.wikipedia.org/wiki/Benutzerkontensteuerung
http://www.edbott.com/weblog/2007/02/what-triggers-user-account-control ...
Es ist ja nicht so das die UAC erst seit Gestern daherkommt. Wurde mit VISTA erstmals präsentiert und seit dem immer weiter ausgebaut / geändert / verschlimmbessert / verbessert....
Gruß,
Peter
Zitat von @Waldiman:
Ich will nicht das eingeschränkte Nutzer "allgemein" Dienste starten oder beenden dürfen!
OKIch will nicht das eingeschränkte Nutzer "allgemein" Dienste starten oder beenden dürfen!
Nur diesen einen Dienst - (script sollten sie dürfen)!
Dann baue dir einen Task (geplante Aufgaben) der eben dein MySQL Startet (net start mysql) oder Stoppt (net stop mysql) mit allerhöchsten privilegien und lege einen Link dazu auf den Desktop bes benutzers mit eingeschränkten Rechten. Dies dann klicken lassen (notfalls erlauben das er diese Aufgaben ausführen darf) und gut ist.Oder bringt es mich weiter, wenn ich einfach die Benutzerwerwaltung (Benutzerkontensteuerung) lahm lege??
Wie du deine benutzerkontensteuerung einstellst bleibt selbstverständlich dir überlassen. Es ist ja wohl dein Rechner, deine Software usw. Ob dir angeraten werden kann die UAC auszuschalten? NEIN.Zum Anfangen sollte das erst mal reichen. Dein Internet ist voll davon. Frage deine Suchmaschine....
http://windows.microsoft.com/de-de/windows7/products/features/user-acco ...
http://windows.microsoft.com/de-de/windows/turn-user-account-control-on ...
http://de.wikipedia.org/wiki/Benutzerkontensteuerung
http://www.edbott.com/weblog/2007/02/what-triggers-user-account-control ...
Es ist ja nicht so das die UAC erst seit Gestern daherkommt. Wurde mit VISTA erstmals präsentiert und seit dem immer weiter ausgebaut / geändert / verschlimmbessert / verbessert....
Gruß,
Peter
Mal nebenher angemerkt: auch unter xp konnten normale Nutzer Dein Skript nicht nutzen - vermutlich hattest Du sie als Hauptbenutzer eingerichtet, die können unter xp Dienste starten, schwache Standardnutzer nicht.
Mittels der eingebauten sc.exe kannst Du die Rechte auf den Dienst setzen (sc sdset...), so das jeder ihn neu starten darf. Ebenfalls geht es über subinacl.exe (separater Download von Microsoft)
Beides vermittelt auf http://stackoverflow.com/questions/4436558/start-stop-a-windows-service ... - hier zitiert für subinacl und den Dienst bst:
Mittels der eingebauten sc.exe kannst Du die Rechte auf den Dienst setzen (sc sdset...), so das jeder ihn neu starten darf. Ebenfalls geht es über subinacl.exe (separater Download von Microsoft)
Beides vermittelt auf http://stackoverflow.com/questions/4436558/start-stop-a-windows-service ... - hier zitiert für subinacl und den Dienst bst:
1.Login as an administrator.
2.Download subinacl.exe from Microsoft: http://www.microsoft.com/en-us/download/details.aspx?id=23510
3.Grant permissions to the regular user account to manage the BST services. (subinacl.exe is in C:\Program Files (x86)\Windows Resource Kits\Tools\).
4.cd C:\Program Files (x86)\Windows Resource Kits\Tools\
subinacl /SERVICE \\MachineName\bst /GRANT=domainname.com\username=F or
subinacl /SERVICE \\MachineName\bst /GRANT=username=F
5.Logout and log back in as the user. They should now be able to launch the BST service.
2.Download subinacl.exe from Microsoft: http://www.microsoft.com/en-us/download/details.aspx?id=23510
3.Grant permissions to the regular user account to manage the BST services. (subinacl.exe is in C:\Program Files (x86)\Windows Resource Kits\Tools\).
4.cd C:\Program Files (x86)\Windows Resource Kits\Tools\
subinacl /SERVICE \\MachineName\bst /GRANT=domainname.com\username=F or
subinacl /SERVICE \\MachineName\bst /GRANT=username=F
5.Logout and log back in as the user. They should now be able to launch the BST service.
Ich denke, @DerWoWusste hat dir exakt beschrieben was du tun solltest. Falls dich der UAC Prompt stört (und damit meine ich keine anderen User) funktioniert das auch mit der Idee die ich im Hinterkopf hatte.
Führe folgenden Batchcode einmalig als Administrator aus:
Nun kannst du mit den Kommandozeilen
bzw.
den Dienst starten bzw. stoppen.
Aber, wie gesagt, sollte das so nur für deinen Account funktionieren. Sobald du den SYSTEM Account nutzen willst ...
... brauchst du schon wieder Adminrechte für das Starten per SCHTASKS.
Grüße
rubberman
Führe folgenden Batchcode einmalig als Administrator aus:
@echo off &setlocal
cd /d "%~dp0"
for /f "tokens=2 delims=:" %%i in ('chcp') do set /a oemcp=%%~ni
>nul chcp 1252
set "xmlfile=%temp%\MYSQL.xml"
set "cmmnd=%SystemRoot%\System32\cmd.exe"
set "descr1=MYSQL Start"
set "arg1=/c "%SystemRoot%\System32\sc.exe start MySQL""
set "taskname1=MYSQL_Start"
set "descr2=MYSQL Stop"
set "arg2=/c "%SystemRoot%\System32\sc.exe stop MySQL""
set "taskname2=MYSQL_Stop"
set "line_01=<?xml version="1.0" encoding="UTF-16"?>"
set "line_02=<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">"
set "line_03= <RegistrationInfo>"
set "line_04= <Author>rubberman @ administrator.de</Author>"
set "line_05= <Description>%descr1%</Description>"
set "line_06= </RegistrationInfo>"
set "line_07= <Triggers />"
set "line_08= <Principals>"
set "line_09= <Principal id="Author">"
set "line_10= <UserId>%userdomain%\%username%</UserId>"
set "line_11= <RunLevel>HighestAvailable</RunLevel>"
set "line_12= </Principal>"
set "line_13= </Principals>"
set "line_14= <Settings>"
set "line_15= <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>"
set "line_16= <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>"
set "line_17= <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>"
set "line_18= <AllowHardTerminate>true</AllowHardTerminate>"
set "line_19= <StartWhenAvailable>false</StartWhenAvailable>"
set "line_20= <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>"
set "line_21= <IdleSettings>"
set "line_22= <StopOnIdleEnd>false</StopOnIdleEnd>"
set "line_23= <RestartOnIdle>false</RestartOnIdle>"
set "line_24= </IdleSettings>"
set "line_25= <AllowStartOnDemand>true</AllowStartOnDemand>"
set "line_26= <Enabled>true</Enabled>"
set "line_27= <Hidden>true</Hidden>"
set "line_28= <RunOnlyIfIdle>false</RunOnlyIfIdle>"
set "line_29= <WakeToRun>false</WakeToRun>"
set "line_30= <ExecutionTimeLimit>P3D</ExecutionTimeLimit>"
set "line_31= <Priority>5</Priority>"
set "line_32= </Settings>"
set "line_33= <Actions Context="Author">"
set "line_34= <Exec>"
set "line_35= <Command>%cmmnd%</Command>"
set "line_36= <Arguments>%arg1%</Arguments>"
set "line_37= <WorkingDirectory>%SystemRoot%\System23</WorkingDirectory>"
set "line_38= </Exec>"
set "line_39= </Actions>"
set "line_40=</Task>"
<nul >"%xmlfile%" set /p "=ÿþ"
>>"%xmlfile%" cmd /u /q /c "for /f "tokens=1* delims==" %%i in ('set line_') do echo %%j"
>nul chcp %oemcp%
schtasks /create /xml "%xmlfile%" /tn "%taskname1%" /f
>nul chcp 1252
set "line_05= <Description>%descr2%</Description>"
set "line_36= <Arguments>%arg2%</Arguments>"
<nul >"%xmlfile%" set /p "=ÿþ"
>>"%xmlfile%" cmd /u /q /c "for /f "tokens=1* delims==" %%i in ('set line_') do echo %%j"
>nul chcp %oemcp%
schtasks /create /xml "%xmlfile%" /tn "%taskname2%" /f
del "%xmlfile%"
pause
Nun kannst du mit den Kommandozeilen
schtasks /run /tn "MYSQL_Start" /i
schtasks /run /tn "MYSQL_Stop" /i
Aber, wie gesagt, sollte das so nur für deinen Account funktionieren. Sobald du den SYSTEM Account nutzen willst ...
set "line_10= <UserId>S-1-5-18</UserId>"
Grüße
rubberman