共用方式為


會話對會話啟用與會話Moniker

會話對會話啟用(也稱為跨會話啟用)可讓客戶端進程在指定的會話上啟動(啟動)本機伺服器進程。 這項功能適用於設定為在互動式使用者的安全性內容中執行的應用程式,也稱為「RunAs 互動式使用者」物件啟用模式。 如需安全性內容的詳細資訊,請參閱 客戶端的安全性內容

分散式 COM (DCOM) 會使用系統提供的 Session Moniker,啟用每個會話的物件啟用。 其他系統提供的Moniker包括 檔案Monikers專案Monikers、泛型 複合Moniker反Moniker指標 moniker,以及 URL Moniker。

若要能夠使用會話Moniker,必須將DCOM應用程式設定為以互動式使用者身分執行。 您可以使用元件服務系統管理工具、檢視DCOM應用程式的 [屬性],然後選取 [[身分識別] 索引卷標上的互動式使用者 來設定。如需有關設定 DCOM 應用程式以遠端桌面服務環境中互動式使用者身分執行之可能安全性風險的詳細資訊,請參閱 Platform Software Development Kit (SDK) 中 COM 檔的<應用程式身分識別(COM)>一節。

如果選取任何其他類型的用戶來執行應用程式,應用程式將會忽略會話Moniker。 COM+ 伺服器應用程式也會忽略會話 Moniker。 如需選取要執行應用程式之使用者類型之其他方法的詳細資訊,請參閱平臺 SDK 中的 COM 檔。

若要建立會話 Moniker,您必須使用指定行程伺服器類別標識碼的 Moniker,撰寫遠端桌面服務會話的會話識別碼。

建立會話Moniker

  1. 使用下列語法,在類別Moniker的顯示名稱前面加上工作階段Moniker的顯示名稱:

    "Session:[digits]!clsid:[class id]"
    

    其中 位數 代表伺服器進程啟動之會話的會話標識碼,而 類別標識碼 代表伺服器的類別標識符。 請注意,會話標識碼是base-10數位。

    針對執行 Windows XP 或更新版本的電腦,使用下列語法會導致 COM 將啟用傳送至目前作用中的實體控制台會話,無論其會話標識符為何:

    "Session:Console!clsid:[class id]"
    
  2. 建立會話 Moniker 之後,您可以將結果傳遞至 MkParseDisplayName 函式或 MkParseDisplayNameEx 函式。

您可以使用與使用任何其他Moniker相同的方式來使用會話Moniker。

如需示範如何在指定會話上啟動本機伺服器進程的程式代碼範例,請參閱使用會話Moniker

如需物件啟用、系統提供的Monikers和類別Moniker的詳細資訊,請參閱平臺 SDK 中的 COM 檔。

注意

跨會話建立的進程,對環境區塊的大小有上限。 此限制大約為 4 KB,但視建立進程所需的其他資訊而定,可能會更大或更小(例如新進程的檔名、目錄和參數)。