我在網上找到了一個腳本,它將檢查您是否在Admin角色下運行當前的Powershell控制檯,如果沒有,開始一個新的腳本Powershell的實例並關閉以前的窗口。創建新進程或使用Powershell中的開始cmdlet
檢查它的部分並不是真正的問題,我只是有一個關於如何啓動一個Powershell的新實例的問題。
這是它是如何在腳本執行:
$newProcess = New-Object System.Diagnostics.ProcessStartInfo "Powershell";
$newProcess.Arguments = "& '" + $MyInvocation.MyCommand.Name + "'"
$newProcess.Verb = "runas";
[System.Diagnostics.Process]::Start($newProcess);
Exit;
這是一個相當知名的和經常使用的腳本(根據經驗,它是分散在無數的在網站上的網頁)。
由於大多數PowerShell的精明的人知道,你可以打開PowerShell和有它通過鍵入運行作爲命令行(一個運行提示,命令行解釋器,& PowerShell中)管理員:
Start Powershell -ArgumentList "& '$scriptpath'" -Verb runas
而且任何熟悉腳本的人都可以看到,這些將完成同樣的事情 - 它們看起來似乎彼此相似!
在啓動Powershell的一個新實例並運行一個被調用腳本的兩種方法之間,有什麼區別?哪些是推薦的,哪些不是?比另一個更正確(合適)嗎?
由於我是自學成才,而且我一般都會學習,所以最佳實踐,建議和棄用的\被取代的東西經常被忽視。我真的沒有在.NET框架或C#中的背景,所以,如果從這個角度來看答案是顯而易見的,你將不得不原諒我。
謝謝。