Supportnet Computer
Planet of Tech

Supportnet / Forum / WindowsXP

wie kann man bei verschiedenen benutzkonten die einzelnen dienste und autostartprogramme...





Frage

steuern?? ganz konkret ist dass 1. ein dienst, der 70% cpu leistung benötigt. den will ich nur in einem bestimmten benutzkonto laufen lassen. 2. norton anivirus soll auch nur benutzerabhängig laufen, um wertvolle leistung zu sparen. vielen dank für die hilfe, kromgi

Antwort 1 von kromgi

weiß wirklich keiner, wie man das macht?

Antwort 2 von shrike

Z.B. die Startart des Dienstes auf "Manuell" stellen und im Benutzer-Autostartordner des einen Benutzers mittels des Befehls

net start "Dienstname"

starten (in einer Verknüpfung oder Batchdatei, Anführungszeichen nur bei Leerzeichen im Namen notwendig).

In allen anderen Benutzer-Autostartordnern mittels net stop "Dienstname" den Dienst anhalten. Allerdings brauchen diese Benutzer zum Stoppen des Dienstes Adminrechte.

Man könnte das Starten/Stoppen auch in den Anmelde-/Abmelde-Scripten verwenden (statt im Autostart), aber dazu braucht's wohl zwingend XP-Prof.

Norton AV hab ich keinen Plan...

shrike

Antwort 3 von shrike

Nachtrag: Das Anhalten des Dienstes bei den anderen Benutzern deshalb, weil der Dienst bei Abmelden des einen Benutzers (und Neuanmelden eines anderen) sonst weiterläuft.

shrike

Antwort 4 von kromgi

hallo shrike,

ich habe win xp pro! also ein problem weniger!

vielen dank für den tipp. aber wie genau mache ich das im einzelnen?
du hast geschrieben:
"Man könnte das Starten/Stoppen auch in den Anmelde-/Abmelde-Scripten verwenden (statt im Autostart), aber dazu braucht's wohl zwingend XP-Prof."

eine anleitung für einen laien wäre super. vielen dank schon mal!

kromgi

Antwort 5 von kromgi

Guten Morgen,

kann mir das jemand haarklein erklären, wie das mit den an-/abmeldescripten geht?

kromgi

Antwort 6 von Undertaker

Hi,

Die Skripte, die unter Win 2000 bzw. Win XP Prof. beim Start, Beenden, An- oder Abmelden ausgeführt werden sollen, sind MS-DOS Batchdateien (*.BAT) mit der Extension *.CMD und müssen in folgenden Verzeichnissen abgelegt werden:
Anmelden
%SYSTEMROOT%\system32\GroupPolicy\User\Scripts\Logon
Abmelden
%SYSTEMROOT%\system32\GroupPolicy\User\Scripts\Logoff
Einschalten
%SYSTEMROOT%\system32\GroupPolicy\Machine\Scripts\Startup
Ausschalten
%SYSTEMROOT%\system32\GroupPolicy\Machine\Scripts\Shutdown

Die Standardwerte für %SYSTEMROOT% sind C:\WINNT für Win 2000 bzw. C:\WINDOWS Win XP. Überprüft werden kann der Inhalt mit dem Befehl SET an der Eingabeaufforderung.

Nachdem das oder die Skripte in den entsprechenden Verzeichnissen abgelegt wurden, müssen sie noch aktiviert werden. Dazu startet man das Snap-In der Gruppenrichtlinie beispielsweise über Start -> Ausführen -> GPEDIT.MSC -> Ok und wählt im linken Bereich Computerkonfiguration -> Windows-Einstellungen -> Skripts (Starten/Herunterfahren) bzw. Benutzerkonfiguration -> Windows-Einstellungen -> Scripts (Anmelden/Abmelden). Durch Hinzufügen... -> Durchsuchen werden die auszuführenden Skripte ausgewählt.

Gruß
Undertaker

Antwort 7 von kromgi

super, das ist selbst von mir zu verstehen.

