2017-02-15 111 views
1

我有一個PowerShell腳本。我通常執行在PS主機此腳本的方法是使用:以批處理文件的管理員身份運行PowerShell功能

. .\psScript.ps1 

functionName 

functionName是我的入口函數。我試圖運行這個PowerShell腳本並從批處理文件中以管理員身份自動執行功能functionName。我可以使用我的批處理文件執行此腳本和函數:

powershell -command "& { . .\psScript.ps1; functionName }" 

但是,這不會以管理員身份執行腳本。所以我也試過以下內容:

powershell -NoProfile -ExecutionPolicy ByPass -command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy ByPass -File "". .\psScript.ps1; functionName""' -Verb RunAs}" 

這仍然不起作用,並且控制檯消失太快,無法讀取錯誤消息。有誰可以幫忙嗎?

+0

我認爲CMD沒有推出,管理員? – 4c74356b41

+0

Cmd不作爲管理員啓動,沒有。 – potatopotarto

回答

1

這個工作,從非提升的命令提示符:

powershell -Command "Start-Process PowerShell –Verb RunAs -ArgumentList ""-File C:\Path\To\Script\psScript.ps1""" 
+0

感謝您的回覆。這確實從非提升cmd提示符作爲管理員運行腳本,但是,它不會自動執行我需要它的功能,即.e.e. functionName(如上所示) – potatopotarto

+0

運行此函數的最簡單方法是將'psScript.ps1'文件的dot-sourcing和函數調用包裝到* second *腳本中。然後使用我上面的方法調用* second *腳本。 – TechSpud

+1

@potatopotarto你可以在ps1文件的末尾添加對函數的調用,即在頂部有'function a {...}',然後在那之後輸入'a'來調用它。 – ConnorLSW

相關問題