enrixk
Goto Top

Dienste sollen auch nach Logoff weiterlaufen

Hallo allerseits,

ich gehöre in einem Netzwerk mit Active Directory -Domäne zur Gruppe Domain-Admins. In diesem Netzwerk befindet sich u. a. ein normaler Windows-Client, auf dem ich mich angemeldet habe, um einen Docker-Container zu starten. Bei dem Docker-Container handelt es sich um einen GitLab-Server.

Mein Problem ist nun das folgende: Wenn ich mich an dem Windows PC wieder abmelde, ist der Docker-Container nicht mehr im lokalen Netzwerk erreichbar. Dieses Problem wirf für mich die Frage auf, wie man grundsätzliche Dienste als Domain-Admin startet. Nach dem Abmelden schließt der Benutzerprofildienst sämtliche Prozesse des abzumeldenden Benutzers.

Vielen Dank für eure Hilfe!

Content-ID: 4053838668

Url: https://administrator.de/forum/dienste-sollen-auch-nach-logoff-weiterlaufen-4053838668.html

Ausgedruckt am: 22.12.2024 um 17:12 Uhr

2423392070
2423392070 25.09.2022 um 08:48:26 Uhr
Goto Top
Ich stelle mir die Frage, wer die Verantwortung für deine Berechtigung trägt. Das wirkt auf mich so, als würde ein Kind die Schusswaffe des Vaters in den Händen halten.


Wenn du dich selbst ernst nehmen willst, dann gibst du deine Domain-Admin Rechte auf und startest den Dienst als System-Irgendwasdienst oder (group) (manged) Service Account.
Anderenfalls könnte ich dir ein Word Dokument mit einem service.dotm Anhang senden, dann sind alle Probleme gelöst. Versprochen.
Enrixk
Enrixk 25.09.2022 um 09:13:04 Uhr
Goto Top
Zitat von @2423392070:

Ich stelle mir die Frage, wer die Verantwortung für deine Berechtigung trägt. Das wirkt auf mich so, als würde ein Kind die Schusswaffe des Vaters in den Händen halten.

Es handelt sich um ein Testnetzwerk, das ich zur Verfügung gestellt bekommen habe zu Ausbildungszwecken.

Was genau meinst du mit "startest den Dienst als System-Irgendwasdienst"?
Vision2015
Vision2015 25.09.2022 um 09:14:12 Uhr
Goto Top
Moin...
Zitat von @Enrixk:

Hallo allerseits,

ich gehöre in einem Netzwerk mit Active Directory -Domäne zur Gruppe Domain-Admins. In diesem Netzwerk befindet sich u. a. ein normaler Windows-Client, auf dem ich mich angemeldet habe, um einen Docker-Container zu starten. Bei dem Docker-Container handelt es sich um einen GitLab-Server.
Oha...

Mein Problem ist nun das folgende: Wenn ich mich an dem Windows PC wieder abmelde, ist der Docker-Container nicht mehr im lokalen Netzwerk erreichbar. Dieses Problem wirf für mich die Frage auf, wie man grundsätzliche Dienste als Domain-Admin startet. Nach dem Abmelden schließt der Benutzerprofildienst sämtliche Prozesse des abzumeldenden Benutzers.
äh ja... abgesehen von der Tatasache, das sowas eher nicht auf einen AP gehört, solltest du es unterlassen solche Dienste als Administrator laufen zu lassen!
da kommt wirklich die Frage auf, wer dir Domain-Admin Rechte gegeben hat- nicht das ich dir das nicht gönne, aber du scheinst erhebliche Lücken im Fachbereich zu haben!
wenn du so weiter machst, dauert der erste große oder kleine Unfall nicht mehr lange!
du wärst da aber auch nicht der erste!
und zum Schluss ein kleiner Tipp:
Arbeite nur mit admin / root rechten wenn es nötig ist!
in deinem Fall, war das völlig unnötig!


Vielen Dank für eure Hilfe!
Frank
Vision2015
Vision2015 25.09.2022 um 09:16:50 Uhr
Goto Top
Moin...
Zitat von @Enrixk:

Zitat von @2423392070:

