2012-07-20 65 views
3

我想在windows-7 64位機器上從powershell腳本運行EXE。在這個腳本中,我想以另一個用戶身份運行exe。它在用戶調用腳本是實際用戶時起作用。但在我的情況下,這個PowerShell腳本將從系統用戶帳戶執行,而系統用戶腳本不起作用。這裏用一個簡單的代碼打開記事本。此代碼對系統用戶失敗。無法從系統用戶的PowerShell中運行EXE

$username = 'MyDomain\MyUser' 
$password = 'mypswd' 
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force)) 
Start-Process -Credential $cred "notepad.exe" 

我已經將執行策略設置爲無限制。當我運行此腳本系統用戶,然後我得到錯誤的

Start-Process : This command cannot be executed due to the error: Access is den ied. At D:\temp\trythis.ps1:4 char:14 + Start-Process <<<< -Credential $cred "notepad.exe" + CategoryInfo : InvalidOperation: (:) [Start-Process], InvalidOp erationException + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.C ommands.StartProcessCommand

是否有我可以運行此腳本系統用戶什麼辦法?

回答

0

這裏最可能的問題是權限之一(我可以重現您的問題的唯一方法是通過設置帳戶的拒絕項)。

我會建議以下來確認權限是否正確。說明適用於Windows XP,SP3 - 爲您的版本進行調整!上 「的notepad.exe」

  1. 右鍵單擊,然後單擊屬性
  2. 點擊安全標籤
  3. 點擊高級按鈕
  4. 點擊有效權限標籤
  5. 點擊選擇...按鈕
  6. 輸入您要檢查的帳戶並確認該帳戶具有適當的讀取和執行權限。
+0

我試過你的方法,但我仍然得到同樣的問題。要重現此問題,我正在使用sysinternals的psexec實用程序。我首先在命令提示符「psexec -i -s powershell」中運行此命令,然後在powershell提示符下輸入問題中顯示的代碼。 – 2012-07-20 12:27:57

+0

您是否使用PsExec遠程執行此操作?如果你是,那麼可能會有不同的權限集。如果你不是,那麼使用PsExec的目的是什麼? – 2012-07-20 13:17:11

+0

是的,我正在遠程執行此操作。實際上,這將由我們的集成服務器調用。 – 2012-07-23 10:12:14

相關問題