none
Dienst ohne Admin Rechte starten RRS feed

  • Frage

  • Guten Abend,
    wir mussten einen Rechner austauschen (Windows 10 Pro). Auf dem neuen Rechner läuft mein Code nicht mehr.
    Darin wird ein Diernst gestartet
    Code:
            If mService.Status <> ServiceProcess.ServiceControllerStatus.Running Then       'Dienst läuft nicht
                Dim ts As New TimeSpan(0, 0, 20)
                mService.Start()                                                            'Dienst starten
                mService.WaitForStatus(ServiceControllerStatus.Running, ts)                 '20 Sekunden warten, ob Dienst gestartet werden kann
            End If

    Es kommt bei Usern mit eingeschränkten Rechten (und das sind so gut wie alle unserer Mitarbeiterinnen) die Fehlermeldung, dass der Dienst auf diesem Rechner nicht gestartet werden kann. Wir haben andere WIN 10 Rechner, auf denen es problemlos läuft. Was ist da bloss an neuen Rechnern anders als an unseren 3 Jahre alten? Da haben wir in dieser Richtung nichts unternehmen müssen. Ich befürchte, dass unseren Anwendern bei einem neuen Rechner das gleiche passiert.

    Geht subinacl unter WIN 10 noch? Hab probiert

    subinacl.exe /service /grant=Britta=PTO

    aber da kommt nur eine Fehlermeldung.

    Wollte aus vb.net heraus mit runas arbeiten. Aber ich habe nicht herausgefunden, wie man damit einen Dienst starten kann. Es funktioniert wohl nur bei einem normalen Prozess.

    Könnt ihr mir etwas empfehlen, um das Problem zu beheben? Danke!

    Sonntag, 29. September 2019 07:52

Antworten