Ich stelle mir die Frage, wer die Verantwortung für deine Berechtigung trägt. Das wirkt auf mich so, als würde ein Kind die Schusswaffe des Vaters in den Händen halten.

Es handelt sich um ein Testnetzwerk, das ich zur Verfügung gestellt bekommen habe zu Ausbildungszwecken.

Was genau meinst du mit "startest den Dienst als System-Irgendwasdienst"?
na sowas...
Frank
Enrixk
Enrixk 25.09.2022 aktualisiert um 09:32:36 Uhr
Goto Top
Oh...okay...dann habe ich jetzt bezüglich Sicherheit auch noch was wichtiges gelernt. Ich muss die Fragestellung konkretisieren: Es geht mir darum, auf dem PC einen Docker Container laufen zu lassen, wenn niemand eingeloggt ist. Der Dienst soll nicht als Admin laufen. Welche Möglichkeiten habe ich denn da?

Ich könnte Docker auf dem PC bspw. als Service registrieren mit docker --register-service.

Wäre das ein weg in die richtige Richtung?
Vision2015
Vision2015 25.09.2022 um 10:02:10 Uhr
Goto Top
Zitat von @Enrixk:

Oh...okay...dann habe ich jetzt bezüglich Sicherheit auch noch was wichtiges gelernt. Ich muss die Fragestellung konkretisieren: Es geht mir darum, auf dem PC einen Docker Container laufen zu lassen, wenn niemand eingeloggt ist. Der Dienst soll nicht als Admin laufen. Welche Möglichkeiten habe ich denn da?

Ich könnte Docker auf dem PC bspw. als Service registrieren mit docker --register-service.

Wäre das ein weg in die richtige Richtung?

hast du meinen link nicht gelesen?

Frank
2423392070
2423392070 25.09.2022 um 11:14:14 Uhr
Goto Top
jsysde
jsysde 25.09.2022 um 12:31:46 Uhr
Goto Top
Mahlzeit.

Zitat von @Enrixk:
[...]wie man grundsätzliche Dienste als Domain-Admin startet.[...]
Da kann ich nur ins gleiche Horn tuten wie meine Vorredner: Man startet grundsätzlich Dienste niemals mit Adminrechten. Und ein "Dienst" läuft per se immer unabhängig von der An-/Abmeldung eines Benutzers - sonst wäre es kein Dienst, sondern eine Anwendung. face-wink

Der Link von @2423392070 liefert dir all die Infos, die du benötigst.

Cheers,
jsysde
MacLeod
MacLeod 25.09.2022 um 17:04:16 Uhr
Goto Top
Hallo
Hier mal ein konkreter Lösungsvorschlag im Gegensatz zu all den "wie man es nicht machen sollte" Antworten.
Wir hatten die gleiche Lernkurve und mit Docker für Desktop angefangen. Ist gut zum Entwickeln aber eben nicht geeignet für produktiv.
Hol dir ein NAS von Qnap. Wir haben zum Testen und auch produktiv jeweils ein TS253 mit 16GB RAM und 2 x 8TB Ironwolf. Dort installierst Du den Containerdienst, danach installierst Du den Portainer mit dem man den Dienst voll unter Kontrolle hat. Danach SWAG als ReverseProxy mit R3 Zertifikaten verwenden und final den Gitlab Container und alle weiteren wie Du möchtest
So hast Du nicht umständlich ein Docker auf Linux auf Windows sondern direkt auf Linux wo es hingehört. Es lässt sich grafisch verwalten, das Qnap braucht fast keinen Strom (ist ja wichtig heute), ist 24h verfügbar, hat ausreichend Power und lässt auch sonst keine Wünsche offen.
MfG,
MacLeod
jsysde
jsysde 25.09.2022 aktualisiert um 17:30:12 Uhr
Goto Top
N'Abend.

Zitat von @MacLeod:
[...]Hier mal ein konkreter Lösungsvorschlag im Gegensatz zu all den "wie man es nicht machen sollte" Antworten.
Naja, ich hätte ihm auch schreiben können, er soll sich nen Raspi holen und es darauf installieren - das war aber nicht die Frage. Hier geht es doch irgendwie um mehr, als die Erkenntnis, dass Docker besser auf nem Linux produktiv zum Einsatz kommen sollte als unter Windows...

