国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Vista > 正文

Windows Vista為什么不允許兩個用戶同時登錄

2024-07-26 00:35:57
字體:
來源:轉載
供稿:網友

  一直就在納悶,為什么Windbg不能轉儲完整的WinSta0窗口站的安全描述符?為什么會少了登錄SID和登錄帳戶的對應ACE?

  盆盆很快發現,原來是我自己搞錯了。為了方便,我用遠程桌面連接到另外一臺實驗用Windows Vista機器,這時候由于是遠程桌面登錄的,拿到的是會話2。但是我在Windbg里檢查的卻是/sessions/1/Windows/WindowStation/WinSta0。

  也就是說,盆盆實際上是檢查的會話1里的WinSta0窗口站,而不是遠程桌面里的WinSta0窗口站(會話2)!!

  難怪檢查出來的結果,發現WinSta0窗口站里居然沒有登錄SID和Admin的對應ACE!!

  1. 完整的WinSta0安全描述符

  為了驗證這個結果,盆盆重新做實驗,這次直接控制臺登錄(會話1),再查看WinSta0的安全描述符,果然發現完整了,有附圖為證!

  圖中棕色加粗的部分,就是登錄會話SID和登錄帳戶Admin所擁有的ACE,這里可以看到登錄會話SID擁有所有可能的權限,而Admin則幾乎沒有任何訪問權限。

  問題到這里并沒有結束。

  為什么會出現先前那篇文章里的錯誤?從中可以猜測到哪些結論?

  2. 為什么只允許一個交互用戶登錄?

  這里盆盆大膽假設Windows Vista(XP)為什么只能允許一個交互用戶登錄到系統(包括遠程桌面)。原來是和WinSta0窗口站的權限有關!

  當新的用戶登錄進來后,原來用戶會話里的WinSta0的安全權限會發生變化,登錄SID和登錄帳戶的ACE(訪問控制項)會被刪除。難怪我們看不到先前登錄用戶的桌面!

  可以在遠程桌面的環境里打開PRocess Explorer,查看一個在先前用戶環境里打開的進程(例如Explorer),可以發現其句柄列表里沒有WinSta0窗口站,如附圖所示。

  從圖中可以看出,當前的用戶桌面,會話2里的Explorer進程句柄表里包含WinSta0窗口站,所以可以和用戶進行交互;而先前的登錄用戶,會話1里的Explorer進程句柄表里,沒有WinSta0窗口站,所以雖然這些進程還在運行,但是無法和用戶進行交互。

  為什么先前的用戶會話里的進程沒有WinSta0的句柄,現在應該很明白了,因為該會話里的WinSta窗口站對象的ACL定義發生了變化,現在不再授予登錄會話SID訪問。

  這一切看來和WinSta0窗口站的安全權限有關??梢?,登錄會話、窗口站的概念有多重要了。

  知道了這個原因,從理論上,我們可以通過修改先前會話里的WinSta0窗口站的安全權限,來突破同一時刻只能允許一個用戶交互登錄的限制。但是實際上沒有那么簡單,盆盆能夠想到的,微軟肯定早就已經想到了。

  網上貌似有通過替換一個文件(termsrv.dll)的方法,讓Windows Vista支持多個用戶交互登錄。如果這個方法能夠成功,其原理必然還是和WinSta0窗口站的權限有關。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东山县| 二连浩特市| 芦山县| 鄯善县| 揭东县| 荥经县| 岑溪市| 南通市| 湟中县| 长春市| 长垣县| 巴东县| 中西区| 新竹市| 遵化市| 万州区| 阳谷县| 浦江县| 辽源市| 于田县| 九江县| 宜君县| 襄城县| 历史| 古丈县| 裕民县| 泉州市| 开远市| 兰坪| 喀喇沁旗| 通州区| 高邮市| 龙川县| 广汉市| 大冶市| 航空| 衢州市| 治县。| 吉首市| 宁明县| 祁门县|