CreateProcessAsUser ERROR_PRIVILEGE_NOT_HELD-el
2012-02-21T00:18:57+01:00
2012-02-21T10:52:54+01:00
2022-08-05T14:36:22+02:00
kistikvi
Sziasztok!
egy W2008-as TerminalServeren én mint adminként (RDP-n fellépve) a többi bejelentkezett userek-nél szeretnék egy programot futtatni.
E-hez találtam a
How to launch a process in a Terminal Session-t.
Viszont a WTSQueryUserToken ERROR_PRIVILEGE_NOT_HELD 1314-el tér vissza.
Tovább keresgetve próbálom neki megadni a privilégiumot AdjustTokenPrivileges-el, de itt a SE_ASSIGNPRIMARYTOKEN_NAME megadásakkor 1300-as "Not all of the privileges were granted" hibát kapom.
Mások is beleütköztek ebbe, de megoldást nem találtam.

Végül is amit készíteni szeretnék, az egy How to launch a process in a Terminal Session #2 hasonló program.

Előre is köszönöm az esetleges segítő hozzászólásokat.
Mutasd a teljes hozzászólást!

How does it work?

The program needs to run in the context of the Localsystem user, therefore it temporarily installs itselfs as service and start itsself. With the WTSQueryUserToken it obtains the Primary User token of the requested Terminal Session. Finally the process is launched with CreateProcessAsUser and the service deletes itsself.

temporarily installs itselfs as service

Bocs, ha akadékoskodom, de, mintha pont ez lenne ide írva.
Lehet, hogy az angol tudásom a hiányos, de nem hiszem, hogy félreolvasom.
Mutasd a teljes hozzászólást!

  • Általad belinkelt oldalon:
    The program needs to run in the context of the Localsystem user, therefore it temporarily installs itselfs as service and start itsself.

    Egy másik lapon olvastam:
    WTSQueryUserToken should only be used by services that don't have a user context through impersonation.


    Ha ezek igazak, akkor nem fogod tudni form applicationnal megcsinálni, a programodnak sevice alkalmazásként kell futni, maximum, közvetve használhatsz form applicationt.

    Ki kell próbálni
    Delphi - New - Service application
    Mutasd a teljes hozzászólást!
  • Igen, sajna ezeket én is olvastam
    De a How to launch a process in a Terminal Session #2-ben megoldották, és valóban működik is!
    Gondolom nem bonyolították el annyira, hogy magától Service-ként települ, indul, futtat, ...

    Viszont a Jedi-s példákban is csak Service-ként találtam hasonlót.

    Mutasd a teljes hozzászólást!

  • How does it work?

    The program needs to run in the context of the Localsystem user, therefore it temporarily installs itselfs as service and start itsself. With the WTSQueryUserToken it obtains the Primary User token of the requested Terminal Session. Finally the process is launched with CreateProcessAsUser and the service deletes itsself.

    temporarily installs itselfs as service

    Bocs, ha akadékoskodom, de, mintha pont ez lenne ide írva.
    Lehet, hogy az angol tudásom a hiányos, de nem hiszem, hogy félreolvasom.
    Mutasd a teljes hozzászólást!
  • Sőt be is települ, futtasd egy olyan session-re ami nem létezik...
    Várd meg amíg kiírja, hogy egy üzenetet akar megjeleníteni, ne okézd el, csak keress rá registry ben erre: runinsession !

    És láss csodát: Ott van a szervizek között.
    Mutasd a teljes hozzászólást!
  • Meglehet, igazad lesz
    Csak nem akartam elhinni
    De így, hogy megerősíted.

    Készül a Service...

    Egyelőre kösz!

    Mutasd a teljes hozzászólást!
  • Igazad van!

    Én a Serveren futtattam, és ott figyelmeztetés nélkül fut le,
    A folyamatok között meg nem érkeztem elkapni.

    Köszönöm!

    Mutasd a teljes hozzászólást!
abcd