Powershell을 사용하여 다른 사용자로 RSAT 도구 실행

Powershell을 사용하여 다른 사용자로 RSAT 도구 실행

내가 달성하려는 작업은 Powershell-Script에서 일부 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
    

출처는 여기입니다.

  • 도구가 부적절하게 구성되었으며 적절한 사용자로만 실행하면 필요한 변경을 수행하기에 충분합니다. 이는 일반적으로 도구를 사용하여 원격 서버를 관리하는 경우입니다. 이 경우 응용 프로그램 호환성 도구 키트(다운로드) 실행 파일에 RunAsInvoker 수정 사항을 적용합니다.
    • 호환성 관리자를 엽니다
    • 현재 데이터베이스에 새 수정 사항 만들기
    • 실행 파일의 경로를 설정하십시오
    • 수정 사항 목록에서 RunAsInvoker를 선택하고 기본 설정을 클릭한 다음 모듈 editBox에서 *를 입력하고 추가를 클릭합니다.
    • 데이터베이스를 저장하고 마우스 오른쪽 버튼을 클릭하여 설치하십시오.

불행히도 이것은 MMC에서는 작동하지 않습니다.

답변2

다음을 사용하여 실행되도록 변경할 수 있습니다.

saps "cmd" -workingdirectory $PSHOME -Credential $SU -ArgumentList "/c dsa.msc"

관련 정보