Alle Antworten

  • Am 29.09.2019 schrieb norbert3:

    wir mussten einen Rechner austauschen (Windows 10 Pro). Auf dem neuen Rechner läuft mein Code nicht mehr.
    Darin wird ein Diernst gestartet

    Welche genau W10 Version ist im Einsatz? Alter und neuer Rechner
    sind interessat. Sind das jeweils OEM Installation oder eigene
    Installationen? Welcher AV-Scanner ist im Einsatz?

    Code:

                    If mService.Status <> ServiceProcess.ServiceControllerStatus.Running
    Then             'Dienst läuft nicht
                            Dim ts As New TimeSpan(0, 0, 20)
                            mService.Start()
                    'Dienst starten
                            mService.WaitForStatus(ServiceControllerStatus.Running, ts)
                    '20 Sekunden warten, ob Dienst gestartet werden kann
                    End If

    Es kommt bei Usern mit eingeschränkten Rechten (und das sind so gut wie alle unserer Mitarbeiterinnen) die Fehlermeldung, dass der Dienst auf diesem Rechner nicht gestartet werden kann. Wir haben andere WIN 10 Rechner, auf denen es problemlos läuft. Was ist da bloss an neuen Rechnern anders als an unseren 3 Jahre alten? Da haben wir in dieser Richtung nichts unternehmen müssen. Ich befürchte, dass unseren Anwendern bei einem neuen Rechner das gleiche passiert.

    Mit welchem Benutzerkonto läuft der Dienst? Als eingeschränkter User
    oder als SYSTEM?

    aber da kommt nur eine Fehlermeldung.

    Falls sie nicht geheim ist, bitte hier posten.

    Wollte aus vb.net heraus mit runas arbeiten. Aber ich habe nicht herausgefunden, wie man damit einen Dienst starten kann. Es funktioniert wohl nur bei einem normalen Prozess.

    Ein Dienst läuft mit einem dafür zugelassenen Konto. Im Grunde kann
    das jedes Konto sein, das Konto muss nur die dafür benötigten Rechte
    haben. Das Konto muss das Recht 'Anmelden als Dienst' haben. Details
    dazu gibt es in diesem Artikel:
    https://docs.microsoft.com/de-de/windows/security/threat-protection/security-policy-settings/log-on-as-a-service

    Servus
    Winfried


    WSUS Package Publisher:
    https://github.com/DCourtel/Wsus_Package_Publisher
    HowTos zum WSUS Package Publisher
    https://www.wsus.de/wsus-package-publisher/
    GPO's: http://www.gruppenrichtlinien.de
    NNTP-Bridge für MS-Foren:
    https://github.com/JochenKalmbach/communitybridge
    GP-PACK - PRIVACY AND TELEMETRIE: http://www.gp-pack.com/

    Sonntag, 29. September 2019 09:31
  • Danke! Unglaublich, wie viel Du zu dem Problem sagen kannst. Ich fress mich jetzt mal durch:

    neuer Rechner WIN 10 Pro Version 1809 scheint OEM?

    Mit welchem Benutzerkonto läuft der Dienst? Als eingeschränkter User oder als SYSTEM?

    Wie bekomme ich das raus? Sorry, bin kein Profi ...

    Falls sie nicht geheim ist, bitte hier posten.

    SeSecurityPrivilege : Zugriff verweigert

    WARNUNG: Unable to set SeSecurityPrivilege privilege

    Error OpenSCManager : Zugriff verweigert

    Das Konto muss das Recht 'Anmelden als Dienst' haben

    Wie stelle ich das ein? Den Artikel hab ich (noch) nicht verstanden ...

    Sonntag, 29. September 2019 10:09
  • Am 29.09.2019 schrieb norbert3:

    Danke! Unglaublich, wie viel Du zu dem Problem sagen kannst. Ich fress mich jetzt mal durch:

    Wenn man einen Dienst programmiert, sollte man sich damit IMO
    auskennen. ;)

    neuer Rechner WIN 10 Pro Version 1809 scheint OEM?

    Nein, ich meinte damit die Tatsache, ist der Rechner gekauft,
    aufgestellt und benutzt worden, oder wurde er gekauft und neu
    installiert und erst dann eingesetzt?

    Mit welchem Benutzerkonto läuft der Dienst? Als eingeschränkter User oder als SYSTEM?

    Wie bekomme ich das raus? Sorry, bin kein Profi ...

    Dazu muss man kein Profi sein, ist in den Eigenschaften des Dienstes
    zu finden. Windows Taste + R drücken > services.msc [ENTER]. HIer den
    Dienst suchen und schauen was bei Anmelden als bei dem Dienst drin
    steh.

    Falls sie nicht geheim ist, bitte hier posten.

    SeSecurityPrivilege : Zugriff verweigert

    WARNUNG: Unable to set SeSecurityPrivilege privilege

    Error OpenSCManager : Zugriff verweigert

    Sonst nichts? Keine Fehlernummer? Ist OpenSCManager der Dienst um den
    es geht?

    Das Konto muss das Recht 'Anmelden als Dienst' haben

    Wie stelle ich das ein? Den Artikel hab ich (noch) nicht verstanden ...

    Einem normalen Benutzer möchte man das Recht auch nicht geben. Damit
    erhöhst Du die Rechte des angemeldeten Users und verringerst die
    Sicherheit des Unternehmens um einen nicht kleinen Faktor. Willst Du
    das wirklich?
    Servus
    Winfried


    WSUS Package Publisher:
    https://github.com/DCourtel/Wsus_Package_Publisher
    HowTos zum WSUS Package Publisher
    https://www.wsus.de/wsus-package-publisher/
    GPO's: http://www.gruppenrichtlinien.de
    NNTP-Bridge für MS-Foren:
    https://github.com/JochenKalmbach/communitybridge
    GP-PACK - PRIVACY AND TELEMETRIE: http://www.gp-pack.com/

    Sonntag, 29. September 2019 15:59
  • Wieder per Mail eine Nachricht bekommen, aber der Beitrag ist hier nicht zu sehen. Kann leider nicht antworten. Und dabei ist es uns so wichtig ...
    Montag, 30. September 2019 06:26
  • Komisch - sobald ich einen neuen Beitrag schreibe, ist plötzlich alles da.

    1. Rechner ist neu gekauft. Ist ein HP Laptop. War alles vorinstalliert. Haben am System, nichts geändert.

    2. Dienst heisst ServiceBioSFTP. Anmelden als Lokales Systemkonto. Haken nicht drin bei "Datenaustausch zw. Dienst u. Desktop"

    3. keine Fehlernummer bei subinacl, aber die Syntax ist bestimmt falsch

    4. Ja, ich will das wirklich (muss!), sonst können die Mitarbeiterinnen nicht arbeiten. Der Dienst soll nicht automatisch starten. Und es handelt sich wirklich nur um einzigen Dienst, der erlaubt werden soll.

    Grüße Norbert

    Montag, 30. September 2019 06:45
  • Am 30.09.2019 schrieb norbert3:

    Komisch - sobald ich einen neuen Beitrag schreibe, ist plötzlich alles da.

    Ein paar wenige User hier posten über die sog. NNTP-Bridge. MSFT
    kriegt es einfach nicht hin, unsere Postings immer gleich erscheinen
    zu lassen.

    1. Rechner ist neu gekauft. Ist ein HP Laptop. War alles vorinstalliert. Haben am System, nichts geändert.

    Welche genaue Build haben denn die Rechner, bei denen es funktioniert?
    Neu gekaufte Rechner installiert man, ohne die Mal- bzw. Crapware des
    Herstellers. Und HP ist neben Lenovo für mich einer der schlimmsten
    Hersteller.
    Was ist Crapware? https://de.wikipedia.org/wiki/Crapware Und was ist
    Malware? https://de.wikipedia.org/wiki/Schadprogramm

    2. Dienst heisst ServiceBioSFTP. Anmelden als Lokales Systemkonto. Haken nicht drin bei "Datenaustausch zw. Dienst u. Desktop"

    Also kann es nicht an den Usern liegen, sondern am Code. Ist der
    Dienst nur für eine bestimmte .Net Version kompiliert? Was macht der
    Dienst beim ersten Aufruf? Wird auf eine Freigabe im Netzwerk
    zugegriffen? Das riecht auch nach SFTP, sind die Ports in der Firewall
    nach außen geöffnet?

    3. keine Fehlernummer bei subinacl, aber die Syntax ist bestimmt falsch

    Die Syntax kann man in der Dokumentation nachlesen:
    https://social.technet.microsoft.com/wiki/contents/articles/51625.subinacl-a-complete-solution-to-configure-security-permission.aspx
    Du musst die CMD auch mit Rechtsklick > Ausführen als Administrator
    öffnen und dann erst loslegen.

    4. Ja, ich will das wirklich (muss!), sonst können die Mitarbeiterinnen nicht arbeiten. Der Dienst soll nicht automatisch starten. Und es handelt sich wirklich nur um einzigen Dienst, der erlaubt werden soll.

    Da der Dienst mit dem User LocalSystem läuft, hat er alle Rechte die
    er braucht. Du musst an anderer Stelle suchen.

    Du wirst den Dienst debuggen müssen:
    https://docs.microsoft.com/de-de/dotnet/framework/windows-services/how-to-debug-windows-service-applications
    https://docs.microsoft.com/de-de/visualstudio/debugger/how-to-debug-the-onstart-method?view=vs-2019
    https://stackoverflow.com/questions/125964/easier-way-to-debug-a-windows-service

    Das musste ich noch nie tun, da kann leider nichts, außer der Doku von
    MSFT, dazu beitragen.

    Servus
    Winfried


    WSUS Package Publisher:
    https://github.com/DCourtel/Wsus_Package_Publisher
    HowTos zum WSUS Package Publisher
    https://www.wsus.de/wsus-package-publisher/
    GPO's: http://www.gruppenrichtlinien.de
    NNTP-Bridge für MS-Foren:
    https://github.com/JochenKalmbach/communitybridge
    GP-PACK - PRIVACY AND TELEMETRIE: http://www.gp-pack.com/

    Montag, 30. September 2019 08:04
  • Komisch - sobald ich einen neuen Beitrag schreibe, ist plötzlich alles da.

    Das liegt daran, dass Winfried sehr wahrscheinlich über die NNTP Bridge postet. Alle Beiträge, die so reinkommen, sind im Forum erst nach einem weiteren Posting über das Forum selbst sichtbar. (Und nach meinem Posting war dann auch Winfrieds letzte Antwort mit derselben Erklärung zu sehen^^)

    Warum das so ist, weiß ich nicht, ist aber (leider) schon lange so.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport


    Montag, 30. September 2019 08:28
    Moderator
  • Hab am Wochenende mal alle 5 Rechner untersucht. Wie ich dachte ist es gar nicht. Mein Vb-Code mService.Start() funktioniert nur auf den WIN 7 Rechnern. Hier kann ich auch als eingeschränkter User mit der Desktop-App die Dienste starten, stoppen, anhalten. Ob hier schon früher einmal jemand dran rumgeschraubt hat, weiss ich nicht mehr.

    Auf allen WIN 10 Rechnern ist das nicht so. Als Admin komme ich mit der Desktop-App an die Dienste und kann sie steuern. Aber hier funktioniert auch mein Code nicht. Wirft die Exception, dass der Dienst nicht gestartet werden kann. Als eingeschränkter User geht gar nichts. Hab heute die Mitarbeiterinnen befragt und erfahren, dass sie die Funktion auf den WIN 10 Rechnern bisher nie benutzt haben. Hab ich als Chef einfach nicht gewusst. Erst wo ich jetzt einen neuen Rechner aufsetzen muss, kam das ans Tageslicht.

    Hätte gern das Problem gelöst. Könnte ich, wenn ich den Dienst auf "automatisch starten" stelle. Möchte ich aber möglichst nicht, da damit der Rechner in Abständen den Labor-Server pollt und nach neuen Befunden sucht und diese herunterlädt. Das geht schief, wenn mein Praxisprogramm nicht läuft. Deshalb soll der Dienst im Code gestartet werden.

    Montag, 30. September 2019 10:17
  • Nun hat's gefunkt. Im Link von Winfried zur Doku von subinacl hab ich die richtige Syntax gefunden. Und es funktioniert! Ich hatte bezweifelt, dass man subinacl unter WIN 10 verwenden kann, da es schon unter XP lief. Daher habe ich die Tests damit zu früh aufgegeben. Aber es ist wirklich ein tolles Tool! Der Befehl lautet

    subinacl.exe /service "ServiceBioSFTP" /GRANT=Britta=PTO

    Danke Winfried nochmal für Deine vorzügliche Hilfe!

    Schöne Grüße Norbert

    Montag, 30. September 2019 11:01
  • Am 30.09.2019 schrieb norbert3:

    Nun hat's gefunkt. Im Link von Winfried zur Doku von subinacl hab ich die richtige Syntax gefunden. Und es funktioniert! Ich hatte bezweifelt, dass man subinacl unter WIN 10 verwenden kann, da es schon unter XP lief. Daher habe ich die Tests damit zu früh aufgegeben. Aber es ist wirklich ein tolles Tool! Der Befehl lautet

    subinacl.exe /service "ServiceBioSFTP" /GRANT=Britta=PTO

    Danke Winfried nochmal für Deine vorzügliche Hilfe!

    Freut mich für Dich und Danke für die Rückmeldung. :)

    Servus
    Winfried


    WSUS Package Publisher:
    https://github.com/DCourtel/Wsus_Package_Publisher
    HowTos zum WSUS Package Publisher
    https://www.wsus.de/wsus-package-publisher/
    GPO's: http://www.gruppenrichtlinien.de
    NNTP-Bridge für MS-Foren:
    https://github.com/JochenKalmbach/communitybridge
    GP-PACK - PRIVACY AND TELEMETRIE: http://www.gp-pack.com/

    • Als Antwort markiert norbert3 Sonntag, 6. Oktober 2019 09:40
    Montag, 30. September 2019 12:01