외부 프로그램을 사용하지 않고 TrustedInstaller 또는 SYSTEM으로 응용 프로그램을 어떻게 실행합니까?

외부 프로그램을 사용하지 않고 TrustedInstaller 또는 SYSTEM으로 응용 프로그램을 어떻게 실행합니까?

명령 프롬프트 및/또는 PowerShell만 사용하고 외부 프로그램이나 명령 없이 애플리케이션을 TrustedInstaller 또는 SYSTEM으로 어떻게 실행할 수 있습니까?

답변1

AFAIK, 다음과 같이 로그인하는 간단한 방법은 없습니다.체계또는신뢰할 수 있는 설치 프로그램Microsoft 자체 도구(실제로는 Russinovich의 Sysinternals)와 같은 타사 도구를 사용하지 않고PsExec, 니르소프트NirCmd아니면 소르덤의파워런.

그러나 이러한 도구를 사용하는 것은 쉽습니다.나타나다Windows GUI에 기본적으로 사용됩니다. 즉, 실행 파일의 컨텍스트 메뉴 항목으로마우스 오른쪽 버튼 클릭 메뉴에 특정 도구를 추가하는 레지스트리 조정.

[해당 권한이 있어도 가끔 이용 등의 간단한 작업이 불가능할 때가 있습니다.등록편집소유한 키를 수정하려면신뢰할 수 있는 설치 프로그램, 소유권을 갖지 않고.]

답변2

에서https://www.tiraniddo.dev/2017/08/the-art-of-becoming-trustedinstaller.html, 내 컴퓨터에서 시도하는 단계는 다음과 같습니다.

  1. Powershell을 엽니다(관리자 권한으로)
  2. PS> 설치 모듈 -NtObjectManager 이름
  3. PS> 시작 서비스 - 이름 TrustedInstaller
  4. PS> $parent = Get-NtProcess -ServiceName TrustedInstaller
  5. PS> $proc = New-Win32Process cmd.exe -CreationFlags NewConsole -ParentProcess $parent

참고:
Install-Module모듈을 가져오려면 한 번만 실행하면 됩니다.https://www.powershellgallery.com/packages/NtObjectManager/

5단계 새 명령 프롬프트가 열리면 실행하여 확인할 수 있습니다 whoami.nt authority\system

답변3

그런데, 다음은 .ps1 스크립트입니다.@hasto의 명령:

$ConfirmPreference = "None"
$isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
if (-not $isAdmin) {
    Start-Process powershell -ArgumentList "-NoProfile -File `"$PSCommandPath`"" -Verb RunAs
    exit
}
Set-ExecutionPolicy -ExecutionPolicy bypass
Install-Module -Name NtObjectManager
Start-Service -Name TrustedInstaller
$parent = Get-NtProcess -ServiceName TrustedInstaller
$proc = New-Win32Process cmd.exe -CreationFlags NewConsole -ParentProcess $parent
$ConfirmPreference = "High"

관련 정보