2009-01-20 43 views
1

使用Windows 2003,我正在尋找一種方法來創建一個「註銷腳本」,將繼續當前註銷,然後立即登錄另一個用戶。所以,「UserA」註銷。腳本觸發登錄「UserB」。註銷腳本來更改用戶

這是我們編寫'shell'的計算機的應用程序升級的一部分;類似於信息亭應用程序。對於升級,我們需要以「管理員」身份登錄,然後在升級完成時註銷「管理員」並以「sample_user」身份登錄。我們希望在不重新啓動的情況下完成此操作。

請注意,我不想要啓動註銷(即「關閉」)的腳本。我正在尋找將在用戶註銷時運行的script(通過組策略設置)。如上所述,該腳本應該記錄一個不同的用戶。

謝謝。

+0

你可能想要拿出第一句話的第一部分。這只是靠近的選票來吸引車手。 – EBGreen 2009-01-20 19:28:15

+0

他們將沒有任何理由爲什麼應該關閉。 – 2009-02-03 20:51:37

+0

我不完全確定,但在註銷後運行某些東西感覺像是一次重大的安全漏洞。該腳本將不得不以「root」或「administrator」身份運行。這是無人使用的嗎? – Rolf 2009-02-03 21:32:56

回答

6

不要認爲這是可能的以規定的方式(腳本在註銷)。

您必須將機器設置爲以指定帳戶自動登錄,然後註銷(讓它自動爲您登錄),然後您必須再次禁用該功能,方法是放置臨時登錄腳本......通常聽起來很亂。

實際設置可以使用像微軟共享計算機工具包或類似工具(不太確定「正常」註冊表自動登錄表現如何在手動註銷時表現出來,但我有一個XP自助服務終端會立即自動登錄,即使您手動註銷 - 您必須使用Shift +註銷等一些鍵來重寫它,以便能夠手動再次指定登錄,因此可以以某種方式進行)。

的「最簡單」的方法可能是用自己的製作人代替MSGINA.DLL ...

你爲什麼要這麼做?只需使用runas,然後在不註銷控制檯用戶的情況下啓動其他用戶所需的任何操作 - 這是一個多用戶系統?桌面只是毛茸茸的^^

這將無論如何都需要用戶憑據可用於您的腳本,哪種使它成爲多餘的,因爲你妥協了該帳戶的安全性 - 藐視擁有第二個帳戶的目的首先,無論它存在什麼目的?

+0

雖然我想說,「這在Apache上很容易」^^ – 2009-02-03 20:46:39

1

不知道如何,一旦當前用戶註銷登錄其他用戶(不知道如果Windows將讓你...)

但是你可以用關機來註銷:

shutdown /? 
0

如果您要以某種語言的普通腳本的形式運行此類功能,那麼很可能不像您在退出帳戶時那樣工作,所有進程應該和你的運行腳本一起被殺死。

您可能可以創建某種服務,該服務可以在服務帳戶上運行(即始終處於活動狀態),以便自動爲您切換此用戶。

我的賭注是在Windows Powershell上,儘管我並不完全確定它實際上創建服務的功能。

快速搜索帶來了以下(第二個鏈接是一個論壇,但它提到運行PowerShell的爲服務併發送該服務,這將是路徑到您的用戶切換腳本參數)

How to Create a Windows Service using Powershel

Powershell Script as a Windows Service

1

這裏有一些想法,probaly陷入「低價黑客」類別:

如何在第一時間爲用戶B登錄,然後使用runas /user:userA <cmd>運行安裝過程的第一部分?

如果這是不可接受的,我知道有一種方法可以使Windows工作站(不屬於域的一部分)在重新啓動後自動登錄到某個用戶帳戶。也許如果您查看了哪些註冊表更改發生,並重復它們,重新啓動會自動登錄該用戶。 (當然,作爲最後一個階段,在用戶B登錄之後,您將不得不恢復這些更改:-)

我也懷疑是否有服務強制打開「登錄屏幕「以某個用戶的身份登錄。也許使用遠程桌面遠程執行的方式......如果可能的話,那麼您可以創建一個在註銷userA之前安裝的服務,這將觸發userB的登錄。

1

你可以用VNC編寫腳本(有很多免費版本,請選擇)。在機器上設置VNC服務器進程以偵聽本地主機。當用戶註銷時,您的註銷腳本將使用VNC連接到本機,併發送登錄下一個用戶所需的擊鍵。 VNC使用RFB(遠程幀緩衝)協議;有大多數流行語言的圖書館,所以你應該能夠快速找到工作。或者有toolsmight有幫助。

0

我沒有Windows 2003服務器或具有「組策略」設置的系統來測試我的預感,但是您可以查看Windows的SU(「切換用戶」)。最初是資源工具包的一部分,這已擴展到新的SUperior SU。如果可以的話,請發佈結果/腳本。

0

您可以從構建遠程控制實用程序(如VNC等)的角度來解決這個問題。這裏最重要的是,如果你想訪問登錄屏幕(即CTRL + ALT + DEL /用戶名/密碼)部分,唯一的問題是Windows服務是唯一可以訪問它的組件,所以你會必須創建一個。

我看到這個技術作爲一個整體的唯一問題是,即使你花費了大量的精力來使它工作(這將是一個非常大的努力),這個成功與整體工作的機會源於註銷腳本的東西(即當東西關閉時)很低,即使是以管理員身份重新登錄時出現的錯誤數量也很少。

只要記住,對於任何需要以管理員身份運行的任何情況,Windows中都有更簡單的方法來實現此目的(例如運行方式,更改需要更新的項目的用戶權限等)。