外部プログラムを使用せずに、アプリケーションを TrustedInstaller または SYSTEM として実行するにはどうすればよいですか?

外部プログラムを使用せずに、アプリケーションを TrustedInstaller または SYSTEM として実行するにはどうすればよいですか?

外部プログラムやコマンドを使用せずに、コマンド プロンプトや PowerShell のみを使用して、アプリケーションを TrustedInstaller または SYSTEM として実行するにはどうすればよいですか?

答え1

私の知る限り、ログインする簡単な方法はありませんシステムまたは信頼できるインストーラMicrosoft独自の(正確にはRussinovichのSysinternalsの)サードパーティツールを使用せずにPsExec、Nirsoftのニルコマンドまたはソルダムパワーラン

しかし、これらのツールを活用するのは簡単です現れるWindows GUIにネイティブであること、つまり実行ファイルのコンテキストメニュー項目として、特定のツールを右クリックメニューに追加するレジストリ調整

[これらの権限があっても、時には簡単なタスク、例えば登録所有するキーを変更する信頼できるインストーラ所有権を取得せずに。

答え2

からhttps://www.tiraniddo.dev/2017/08/the-art-of-becoming-trustedinstaller.html、これが私のマシンで試した手順です

  1. PowerShellを開きます(管理者として)
  2. PS> インストールモジュール -Name NtObjectManager
  3. PS> Start-Service -Name TrustedInstaller
  4. PS> $parent = Get-NtProcess -ServiceName TrustedInstaller
  5. PS> $proc = New-Win32Process cmd.exe -CreationFlags NewConsole -ParentProcess $parent

注:
Install-Moduleモジュールをインポートするには 1 回だけ実行する必要があります。https://www.powershellgallery.com/packages/NtObjectManager/

ステップ5の後、新しいコマンドプロンプトが開きます。そこで実行して確認することができますwhoamint 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"

関連情報