Cheers,
jsysde
Enrixk
Enrixk 25.09.2022 um 18:31:35 Uhr
Goto Top
Vielen Dank für die Tipps. Leider kann ich nur wenig davon tatsächlich umsetzen, weil mir dazu noch das Wissen fehlt.

@Vision2015 danke für den nettgemeinten Link, aber das kann ich leider nicht umsetzen. Mir fehlt das Verständnis, wie ich damit den Container konkret starten kann.

Ich sitze immer noch an dem Problem, einen Docker Container während des System-Starts auszuführen. Wie ich mitlerweile mitbekommen habe, bin ich nicht der Einzige, der sich daran die Zähne ausbeißt.

In diesem Beitrag werden Lösungsmöglichkeiten vorgestellt.

Dort wurde das Problem mit dem folgenden Powershell-Skript gelöst:

$trigger = New-ScheduledTaskTrigger -AtStartup
$trigger.Delay = 'PT1M'  

$action = New-ScheduledTaskAction -Execute 'C:\Program Files\Docker\Docker\Docker Desktop.exe'  

$settings = New-ScheduledTaskSettingsSet -Compatibility Win8 -StartWhenAvailable -RestartCount 999
$settings.ExecutionTimeLimit = 'PT0S'  
$settings.RestartInterval = 'PT1M'  

Register-ScheduledTask -Action $action -Trigger $trigger -TaskName Docker -Settings $settings -User $env:UserName -Password (ConvertFrom-SecureString (Read-Host -Prompt 'Password' -AsSecureString) -AsPlainText)  

Kann mir jemand beim Interpretieren des Skriptes helfen? Warum muss man den usernamen und das Password angeben?
2423392070
2423392070 26.09.2022 um 01:44:55 Uhr
Goto Top
Das Script trägt etwas in den Task-Planer ein. Dann auch noch Docker Desktop.

Verstehe ich richtig, du kannst einen bereits installierten und lauffähigen Dienst nicht den User wechseln in der Dienstverwaltung?
Enrixk
Enrixk 26.09.2022 um 09:11:48 Uhr
Goto Top
Zitat von @2423392070:

Das Script trägt etwas in den Task-Planer ein. Dann auch noch Docker Desktop.

Verstehe ich richtig, du kannst einen bereits installierten und lauffähigen Dienst nicht den User wechseln in der Dienstverwaltung?

Hallo Unbelanglos, vielen Dank für deinen Tipp. Ich weiß nicht worauf deine Frage abzielt. Wenn du mir damit indirekt sagen möchtest, dass ich keine Anhnung habe, dann liegst du damit richtig. Ich finde allerdings, dass sowas nicht in ein seriöses Forum gehört und ich finde dieses Forum eigentlich sehr seriös.
2423392070
2423392070 26.09.2022 um 11:07:04 Uhr
Goto Top
Es ist nicht seriös deinen Skills abzufragen?
Deine Supporter müssen schon wissen, dass du nicht services.msc ausführen kannst.
Enrixk
Enrixk 26.09.2022 um 12:18:30 Uhr
Goto Top
Entschuldige, dann habe ich das falsch aufgeschnappt.

Ich habe mir deinen Beitrag von oben nochmal durchgelesen und versucht, zu vertehen was du mit "...du...startest den Dienst als System-Irgendwasdienst oder (group) (manged) Service Account" meinst.

Wenn ich ganz einfach denke, würde ich das so verstehen, dass man einen lokalen Benutzer anlegt und ihm den Dienst über die Windows-Aufgabenplanung bzw. services.msc zuweist. Gibt es an diesem Ansatz etwas zu meckern? Mich persönlich stört daran, dass mit wachsender Dienst-Anzahl natürlich auch die Anzahl der Benutzer wächst, die für die Ausführung der Dienste benötigt werden. Demzufolge wird das wahrscheinlich nicht 100% dem entsprechen, was du meinst.

