2017-06-16 20 views
2

我已經花了更多時間在這個上,我想承認。我正在尋找將安靜地使用的PowerShell代碼使用不同的憑證啓動一個新的PowerShell實例(在現有的PowerShell窗口中)。如何使用不同的憑據(沒有得到提示輸入用戶名/密碼)安全地啓動Powershell.exe?

我能想出的最好的是非常笨重的......在屏幕上彈出兩個不同的Powershell窗口,然後終於給我一個提示。顯然,-NoNewWindow參數並不妨礙打開任何新的PowerShell窗口。

我非常笨重的代碼:

Start-Process powershell.exe -Credential $DomainAdmin -WorkingDirectory $env:windir -NoNewWindow -ArgumentList "Start-Process powershell.exe -Verb runAs" 

如果有一種方法來 「RunAs的」 Powershell.exe從桌面快捷方式(並保存用戶名/密碼)。我也很高興。下面是我試圖製作的代碼。然而,似乎是一直給我的錯誤的錯誤,「267:目錄名稱是無效的」不工作

批處理文件:

runas.exe /savecred /env /noprofile /user:MKA "powershell.exe -noprofile -command \"start-process -WorkingDirectory c:\temp powershell -verb RunAs\"" 

一個解決辦法是大大讚賞。

+0

我不認爲運行方式運作的,你認爲它的方式。如果啓用UAC,'runas.exe'將以標準用戶身份登錄'%user%',而不是以管理員身份登錄。我不確定你想做什麼是可能的,因爲我最近發佈了一個非常類似的問題,並且無法得到有效的答案。 [鏈接到我的問題](https://stackoverflow.com/questions/43939765/batch-programming-a-runas-utility-creater) – GrumpyCrouton

+0

我的問題將是你爲什麼要打開一個新的會議?如果是遠程連接到新系統,那麼你可以在相同的PowerShell窗口中運行它,並根據需要在腳本中調用每個會話。 – CrypticSage

+0

沒有遠程處理。我其實是指Powershell的一個實例。類似於在PowerShell控制檯窗口中鍵入「Powershell」,除了使用不同的用戶上下文。 – MKANET

回答

1

要爲用戶MKA運行,在Target窗口中創建與此快捷方式:

C:\Windows\System32\runas.exe /User:MKA /savecred C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe 

要隱藏PowerShell控制檯窗口中,您可以在腳本的頂部把這段代碼被執行。這是我最喜歡的解決方案this StackOverflow post

add-type -name win -member '[DllImport("user32.dll")] public static extern bool ShowWindow(int handle, int state);' -namespace native 
[native.win]::ShowWindow(([System.Diagnostics.Process]::GetCurrentProcess() | Get-Process).MainWindowHandle, 0) 

The post discusses other ways that may be more suitable for you.

+0

非常感謝gms0ulman!偉大的工作解決方案。 – MKANET

相關問題