Sitzungs-zu-Sitzung-Aktivierung mit einem Sitzungsmoniker
Die Sitzungs-zu-Sitzung-Aktivierung (auch als sitzungsübergreifende Aktivierung bezeichnet) ermöglicht es einem Clientprozess, einen lokalen Serverprozess in einer angegebenen Sitzung zu starten (zu aktivieren). Dieses Feature ist für Anwendungen verfügbar, die so konfiguriert sind, dass sie im Sicherheitskontext des interaktiven Benutzers ausgeführt werden. Dies wird auch als Objektaktivierungsmodus "Interaktiver Benutzer ausführen" bezeichnet. Weitere Informationen zu Sicherheitskontexten finden Sie unter Der Sicherheitskontext des Clients.
Distributed COM (DCOM) ermöglicht die Objektaktivierung pro Sitzung mithilfe eines vom System bereitgestellten Sitzungsmonikers. Andere vom System bereitgestellte Moniker sind Dateimoniker, Elementmoniker,generische zusammengesetzte Moniker, Antimoniker, Zeigermonikerund URL-Moniker.
Um den Sitzungsmoniker verwenden zu können, muss die DCOM-Anwendung so festgelegt werden, dass sie als interaktiver Benutzer ausgeführt wird. Dies kann mithilfe des Tools Komponentendiensteverwaltung festgelegt werden, indem die Eigenschaften der DCOM-Anwendung angezeigt und auf der Registerkarte Identität die Option Der interaktive Benutzer ausgewählt wird. Weitere Informationen zu den möglichen Sicherheitsrisiken im Zusammenhang mit dem Festlegen einer DCOM-Anwendung, die als interaktiver Benutzer in einer Remotedesktopdienste Umgebung ausgeführt werden soll, finden Sie im Abschnitt "Anwendungsidentität (COM)" der COM-Dokumentation im Platform Software Development Kit (SDK).
Wenn ein anderer Benutzertyp zum Ausführen der Anwendung ausgewählt ist, wird der Sitzungsmoniker von der Anwendung ignoriert. Der Sitzungsmoniker wird auch von COM+-Serveranwendungen ignoriert. Weitere Informationen zu anderen Methoden zum Auswählen des Benutzertyps zum Ausführen der Anwendung finden Sie in der COM-Dokumentation im Plattform-SDK.
Um einen Sitzungsmoniker zu erstellen, müssen Sie die Sitzungs-ID der Remotedesktopdienste Sitzung mit einem Klassenmoniker zusammenstellen, der die Klassen-ID des Prozessservers angibt.
So erstellen Sie einen Sitzungsmoniker
Stellen Sie dem Anzeigenamen des Klassenmonikers mithilfe der folgenden Syntax den Anzeigenamen des Sitzungsmonikers voran:
"Session:[digits]!clsid:[class id]"Wobei Ziffern die Sitzungs-ID der Sitzung darstellen, für die der Serverprozess gestartet wird, und wobei klassen-ID die Klassen-ID des Servers darstellt. Beachten Sie, dass die Sitzungs-ID eine Basis-10-Zahl ist.
Bei Computern, auf denen Windows XP oder höher ausgeführt wird, führt die Verwendung der folgenden Syntax dazu, dass COM die Aktivierung unabhängig von der Sitzungs-ID an die derzeit aktive physische Konsolensitzung sendet:
"Session:Console!clsid:[class id]"Nachdem Sie den Sitzungsmoniker erstellt haben, können Sie das Ergebnis entweder an die MkParseDisplayName-Funktion oder die MkParseDisplayNameEx-Funktion übergeben.
Sie können einen Sitzungsmoniker auf die gleiche Weise wie jeden anderen Moniker verwenden.
Ein Codebeispiel, das veranschaulicht, wie ein lokaler Serverprozess in einer angegebenen Sitzung aktiviert wird, finden Sie unter Verwenden eines Sitzungsmonikers.
Weitere Informationen zur Objektaktivierung, vom System bereitgestellten Monikern und Klassenmonikern finden Sie in der COM-Dokumentation im Platform SDK.
Hinweis
Prozesse, die sitzungsübergreifend erstellt werden, haben eine Obergrenze für die Größe des Umgebungsblocks. Dieser Grenzwert liegt bei ca. 4 KB, kann aber je nachdem, welche anderen Informationen zum Erstellen des Prozesses benötigt werden (z. B. Dateinamen, Verzeichnisse und Parameter für den neuen Prozess), größer oder kleiner sein.