<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Aktuell angemeldeten Benutzer ermitteln]]></title><description><![CDATA[<p>Hallo!</p>
<p>Für die Funktion CreateProcessAsUser benötige ich das Handle des aktuell angemeldeten Benutzers.</p>
<p>Hintergrund: Ich habe einen Dienst, der unter bestimmten Bedingungen eine Anwendung startet. Diese Anwendung soll dann unter dem aktuell angemeldeten Benutzer laufen, bzw. nicht gestartet werden, wenn kein Benutzer angemeldet ist.</p>
<p>Wie kann ich das Handle ermitteln?</p>
<p>Vielen Dank im Voraus.</p>
<p>Rob'</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/169794/aktuell-angemeldeten-benutzer-ermitteln</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 19:44:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/169794.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 08 Jan 2007 22:14:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Aktuell angemeldeten Benutzer ermitteln on Mon, 08 Jan 2007 22:14:21 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Für die Funktion CreateProcessAsUser benötige ich das Handle des aktuell angemeldeten Benutzers.</p>
<p>Hintergrund: Ich habe einen Dienst, der unter bestimmten Bedingungen eine Anwendung startet. Diese Anwendung soll dann unter dem aktuell angemeldeten Benutzer laufen, bzw. nicht gestartet werden, wenn kein Benutzer angemeldet ist.</p>
<p>Wie kann ich das Handle ermitteln?</p>
<p>Vielen Dank im Voraus.</p>
<p>Rob'</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1206071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1206071</guid><dc:creator><![CDATA[Rob&#x27;]]></dc:creator><pubDate>Mon, 08 Jan 2007 22:14:21 GMT</pubDate></item><item><title><![CDATA[Reply to Aktuell angemeldeten Benutzer ermitteln on Tue, 09 Jan 2007 00:29:00 GMT]]></title><description><![CDATA[<p>Hab noch die sowas gemacht, aber vielleicht...<br />
Erstmal denke ich wirst du rausbekommen müssen welche window station du verwenden willst. Entweder nimmst du dazu EnumWindowStations, oder du verwendest immer &quot;winsta0&quot;, oder ... weiss nicht. Sei dir halt darüber im klaren dass es mehrere window stations geben kann (Terminal Services/Remote Desktop Connection), und sogar mehrere window stations wo der selbe User eingeloggt ist (!).</p>
<p>Wenn du den Namen der window station hast kannst du die mittels OpenWindowStation aufmachen. Wenn du das Handle hast solltest du mittels GetUserObjectInformation(hWinSta, UOI_USER_SID, ...) die SID des eingeloggten Users abfragen können (wobei das jetzt nicht mehr als ein &quot;educated guess&quot; ist).<br />
EDIT: wenns mit der window station nicht klappt kannst du vielleicht den default desktop der window station aufmachen, und dann mit dessen Handle GetUserObjectInformation aufrufen... /EDIT</p>
<p>Nochmal EDIT: Und zu der SID musst du dann den Usernamen und das Passwort ermitteln <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> - was das grösste Problem sein wird. Argh, ich denke das wird dir nicht viel weiter helfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> /EDIT</p>
<p>Weiters solltest du CreateProcessWithLogonW die window station und den desktop mitteilen wo du den Process laufen haben willst. Wie es mit CreateProcessAsUser aussieht weiss ich nicht.</p>
<p>Und guck dir evtl. <a href="http://support.microsoft.com/kb/327618/en-us" rel="nofollow">kb327618</a> sowie <a href="http://support.microsoft.com/kb/165194/en-us" rel="nofollow">kb165194</a> an (weiss nicht inwieweit dich das betrifft wenn der User sowieso der eingeloggte user der window-station ist).</p>
<p>Vielleicht hilft dir das ja etwas weiter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1206115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1206115</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 09 Jan 2007 00:29:00 GMT</pubDate></item><item><title><![CDATA[Reply to Aktuell angemeldeten Benutzer ermitteln on Tue, 09 Jan 2007 07:52:02 GMT]]></title><description><![CDATA[<p>Hallo hustbaer,</p>
<p>danke für Deine schnelle Antwort (hattest Du Schlafstörungen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> ). Das Problem mit den verschiedenen Desktops ist mir bekannt. Die Anwendung, die der Dienst startet, soll immer auf winsta0/default gestartet werden. Das funktioniert auch einwandfrei (wird in STARTUPINFO bei CreateProcess angegeben). Das Problem ist, dass die Anwendung dann unter dem System-Account läuft.</p>
<p>Bin dankbar für weitere Hinweise.</p>
<p>Robb'</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1206150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1206150</guid><dc:creator><![CDATA[Rob&#x27;]]></dc:creator><pubDate>Tue, 09 Jan 2007 07:52:02 GMT</pubDate></item><item><title><![CDATA[Reply to Aktuell angemeldeten Benutzer ermitteln on Tue, 09 Jan 2007 10:11:00 GMT]]></title><description><![CDATA[<p>Ich glaube das ist aus Sicherheitsgründen nicht möglich einen Prozess in einem anderen Kontext zu starten ohne das Du die detailierten Anmeldeinfos kennst!<br />
Wäre ja auch eine fatale Sicherheitslücke, wenn ein Service im LocalSystem Account auf einmal unter meinem Sicherheitskonext (ohne mein Wissen) ein Programm starten könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1206237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1206237</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 09 Jan 2007 10:11:00 GMT</pubDate></item><item><title><![CDATA[Reply to Aktuell angemeldeten Benutzer ermitteln on Tue, 09 Jan 2007 15:46:44 GMT]]></title><description><![CDATA[<p>Denke ich auch. 100% sicher bin ich aber nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Es müsste aber auf jeden Fall gehen wenn man die Credentials des Users hat, denn dann kann man ja CreateProcessWithLogonW verwenden.</p>
<p>Wenn man irgendwie an ein &quot;impersonation token&quot; oder ein &quot;primary token&quot; für den User drankommt müsste es fast gehen, denn dann müsste man CreateProcessWithTokenW verwenden können. Wobei diese Feststellung das Problem natürlich nicht löst, sondern bloss in &quot;wie bekomme ich das dumme user token&quot; abändert. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1206394</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1206394</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 09 Jan 2007 15:46:44 GMT</pubDate></item><item><title><![CDATA[Reply to Aktuell angemeldeten Benutzer ermitteln on Wed, 10 Jan 2007 07:23:44 GMT]]></title><description><![CDATA[<p>Den Verdacht hatte ich auch schon, dass es aus Sicherheitsgründen evtl. gar nicht möglich ist. Allerdings wird die Anwendung ja nicht durch irgendwas gestartet, sondern durch einen Dienst mit vollen Zugriffsrechten.</p>
<p>Bin weiter auf der Suche nach dem &quot;dummen Token&quot;...</p>
<p>Danke.</p>
<p>Rob'</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1206774</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1206774</guid><dc:creator><![CDATA[Rob&#x27;]]></dc:creator><pubDate>Wed, 10 Jan 2007 07:23:44 GMT</pubDate></item><item><title><![CDATA[Reply to Aktuell angemeldeten Benutzer ermitteln on Wed, 10 Jan 2007 07:57:06 GMT]]></title><description><![CDATA[<p>Rob' schrieb:</p>
<blockquote>
<p>Den Verdacht hatte ich auch schon, dass es aus Sicherheitsgründen evtl. gar nicht möglich ist. Allerdings wird die Anwendung ja nicht durch irgendwas gestartet, sondern durch einen Dienst mit vollen Zugriffsrechten.</p>
</blockquote>
<p>Dann kannst Du diese <strong>Zugriffsrechte</strong> verwenden und keine anderen. Es gibt nirgends ein Recht mit dem es Dir erlaubt wäre Dir <strong>andere</strong> Rechte einfach zu nehmen ohne dafür auch ein Kennwort oder eine bestimmte Sicherungsprozedur zur durchlaufen.</p>
<p>Und der angemeldete Benutzer läuft eben in einem anderen Sicherheitskontext als Dein Service!</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /> <strong>Idee:</strong> Wenn nun natürlich in dem Kontext des Anwenders auch ein Prozess läuft, der von Deinem Service ein entsprechendes <em>Kommando</em> bekommt, dann kann dieser Prozess in seinem Kontext dieses Kommando ausführen.<br />
Du kommst aber eben nicht um einen zweiten Prozess im Kontext des Benutzers herum!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1206788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1206788</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 10 Jan 2007 07:57:06 GMT</pubDate></item></channel></rss>