外部プログラムやコマンドを使用せずに、コマンド プロンプトや PowerShell のみを使用して、アプリケーションを TrustedInstaller または SYSTEM として実行するにはどうすればよいですか?
答え1
私の知る限り、ログインする簡単な方法はありませんシステムまたは信頼できるインストーラMicrosoft独自の(正確にはRussinovichのSysinternalsの)サードパーティツールを使用せずにPsExec、Nirsoftのニルコマンドまたはソルダムパワーラン。
しかし、これらのツールを活用するのは簡単です現れるWindows GUIにネイティブであること、つまり実行ファイルのコンテキストメニュー項目として、特定のツールを右クリックメニューに追加するレジストリ調整。
[これらの権限があっても、時には簡単なタスク、例えば登録所有するキーを変更する信頼できるインストーラ所有権を取得せずに。
答え2
からhttps://www.tiraniddo.dev/2017/08/the-art-of-becoming-trustedinstaller.html、これが私のマシンで試した手順です
- PowerShellを開きます(管理者として)
- PS> インストールモジュール -Name NtObjectManager
- PS> Start-Service -Name TrustedInstaller
- PS> $parent = Get-NtProcess -ServiceName TrustedInstaller
- PS> $proc = New-Win32Process cmd.exe -CreationFlags NewConsole -ParentProcess $parent
注:
Install-Module
モジュールをインポートするには 1 回だけ実行する必要があります。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"