當我在我的帳戶下或管理員帳戶下運行Powershell時,我的腳本中的任務一個接一個地執行。當我在另一個帳戶下運行它時,任務將一起啓動,這是不受歡迎的行爲。我怎樣才能解決這個問題?不同用戶帳戶下的Powershell行爲
$scriptBlock = {
function runTasks()
{
C:\startTask1.ps1
C:\startTask2.ps1
C:\startTask3.ps1
C:\startTask4.ps1
}
}
Start-Process -FilePath PowerShell -ArgumentList "-NoProfile -ExecutionPolicy Bypass -Command & {$ScriptBlock runTasks}"
另一種看法可能會或可能不會進行相關的 - 當我在我的帳戶下或在「以管理員身份運行」啓動PowerShell中,我與藍色背景的窗口。如果我用SHIFT +右鍵單擊並選擇「以其他用戶身份運行」並提供另一個帳戶,那麼打開的窗口就像黑色控制檯一樣。
編輯#1:
我拆我的劇本分爲兩個文件:
taskList.ps1
Start-Process -FilePath PowerShell -ArgumentList "C:\path\task1.ps1 -arg1 'x1' -arg2 'x2'" -RedirectStandardError task1.txt -wait
Start-Process -FilePath PowerShell -ArgumentList "C:\path\task2.ps1 -arg1 'x3'" -RedirectStandardError task2.txt -wait
Start-Process -FilePath PowerShell -ArgumentList "C:\path\task1.ps1 -arg1 'x4' -arg2 'x5'" -RedirectStandardError task3.txt -wait
Start-Process -FilePath PowerShell -ArgumentList "C:\path\task2.ps1 -arg1 'x6'" -RedirectStandardError task4.txt -wait
和taskStarter.ps1
Start-Process -FilePath PowerShell -ArgumentList "C:\path\taskList.ps1" -RedirectStandardError taskErr.txt -RedirectStandardOutput taskOut.txt
當我運行taskStarter。 ps1從我的帳戶下的powershell控制檯運行良好 - 所有任務都在anot後執行她和- 等待 param在taskList.ps1服從。但是,當我在新帳戶下運行相同的taskStarter.ps1時,所有任務都一起運行,並且- 等待被忽略。
你好,謝謝。我也跟着你的建議,並取代了我的腳本: '開始處理-FilePath PowerShell的-ArgumentList 「C:\ startTask1.ps1 -arg1 'X1'」 -RedirectStandardError task1.txt -wait' 這條線重複4次不同的-AargumentList值。與原始腳本類似,新腳本運行良好,如果我在我的帳戶下運行它,但不在新帳戶下啓動的PowerShell下運行。所以我仍然在同一個地方。任何其他想法或事情要嘗試? –
您可以嘗試記錄其他腳本的輸出。也許他們沒有被正確執行。安全性,錯誤的路徑等... – etalon11
我試圖用* start-transcript *輸出錯誤,並在使用* Start-Process *命令啓動一個進程時設置路徑爲* -RedirectStandardError *。沒有錯誤顯示,這主要是由於腳本非常簡單,因爲我試圖確定行爲不一致的原因。請參閱我的編輯#1。 –