werde ich natürlich ausprobieren und mich dann melden, ob alles klappt!

kromgi


p.s. tausend dank schon jetzt

Antwort 8 von kromgi

jetzt wollte ich das mit den anmeldescripten machen, aber siehe da: da steht überhauptnichts drin.

deshalb jetzt noch einmal eine ganz blöde frage.
wie diese batchdatei erstellt wird ist nicht das problem.
aber: was muss dadrinstehen um bei den verschiedenen benutzern verschiedeene dienste oder programme starten?

helft einem lernfähigen!!! bitte!!!!!


kromgi

Antwort 9 von kromgi

vielleicht hat ja jemand kurz vor dem wochenende schon einen vorschlag?

kromgi

Antwort 10 von Undertaker

Hi,

um eine Batchdatei zu erstellen, kannst Du den Editor (Start -> Programme -> Zubehör -> Editor) verwenden, denn Batchdateien (*.BAT, *.CMD) sind reine Textdateien. Beim Speichern der Batchdatei muß dann im Dialog Datei speichern unter der Dateityp von Textdateien (*.txt) auf Alle umgestellt werden und die Extension .cmd am Ende des Dateinamens angegeben werden, damit die Batchdatei nicht durch eine doppelte Extension (*.cmd.txt) als Textdatei gespeichert wird.
Allgemein bietet es sich an, auch bei bekannten Dateitypen die Erweiterung (Extension) anzeigen zu lassen. Explorer oder Arbeitsplatz -> Extras -> Ordneroptionen... ->
Ansicht
. Häkchen bei Dateinamenerweiterung bei bekannten Dateitypen ausblenden entfernen. Mit dieser Einstellung ist es auch nachträglich möglich, den Dateityp einer Datei zu ändern.

Dienste können mit dem Befehl NET START [Dienstname] gestartet und mit dem Befehl NET STOP [Dienstname] beendet werden.
Im Beispiel des Nachrichtendienstes lautet der Befehl zur Beendigung NET STOP Messenger.

Den Dienstnamen siehst Du in den Eigenschaften des jeweiligen Dienstes unter Systemsteuerung -> Verwaltung -> Dienste.
Beachte die Abhängigkeiten der zu beendenden Dienste! Sind weitere Dienste von dem zu beendenden Dienst abhängig, müssen diese zuvor beendet werden.


Wie Norton Antivirus gestartet wird, entzieht sich mangels dessen Besitz meiner Kenntnis. Es wird sich aber wahrscheinlich nicht um einen Dienst handeln. In diesem Fall mußt Du die Prozesse beenden.
Dazu benötigst Du ein Programm, das Prozesse beenden kann. Schaue mal, ob Du das Programm kill.exe im Systemverzeichnis finden kannst. Wenn nicht, kannst Du das Programm kill.exe aus dem Windows 2000 Resource Kit oder das Programm pskill.exe aus den PsTools von www.sysinternals.com verwenden.
Das Programm kannst Du nach C:\WINDOWS kopieren.

Im Fall von Kill.exe lautet der Aufruf KILL -F [Prozessname | ProzessID]. Bei Angabe von -f wartet das Programm nicht darauf, das der Prozess sich selbst beendet, sondern beendet den Prozess hart. Nicht gespeicherte Daten gehen dann verloren.
Im Fall von pskill.exe lautet der Aufruf PSKILL [Prozessname | ProzessID].

Die ProzessID ist nicht zu empfehlen, da sie bei jedem Start eine andere sein kann. Den Prozessnamen kannst Du im Task-Manager (STRG+ALT+ENTF -> Tastk-Manager) finden.

Es kann auch sein, das bestimmte Prozesse sich nicht beenden lassen (Zugriff wird verweigert). Für ein Anti-Virus Programm wäre dies typisch, denn andernfalls könnten Schädlinge das Anti-Virus Programm einfach beenden.
In diesem Fall könnte es helfen, die Starteinträge in der Registry zu ändern. Aber aufgrund der zu erwartenden Fehler würde ich davon absolut abraten.


