Ich möchte ein Anmeldeskript (Win 10 Pro) erstellen, mit dem der Synergie-Dienst beim Anmelden / Abmelden für einen bestimmten Benutzer gestartet / gestoppt wird.
Problem ist, dass "net start synergy" den Zugriff verweigert 5, da es nicht von erhöhten Benutzer ausgeführt wird.
Also ... gibt es eine Problemumgehung, die ich verwenden könnte ?!
------------ LÖSUNG --------------
Ich habe das Subinacl-Tool (von Microsoft) verwendet, um dem Benutzer das Recht zu erteilen, den Synergy-Dienst zu starten / zu stoppen / anzuhalten
subinacl.exe /service Synergy /grant=KitchenComputer\reinis-ubnt=PTO
Dann habe ich Task Scheduler verwendet und zwei Aufgaben erstellt. Eine Aufgabe wurde durch die Sperre der Arbeitsstation ausgelöst, die andere durch die Sperre der Arbeitsstation (es gibt solche Auslöser !!!). Dann habe ich ein einfaches Shell-Skript erstellt, um den Dienst mit "net stop synergy" zu beenden. Um den Dienst zu starten, habe ich die folgenden Shell-Befehle verwendet:
if %username% == reinis-ubnt (
net start Synergy
)
In Bezug auf Subinacl und das Gewähren von Benutzerrechten zum Starten des Dienstes habe ich mich auf diese Ressource verlassen - http://woshub.com/set-permissions-on-windows-service/
Vielen Dank, dass Sie Superuser für die Unterstützung !!!
Antworten:
Diese Antwort behandelt das Stoppen des Prozesses für den Benutzer. Außerdem können Sie Schritte implementieren, um den Dienst mithilfe des
runas
Befehls wie gewünscht auszuführen (vorausgesetzt, das Konto "Nicht-Administrator" ist zur Ausführung von Powershell / CMD berechtigt).Wenn Sie einen lokalen PC verwenden (wie in, Sie sind kein Mitglied einer Domäne), können Sie einen "Task-Zeitplan" für die Anmeldung implementieren und als anderer Benutzer ausführen, was hier erklärt werden kann . Wenn Sie festlegen, dass dieser Dienst als ein anderer Benutzer mit den höchsten Berechtigungen ausgeführt wird, sollten Sie in der Lage sein, den Dienst beim Start zu bearbeiten.
Wenn dies zu schwierig ist (oder der Benutzer, der sich am PC anmeldet, ein Administrator ist), können Sie ein PowerShell-Skript erstellen, das als Administrator ausgeführt werden soll:
Quelle
Hinweis : Ich weiß, dass Sie sagten, der Benutzer sei kein Administrator, aber dies könnte anderen helfen, weshalb ich es hinzugefügt habe.
Wenn wir sehr faul sind, können wir den
runas
Befehl innerhalb des PowerShell / Batch-Skripts verwenden, das wir implementieren möchten. Die Anmeldeinformationen müssen jedoch in einem sicheren Prozess gespeichert werden (wie im Beispiel, nicht im Nur-Text-Format).Lokaler Gruppenrichtlinien-Editor
Fügen Sie einfach ein Computer Side Startup / Shutdown-Skript hinzu, um den Dienst aufzurufen und zu beenden:
runas
um diegpedit.msc
Datei auszuführen ;Hinzufügen eines vordefinierten Skripts zum Ausführen der Datei:
quelle