使用 Powershell 以另一個使用者身分執行 RSAT 工具

使用 Powershell 以另一個使用者身分執行 RSAT 工具

我試圖完成的是以另一個使用者(網域管理員)身分從 Powershell 腳本執行一些 RSAT 工具。

這是我的運行程式碼:

Start-Process -FilePath "C:\Windows\system32\mmc.exe" -ArgumentList "C:\Windows\system32\gpmc.msc" -Credential (Get-Credential -Credential MYDOMAIN\myadminuser)

我得到的是一個錯誤,其中顯示:此命令只能以提升的權限啟動。現在這告訴我,由於 UAC 限制,我必須使用管理員使用者來執行腳本,而這正是我想要實現的目標。

有人對我有幫助嗎?

謝謝!

編輯

為了讓大家更清楚,我附上了整個腳本。

$title = "Windows 8.1 RSAT Tools"
$message = "Verwaltungskonsole"

$ad = New-Object System.Management.Automation.Host.ChoiceDescription "&AD Verwaltung", `
"Active Directory-Benutzer und -Computer"

$gpo = New-Object System.Management.Automation.Host.ChoiceDescription "&GPO Verwaltung", `
"Gruppenrichtlinienverwaltung"

$options = [System.Management.Automation.Host.ChoiceDescription[]]($ad, $gpo)

$result = $host.ui.PromptForChoice($title, $message, $options, 0) 

switch ($result)
{
    0 
    {
    Start-Process -Verb RunAs -FilePath "C:\windows\system32\mmc.exe" -ArgumentList "C:\windows\system32\dsa.msc" -Credential (Get-Credential -Credential MYDOMAIN\myadminuser)
    }
    1 
    {
    Start-Process -Verb RunAs -FilePath "C:\windows\system32\mmc.exe" -ArgumentList "C:\windows\system32\gpmc.msc" -Credential (Get-Credential -Credential MYDOMAIN\myadminuser)
    }
}

答案1

這可能歸結為兩個問題:

  • 該工具實際上需要提升運行權限,因為否則不允許它執行需要執行的變更。當您在本機電腦上執行該工具並進行特定於該電腦的變更時,通常會發生這種情況。在這種情況下,您需要在執行命令之前提升控制台。這可以直接從 powershell 使用以下命令完成:

    $newProcess = New-Object System.Diagnostics.ProcessStartInfo "powershell";
    #Indicate that the process should be elevated
    $newProcess.Verb = "runas";
    #Start the new process
    [System.Diagnostics.Process]::Start($newProcess) | Out-Null
    

來源在這裡。

  • 此工具配置不正確,僅以適當的使用者身分執行就足以完成您所需的變更。透過該工具管理遠端伺服器時通常會出現這種情況。在這種情況下,您可以使用應用程式相容性工具包(asAdmin、asInvoke、asHighest)修改命令的啟動方式(下載)並對可執行檔套用 RunAsInvoker 修復。
    • 開啟相容性管理員
    • 在目前資料庫中建立新修復
    • 設定可執行檔的路徑
    • 從修復清單中選擇 RunAsInvoker,按一下首選項,然後在模組 editBox 中鍵入 * 並按一下新增
    • 儲存資料庫並右鍵單擊它進行安裝

不幸的是,這不適用於 MMC。

答案2

您可以將其變更為運行:

saps“cmd”-工作目錄$PSHOME-Credential$SU-ArgumentList“/c dsa.msc”

相關內容