marconb
Goto Top

Dienst ohne Adminrechte soll Script ausführen welches Adminrechte benötigt - wie lösen.

Hallo, bite um eine kurze Hilfestellung.

Ich habe eine USV die im E-Falle per dort hinterlegtem Batchdateiverweis, die entsprechenden Befehle ausführt.

In dieser Batchdatei, will ich nun den SQLServer Dienst herunter fahren. Hierzu benötige ich Adminrechte, da der Standardaccount des Computers nur Benutzerrechte hat.

Um dieses Problem zu Lösen habe ich mit runasspc eine verschlüsselte ausführung von dem Befehl erstellt.

Wenn ich die Batchdatei nun per Hand starte, funktioniert alles hervorragend.

Führe ich einen USV Test aus, wird der SQL Server Dienst jedoch nicht beendet. Vermutlich liegt es daran, das der Dienst der für die USV läuft nur mit Benutzerrechten ausgestattet ist (lokales System). Stelle ich nun ein, dass der USV Dienst mit Adminrechten ausgeführt wird, dann lässt sich der SQL Server Dienst auch beim Shutdown vernünftig beenden.

Soweit so gut.

Nun möchte ich aber ungerne den Dienst als Admin ausführen lassen. Sicherheitsrisiko wäre z.B. das an der Batchdatei von jemandem was geändert wird und dann sonstwas mit dem System gemacht werden könnte, da ja alles als Admin ausgeführt wird.

Ich gehe mal davon aus, das der USV Dienst die rechte auf die Batchdatei vererbt, kann man das nicht irgendwie abändern? Die Lösung mit meinem verschlüsselten runasspc Befehl wäre ja eigentlich viel sicherer und praktikablerer was auch den Einrichtungsaufwand für viele solcher Systeme anginge.

Schon mal Danke für Hilfe.

Content-Key: 146610

Url: https://administrator.de/contentid/146610

Printed on: April 26, 2024 at 03:04 o'clock

Member: kingkong
kingkong Jul 09, 2010 at 15:40:16 (UTC)
Goto Top
Wenn Du die Batchdatei so abspeicherst, dass nur ein Admin an sie heran kommt, dann sollte das doch kein Problem sein. Außerdem war ich bisher der Meinung, dass das Systemkonto durchaus quasi Adminrechte (= Vollzugriff auf das System) hätte. Schau mal unter [1]. Nach dieser Beschreibung zu urteilen ist dem auch so...

[1] http://technet.microsoft.com/de-de/library/bb680595.aspx
Member: DerWoWusste
DerWoWusste Jul 09, 2010 at 20:04:26 (UTC)
Goto Top
Hi.
Du lässt ein paar Infos bei Seite: Welches Betriebssystem? Arbeitet die USV-Software wirklich nicht bereits mit Systemrechten (als Dienst)? Wäre anzunehmen.
Andernfalls: erstelle einen geplanten Task mit geeignetem Benutzerkonto. Diesen kann Dann Deine Batch starten. Was der Task wiederum macht, steht in einer Batch, die möglichst gar nicht auf dem Rechner selbst liegt, sondern auf einer Freigabe, auf die alle nur Lesezugriff haben. Der Task ist nur vom Ersteller veränderbar.
Member: filippg
filippg Jul 09, 2010 at 23:22:52 (UTC)
Goto Top
Hallo,

bist du dir sicher, dass der Dienst die Batchdatei überhaupt ausführen kann? Ich kenne das von Scheduled Tasks: man erstellt eine Batchdatei, testet die mit Nutzer x, richtet dann einen Scheduled Task ein, der als Nutzer x ausgeführt wird, und passieren tut - nichts. Die cmd kann von "herkömmlichen" Nutzern nämlich nur ausgeführt werden, wenn diese auch interaktiv angemeldet sind (Berechtigung über entsprechende Built-In Gruppe) - was weder ein Scheduled Task, noch ein Dienst ist. Siehe http://support.microsoft.com/kb/867466

Gruß

Filipp

Edit: okay, Local System sollte per default zum Ausführen berechtigt sein. Aber sicherheitshalber mal checken.
Member: MarcoNB
MarcoNB Jul 12, 2010 at 12:56:29 (UTC)
Goto Top
Hallo noch mal,

heute wieder Arbeit und ich bin wieder an dem Thema dran.

Also, auch wenn der Link zum lokalen Konto (unter dem mein Dienst standardgemäß, wie oben bereits erwähnt, ausgeführt wird) sich um System Center Configuration Manager handelt, wird das Prinzip ja sicher systemübergreifend so sein.

Betriebssystem hatte ich in der Tat nicht angegeben, es ist: Windows XP

Ja der Dienst kann die Batch ausführen, da ja einige Teile der Batchdatei abgearbeitet werden.

Nach einigem rumtesten, geht nun heute einfach net stop in der Batchdatei, wie von Anfang an gewünscht. Somit ist die Datei auch vor unberechtigtem Editieren geschützt. Es funktioniert nun erstmal, aber keiner weiß warum. ;-p

Evtl. hätte es ja immer funktioniert, weil der Dienst die erforderlichen Rechte hat, die Ausführung über die CMD per Hand jedoch nicht und dann bin ich auf den runasspc Trick gekommen, der aber komischer Weise nicht im Zusammenhang mit dem Dienst funktioniert, jedoch aber einzelen per CMD. Also das hört sich sicher alles verwirrend an, aber ist es auch für mich ein wenig.

Da dies so ist, lasse ich den Beitrag zunächst noch offen. Vielleicht hat ja jemand hier noch interessante weitere Hinweise o. Erklärungen.

Die USV ist übrigens eine Galaxy 3000 von MGE, läuft jetzt unter Schneider Electric bzw. APC.

Schon mal schönen Dank für die bisherige Hilfe.