Vermutlich existiert unter Windows eine Art "recommended approach", wie man Dienste sicher und korrekt startet.
Möglicherweise ist dieser "recommended approach" genau das, was @Vision2015 verlinkt hat:

sc.exe create Servername binPath= "Serverpfad -k Instanzname"  
start= Starttyp obj= Kontoname password= Kennwort 

Leider sind mir in der Syntax ein paar Dinge unklar.

  • Kann ich den Wert für binPath auf C:\Program Files\Docker\Docker/Docker Desktop.exe setzen?
  • Muss ich als Wert für obj mein Admin-Konto angeben, oder erstelle ich dafür einen separaten lokalen Benutzer, der keine Admin-Rechte besitzt?

Kannst du mir da nochmal helfen?
MacLeod
MacLeod 26.09.2022 um 12:41:54 Uhr
Goto Top
Erklärung in Kurzform:
https://www.coretechnologies.com/products/AlwaysUp/Apps/StartDockerDaemo ...

Nur das im grünen Kasten. Einfacher geht es nimmer. Aber: Windows 10 braucht je nach Docker Auslastung immer wieder mal einen Neustart. Die Ressourcen schwinden dahin. Ist halt so bei Windows.
MfG,
MacLeod
Patrick-IT83
Patrick-IT83 26.09.2022 um 13:29:25 Uhr
Goto Top
Zitat von @MacLeod:

Erklärung in Kurzform:
https://www.coretechnologies.com/products/AlwaysUp/Apps/StartDockerDaemo ...

Nur das im grünen Kasten. Einfacher geht es nimmer. Aber: Windows 10 braucht je nach Docker Auslastung immer wieder mal einen Neustart. Die Ressourcen schwinden dahin. Ist halt so bei Windows.
MfG,
MacLeod

Das AlwaysUP ist genial, kostet zwar paar Euros, macht aber seinen "Dienst" hervorragend.
2423392070
2423392070 26.09.2022 aktualisiert um 17:01:00 Uhr
Goto Top
Zitat von @Enrixk:

Entschuldige, dann habe ich das falsch aufgeschnappt.

Ich habe mir deinen Beitrag von oben nochmal durchgelesen und versucht, zu vertehen was du mit "...du...startest den Dienst als System-Irgendwasdienst oder (group) (manged) Service Account" meinst.

Wenn ich ganz einfach denke, würde ich das so verstehen, dass man einen lokalen Benutzer anlegt und ihm den Dienst über die Windows-Aufgabenplanung bzw. services.msc zuweist. Gibt es an diesem Ansatz etwas zu meckern? Mich persönlich stört daran, dass mit wachsender Dienst-Anzahl natürlich auch die Anzahl der Benutzer wächst, die für die Ausführung der Dienste benötigt werden. Demzufolge wird das wahrscheinlich nicht 100% dem entsprechen, was du meinst.

Vermutlich existiert unter Windows eine Art "recommended approach", wie man Dienste sicher und korrekt startet.
Möglicherweise ist dieser "recommended approach" genau das, was @Vision2015 verlinkt hat:

sc.exe create Servername binPath= "Serverpfad -k Instanzname"  
start= Starttyp obj= Kontoname password= Kennwort 

Leider sind mir in der Syntax ein paar Dinge unklar.

  • Kann ich den Wert für binPath auf C:\Program Files\Docker\Docker/Docker Desktop.exe setzen?
  • Muss ich als Wert für obj mein Admin-Konto angeben, oder erstelle ich dafür einen separaten lokalen Benutzer, der keine Admin-Rechte besitzt?

Kannst du mir da nochmal helfen?

Soll nicht jemand gleich deinen PC und Kopf bedienen?

Von Google hast Du schon Mal gehört?
group manged Service Account
manged Service Account
Service Account
Services.msc

Hast du die Diensteverwaltung überhaupt verstanden? Wir wissen ja nicht Mal wo wir anfangen sollen.

Hast Du Mal an Linux gedacht? Könnte einfacher werden.

Man kann auch nicht zu viele User für Dienste haben. Recommended approach ist aber: weniger ist mehr. Weniger Rechte, nur das Nötigste, so granular wie möglich berechtigt.

Domain-Admins können sowas automatisieren.