Gruß
Undertaker

Antwort 11 von kromgi

@undertaker:

vielen dank für die schnelle hilfe. mein eigentliches kernproblem ist aber: wie formuliere ich das für die verschiedenen benutzer unterschiedlich? denn ich will ja eien bestimmten dienst (ClipincServer.exe) bei nur einem benutzerkonto ständig im hintergrund laufen lassen. bei allen anderen benutzern soll dieser nicht laufen. und da in den ordnern, die du weiter oben genannt hast, garnichts drin steht, ist mir das nicht klar, wie ich das für verschiedene benutzer in der batch-datei definieren soll.

ich dachte, dass der ordner in SYSTEMROOT%\system32\GroupPolicy\User\Scripts\Logon
nicht USER heißt, sondern dass jeder user unter GroupPolicy einen eigenen unterordner hat. also z. b. SYSTEMROOT%\system32\GroupPolicy\ole\Scripts\Logon. aber das ist nicht. und somit das problem, dass ich irgendwie dem computer sagen können muss, bei welchem nutzer muß dieser dienst aus und bei welchem nicht.

ich weiß dass das bestimmt nervig ist, aber für die hilfe schon jetzt vielen dank und allen helfern und lesern ein schönes wochenende.

kromgi


Antwort 12 von Undertaker

Hi,

hast Recht. Daran hatte ich garnicht gedacht. Asche auf mein Haupt... *g*

Gebe mal SET an der Eingabeaufforderung ein, dann werden alle existierenden Umgebungsvariablen (Benutzervariablen und Systemvariablen) angezeigt.

Die Variable %USERNAME% beinhaltet den Benutzernamen des Benutzers, der sich angemeldet hat.

Aber Achtung: Die Benutzerinformationen sind nicht beim Ein-/Ausschalten verfügbar, da der Benutzer noch nicht bzw. nicht mehr angemeldet ist.

Wenn der Dienst Ablagemappe beispielsweise nur beim Benutzer ole laufen soll, sähe das Skript so aus:

@ECHO OFF

IF NOT "%USERNAME%"=="ole" NET STOP ClipSrv


Oder, wenn die zu beendenden Dienste je Benutzer unterschiedlich sind und eventuell mehrere Dienste je Benutzer beendet werden sollen, kann man auch die Befehle zu Gruppen zusammenfassen und bei falschem Benutzer überspringen:

@ECHO OFF

IF NOT "%USERNAME%"=="ole" GOTO NOTOLE
NET STOP ClipSrv
NET STOP Messenger
:NOTOLE

IF NOT "%USERNAME%"=="Administrator" GOTO NOTADMIN
NET STOP Messenger
:NOTADMIN


Noch eine Variante, die mit Windows 2000 und XP funktioniert, wenn die Namen der Dienste keine Leerzeichen enthalten ist diese:

@ECHO OFF

SET users=%SYSTEMROOT%\system32\GroupPolicy\User\Scripts\Logon\ServiceToUser.txt
FOR /F "tokens=1,2" %%a IN (%users%) DO IF "%USERNAME%"=="%%a" (NET STOP %%b)


Die zusätzlich benötigte Datei ServiceToUser.txt sähe zum vorherigen Beispiel so aus:

ole ClipSrv
ole Messenger
Administrator Messenger


Die Anführungszeichen ("), die die Vergleichswerte im IF-Befehl umschließen sind nicht unbedingt nötig, sollten aber grundsätzlich verwendet werden, weil sie Syntax-Fehler vermeiden, wenn die abzufragende Variable leer ist oder Leerzeichen enthält.

Gruß
Undertaker

Antwort 13 von kromgi

@undertaker
werde ich ausprobieren, sowie ich wieder zeit habe. bin im moment im garten beschäftigt.

vielen dank für die wirklich angagierte und zugleich ausführliche hilfe, ich melde mich so schnell wie möglich!

kromgi

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: