Windows
以普通使用者 powershell 啟動程序
我正在創建一個 powershell 腳本,它可以自動設置新的電腦部署。我的情況是,我想從提升的管理員 powershell 控制台實例以普通非管理員使用者的身份啟動執行檔。原因是如果我從提升的提示/腳本啟動,執行檔會生成錯誤。這是命令的結構:
Start-Process -FilePath (${Env:CommonProgramFiles(x86)} + "\sample.exe") -ArgumentList "/PRODUCT:sample", "/VERSION:2.0", "/MODE:1"
我做了一些搜尋,發現與我需要的相反(非管理員到管理員)在這裡https://technet.microsoft.com/en-us/library/hh849848.aspx但我只看到
RunAs
提升為管理員。設置:
- Windows 10 教育版
- PS 5
解析度
由於
psexec
沒有提供抑制登錄的解決方案,我最終開始瞭如下過程:$username = Read-Host "Please enter in a valid username " $password = Read-Host "Please enter in a the account password " -AsSecureString Start-Process -Credential (New-Object System.Management.Automation.PSCredential($username, $password)) -FilePath (${Env:CommonProgramFiles(x86)} + "\sample.exe") -ArgumentList "/PRODUCT:sample", "/VERSION:2.0", "/MODE:1"
它不能完美地解決問題,但使用者至少可以留在腳本中。
這取決於問題是什麼。如果您根本沒有在使用者上下文下執行,例如在 SYSTEM 帳戶下,那麼您可能需要以特定使用者身份執行,這通常意味著指定使用者名和密碼,這通常是有問題的。
如果問題是您目前具有管理員權限,但需要在沒有這些管理員權限的情況下執行某些東西,那麼這應該可以使用PSExec或類似方法而不需要使用者名和密碼。
psexec -accepteula -l <CMD>
-l
以受限使用者身份執行程序(剝離管理員組並僅允許分配給使用者組的權限)。在 Windows Vista 上,該程序以低完整性執行。應該可以在 PowerShell 中呼叫 PSExec 並讓 PSExec 呼叫原始應用程序。也可以直接通過 PowerShell 執行此操作。
也可以使用 PSExec 執行此操作,而無需通過在目標使用者的會話中執行某些操作來輸入使用者名/密碼,只要他們已經登錄即可。
psexec -accepteula -i <session> <CMD>