管理者権限なしでプログラムを実行し、UACプロンプトをバイパスする方法は?
多くのプログラムは、起動時に権限の昇格(アプリアイコンのシールド)が必要ですが、実際には、通常の操作には管理者権限は必要ありません。たとえば、 ProgramFilesのアプリフォルダでユーザーに手動で権限を付与できます。 および/またはプログラムによって使用されるレジストリキー。そのため、管理者以外のユーザーアカウントでこのようなプログラムを開始すると、UACプロンプトが表示され、ユーザーは管理者パスワードを入力する必要があります(コンピューターでユーザーアカウント制御が有効になっている場合)。このメカニズムを回避するには、多くのユーザーがUACを無効にするか、ローカルグループ「Administrators」にユーザーアカウントを追加してユーザーに管理者権限を付与します。もちろん、どちらの方法も安全ではありません。
一部のWindowsアプリが標準ユーザーで実行されず、管理者権限が必要なのはなぜですか?
アプリは、C:\ Program Files(x86)\ SomeApp内の独自のフォルダーにある一部のファイル(ログ、構成など)を変更するために管理者権限を必要とする場合があります。デフォルトでは、ユーザーにはこのディレクトリに対する編集(書き込みおよび変更)権限がありません。このプログラムを正常に動作させるには、管理者権限が必要です。この問題を解決するには、変更を手動で許可する必要があります および/または書き込み NTFSファイルシステムレベルでのアプリフォルダのユーザー(または組み込みのUsersグループ)のアクセス許可。
注 。実際には、変更するアプリケーションデータをC:\ProgramFilesの下の独自のフォルダーに保存することはお勧めしません。アプリのデータをユーザープロファイルに保存することをお勧めします。しかし、それはアプリ開発者の怠惰と無能さの問題です。
以前、 RunAsInvokerを使用して特定のアプリのUACプロンプトを無効にする方法について説明しました パラメータ。ただし、この方法は十分な柔軟性がありません。
/SAVECRED
を使用して、(Windows Credentials Managerで)保存された管理者パスワードでRunAsを使用することもできます。 オプション。また、ユーザーは保存された管理者クレデンシャルパスワードを使用して、このコンピューターで任意のプログラムを実行できるため、安全ではありません。
管理者権限なしで(管理者パスワードを入力せずに)、UACを有効にして(UACスライダーのレベル4、3、または2)、プログラムを強制的に実行する簡単な方法を考えてみましょう。
レジストリエディタを例として取り上げましょう— regedit.exe (C:\ Windows \フォルダーにあります)。アプリアイコンの横にあるUACシールドに注目してください。このアイコンは、このプログラムを実行するためにUACを介した特権の昇格が要求されることを意味します。
regedit.exe
を実行する場合 、管理者の資格情報を要求する[ユーザーアカウント制御]ウィンドウが表示されます(Do you want to allow this app to make changes to your device?
)。パスワードを入力せず、昇格を確認しないと、アプリは起動しません。
このプログラムのUACリクエストをバイパスしてみましょう。テキストファイルを作成しますrun-as-non-admin.bat デスクトップに次のコードが含まれています:
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %1"
管理者権限なしでregedit.exeを強制的に実行し、UACプロンプトを非表示にするには、開始するEXEファイルをデスクトップ上のこのBATファイルにドラッグするだけです。
次に、レジストリエディタは、UACプロンプトなしで、管理者パスワードを入力せずに起動する必要があります。タスクマネージャを開いて高架を追加した場合 列には、昇格されたステータスのないregedit.exeプロセスがあることがわかります(管理者以外のユーザー権限で実行されます)。
HKEY_LOCAL_MACHINEレジストリハイブのパラメータを編集してみてください。ご覧のとおり、ユーザーはこのレジストリキーの項目を編集できません(ユーザーにはシステムレジストリキーへの書き込み権限がありません)。ただし、ユーザーハイブ(HKEY_CURRENT_USER)でレジストリキーとパラメーターを追加または編集できます。
同様に、BATファイルを使用して任意のアプリを実行できます。実行可能ファイルへのパスを指定するだけです。
run-app-as-non-admin.bat
Set ApplicationPath="C:\Program Files\SomeApp\testapp.exe"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"
昇格せずにすべてのアプリを実行できるコンテキストメニューを追加することもできます。これを行うには、RunAsUser.REGファイルを作成し、次のコードをコピーして保存し、regファイルをダブルクリックしてWindowsレジストリにインポートします(この変更を適用するには、管理者権限が必要です)。
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker] @="Run as user without UAC privilege elevation" [HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker\command] @="cmd /min /C \"set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"%1\"\""
その後、管理者権限なしでアプリケーションを実行するには、[UAC権限昇格なしでユーザーとして実行]を選択するだけです。 」をファイルエクスプローラのコンテキストメニューに表示します。
GPOを使用してレジストリパラメーターをインポートすることにより、ドメイン内のすべてのコンピューターにこのオプションを展開できます。RUNASINVOKERモードでプログラムを使用しても、プログラムを昇格させることはできません。 RunAsInvokerは、UACプロンプトを抑制し、現在のユーザーのアクセス許可で実行する必要があり、特権の昇格を要求しないようにプログラムに指示します。プログラムがシステム設定やファイルを編集するために本当に昇格された権限を必要とする場合、プログラムは機能しないか、管理者権限を再度要求します。
__COMPAT_LAYERでRunAsInvokerを使用してUACをバイパスする方法
環境変数__COMPAT_LAYERを使用すると、アプリケーションにさまざまな互換性レベル(互換性)を設定できます。 EXEファイルのプロパティのタブ)。この変数を使用して、プログラムの開始時に使用する互換性設定を指定できます。たとえば、Windows 8互換モードで640×480の解像度でアプリを起動するには、次のように設定します。
set __COMPAT_LAYER=Win8RTM 640x480
__COMPAT_LAYER変数には、関心のあるいくつかのオプションがあります。次のパラメーターがあります。
- RunAsInvoker –UACプロンプトなしで親プロセスの権限でアプリを実行します。
- RunAsHighest –ユーザーが利用できる最高レベルの権限でプログラムを実行します(ユーザーが管理者権限を持っている場合はUACプロンプトが表示されます)。
- RunAsAdmin –管理者としてアプリを実行します(UACプロンプトが毎回表示されます)。
次のCMDコードは、現在のプロセスのRunAsInvokerモードを有効にし、指定されたプログラムを昇格なしで実行します。
set __COMPAT_LAYER=RUNASINVOKER
start "" "C:\Program Files\MyApp\testapp.exe"
EXEファイルマニフェストでRunAsInvokerモードを有効にする
上で述べたように、Windows 10は、実行するために高度を必要とするプログラムのUACシールドアイコンを表示します。開発者は、プログラムでアプリケーションをコンパイルするときにこの要件を設定しますマニフェスト 。
任意のexeファイルのマニフェストを編集し、プログラムを昇格モードで実行するための要件を無効にすることができます。
プログラムマニフェストを編集するには、無料の Resource Hackerを使用できます 道具。 ResourceHackerでアプリの実行可能ファイルを開きます。
この例では、Autologon.exe
のマニフェストを編集します Sysinternalsによるツール。パスワードなしでWindowsに自動的にログインするために使用できます。 左側のツリーで、マニフェストセクションに移動し、プログラムマニフェストを開きます。次のxmlセクションに注意してください:
<requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges>
requireAdministratorのおかげです Windowsが常にこのプログラムを管理者として実行しようとするオプション。
requireAdministratorをasInvokerに変更します 変更をexeファイルに保存します。
これで、UACシールドがプログラムアイコンから消え、現在のユーザー権限で管理者パスワードを要求せずに実行できることに注意してください。
実行可能アプリファイルがMSAuthenticode(コード署名証明書)で署名されている場合、exeファイルを変更した後、動作を停止したり、警告を発したりすることがあります。
この場合、プログラムに外部マニフェストファイルを使用させることができます。プレーンテキストファイルappname.exe.manifestを作成します (たとえば、Autologon.exe.manifest
)exeファイルのあるディレクトリにあり、マニフェストコードをResourceHackerからそのディレクトリにコピーします。 requireAdministratorをasInvokerに変更します 。マニフェストファイルを保存します。
exeファイルを起動するときにWindowsが常に外部マニフェストファイルの使用を試みるようにするには、特別なレジストリパラメータを有効にします。
REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide" /v PreferExternalManifest /t REG_DWORD /d 1 /f
Windowsを再起動し、プログラムが管理者権限なしで実行するように指示する外部マニフェストファイルを使用していることを確認します。
-
RaspberryPiでKodiとNetflixを実行する方法
Raspberry Piをメディアセンターに変えて、互換性のあるテレビやモニターにコンテンツをストリーミングできるようにしたいですか?最近のDRM(デジタル著作権管理)の更新のおかげで、KodiユーザーはNetflixを含むこれまで以上に多くのコンテンツにアクセスできるようになりました。 このチュートリアルでは、Kodiメディアセンターを使用してRaspberryPiにNetflixをインストールする方法を学習します。このチュートリアルを終了すると、KodiソフトウェアとNetflixプラグインがインストールされ、RaspberryPiを介してNetflixのカタログ全体をストリーミングでき
-
Windows 8 で管理者パスワードとその他のパスワードをバイパスする方法
Windows 8 を起動するたびにパスワードを入力することに煩わされたことはありませんか?パスワードを忘れたとき、あなたは熱い鍋にいる蟻のように落ち着きませんか? Windows 8 ユーザーとして、私もこのようなパスワード関連の問題に悩まされています。したがって、インターネットで検索して、Windows 8 のパスワード キーをいくつか収集します。ここで、Windows 8 のパスワード ログインを回避するために役立つ情報を共有したいと思います。 状況 1:既知のパスワードを使用して Windows 8 のパスワード画面をバイパスする方法 既知のパスワードで Windows 8 にログイ