2011-11-08 54 views
3

那麼有可能嗎?Powershell登錄腳本,是否可以向用戶顯示對話框或讀取一些用戶輸入?

我需要獲得某些用戶憑據來映射某些網絡共享。此份額不屬於我們的域名,每個用戶擁有不同的憑據。

編輯

該腳本工作正常,如果我從PowerShell控制檯運行它。 問題是,當我將它用作登錄腳本時,它不顯示任何promp或dialgo。當我登錄到桌面時,腳本就會啓動,因爲它會寫入一個調試日誌,但它不會顯示任何對話框或提示用戶輸入。

+0

您沒有指定如何啓動登錄腳本。聽起來你正在使用VBS來運行隱藏的PowerShell控制檯(你無法用powershell隱藏PowerShell控制檯)。如果是這種情況,您必須修改VBS代碼以取消隱藏它。 – Winfred

+0

我沒有使用VBS啓動Powershell。我只是使用組策略設置,在win 2008r2上,您可以選擇使用powershell腳本,而不是cmd或vbs。 – Primoz

回答

5

在您的GPO 啓用以下設置:「運行登錄腳本可見」以確保登錄腳本可見。 你可以找到它下用戶配置\管理模板\系統\腳本

+0

它的工作原理:)謝了你了。 – Primoz

+0

如果您知道,我還有一個問題。我使用ISE爲腳本的開發和那裏我得到了用戶的輸入漂亮的彈出窗口,但在登錄時只有控制檯窗口。是否有可能爲登錄腳本獲取相同的GUI? – Primoz

+0

在2012 R2的設置名稱顯示爲「在登錄腳本顯示說明,它們運行。」 – Shadymilkman01

3

PowerShell有一個Get-Credential cmdlet,可用於提示輸入用戶名/密碼。有關PowerShell中的Get-Help Get-Credential -Full的詳細信息和示例。

+0

我還不夠明確。我知道這個cmdlet和腳本工作正常,如果我從powershell控制檯運行它。問題是,當我將它用作登錄腳本時,它不顯示任何promp或dialgo。當我登錄到桌面時,腳本就會啓動,因爲它會寫入一個調試日誌,但它不會顯示任何對話框或提示用戶輸入。 – Primoz

+0

我從來沒有將PowerShell腳本作爲登錄腳本運行,所以我不知道它們的區別。您可以嘗試$ host.UI.Prompt或$ host.UI.PromptForCredential方法,看看它們的行爲是否有所不同,儘管我懷疑不是。你能用正常的DOS腳本得到提示嗎? – MrKWatkins

+0

如何使用DOS腳本獲得promp? – Primoz

1

它爲我工作。它確實顯示了憑證提示。下面是我的腳本:

"test" | out-file -append C:\test.log 
$cred = get-credential 
$cred.username | out-file -append C:\test.log 

登錄腳本的配置:

輸入gpedit.msc - >用戶配置 - > Windows設置 - >腳本 - > 登錄 - >選擇PowerShell腳本選項卡 - >添加並輸入路徑腳本

截圖:

enter image description here

+0

這正是我做什麼,它並沒有爲我工作:(如果我添加在任務管理器「命令行」專欄中,我看到的是PowerShell進程的開始參數-ExecutionPolicy旁路和 - 文件MapNetDrives.ps1 – Primoz

+0

@Primoz - 什麼是你確切的腳本 – manojlds

+0

我想你的小例子,它並沒有給我任何工作似乎是不同的,我什麼環境 – Primoz

0

我從來沒有配置GP這樣的運行登錄腳本,所以我不知道這... 如果你運行一個任意CMD就像ipconfig會彈出控制檯窗口,因爲你希望PowerShell會?

如果是這樣,而不是使用內置的PowerShell腳本機制,你可以調用的CMD線或.bat認爲然後調用PowerShell腳本: powershell.exe -noexit -command「&「路徑\到\ logonscript 「.ps1'」

相關問題