私は、Windowsで実行されるプログラムが(HKEY_LOCAL_MACHINE
とHKEY_CURRENT_USER
の両方の)レジストリの下に格納されていることを知っています。
- /Software/Microsoft/Windows/CurrentVersion/Run
- /Software/Microsoft/Windows/CurrentVersion/RunOnce
しかし、ここでエントリを削除すると(または、msconfigを使用してプログラムを自動起動から無効にすると)、無効なプログラムに関する情報はどこに保存されますか?
私はしないもうWindowsで実行するプログラムを意味しますが、msconfig-> autorun それらは「無効」としてマークされています。
以下をご覧ください:
\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run
次の各エントリに対応するエントリが1つあるはずです。
\Software\Microsoft\Windows\CurrentVersion\Run
これはバイナリ値です。「0200 00 00 ...」は有効を意味し、その他の値は無効を意味するようです。
私はWindows 8.1でこれを調査しましたが、レジストリキーはWindows 7と同じであると想定しています。ただし、8.xでは、msconfigではなく「タスクマネージャ」で自動起動プログラムを無効にします。
regeditを使用して手動で削除すると、最初にバックアップを作成しない限り、完全に削除されます。
MSConfigを使用してそれらを無効にした場合、無効にされたレジストリ全体で見つけることができます
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg
および無効スタートアップエントリ1 で
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupfolder
。
そこにあるサブキーには、無効にされたキーを復元するために必要な情報が含まれています。そこにあるキーは安全に削除できますが、後でMSConfigを使用して復元することはできません。
注: MSConfigには、グループポリシーまたはWindows7タスクスケジューラのアイテムは含まれていません。
1 ユーザーのスタートアップフォルダからのエントリ(スタート→プログラム→スタートアップ)。
@ピーターハーンドルフ、それは正しくありません。
Win7にはStartupApprovedキーがありません。代わりにmsconfigを使用します。
HKLM\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg HKLM\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupfolder
Win 8/10 StartupApprovedには、バイナリ値 "06 00 00 00"を含めることもできます。私はこれらのフラグの完全な列挙を知りませんが、それが有効かどうかを確認する信頼できる方法のようです-FILETIME構造を表す次の8バイトを確認してください。すべてのバイトがゼロの場合-レコードが有効になります。