ローカル マシン上のソフトウェアを更新するアプリケーションがあります。ユーザーがログオンする前にソフトウェアを更新する必要がありますが、RunServicesOnce
この目的にはレジストリ キーを介してアプリケーションを実行するのが最も適していると思われます。
しかし、 を使用してこのキーを見つけることができずregedit
、 の HKLM RunOnce キーと同じ場所に表示されませんHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
。
- このキーはどこにありますか? Windows XP \ Vista \ 7 \ 8 \ 8.1 \ 10 でも同じですか?
- どのように使用すればいいですか?オプションのパラメータはありますか?
- アプリケーションが実行されるユーザーをどのように判断しますか? キーを作成したユーザーによって実行されますか? サービスが
LocalSystem
キーを作成する場合、そのユーザーとして実行されますかLocalSystem
?
答え1
RunServicesOnceレジストリキーはどこにありますか
ローカルマシンのソフトウェアを更新するアプリケーションがあります。ユーザーがログオンする前にソフトウェアを更新する必要があります。
ユーザーがログオンする前にプログラムを起動する Windows 7
ユーザーがログオンする前に起動したい場合は、サービスとして起動する必要があります。以下は、bootmgr が読み込まれた直後から始まり、2 つのスタートアップ フォルダー内のプログラム ショートカット エントリで終わる、主要なレジストリ キーの起動シーケンスです。
- HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute。これには、chkdsk の実行をスケジュールする指示が含まれますが、ユーザー プログラムは含まれません。
- 次にサービスが開始され、その後に RunServicesOnce および RunServices レジストリ キー (存在する場合) が続きます。
- ユーザーはシステムにログオンします
- HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\UserInit。これはプログラム C:\WINDOWS\system32\userinit.exe を指し、エントリはコンマで終わります。他のプログラムは、追加してコンマで区切ることで、このキーから起動できます。
- HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell。これには、explorer.exe という 1 つのエントリのみが含まれている必要があります。
- すべてのユーザーのこれらの 2 つのレジストリ キーのプログラム エントリは、次のとおりです: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run および \RunOnce
- CURRENT USER のこれらの 2 つのレジストリ キーのプログラム エントリは、次のように開始されます: HKCU\Software\Microsoft\Windows\CurrentVersion\Run および \RunOnce
- すべてのユーザーと現在のユーザーのスタートアップ フォルダー内のプログラムは最後に起動されます。
ウイルス対策やファイアウォールなどの重要なプログラムは、サービスとしてシーケンスの早い段階で起動します。通知領域 (画面の右下) に表示されるアイコンは、オプションや設定などのユーザー インターフェイスです。
64 ビット コンピューター内の 32 ビット ソフトウェアの追加の場所は、HKLM\SOFTWARE\Wow6432Node と HKCU です。
実行キーと検索順序
レジストリは NT カーネルがロードされる前でもアクセスされるため、起動時にコンピュータがロードするように構成されている内容を理解することは非常に重要です。次のレジストリ キーのリストは、システムの起動時に、さまざまな Windows コンポーネントによって使用される順序でアクセスされます。
- HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute
- HKLM\System\CurrentControlSet\Services (開始値 0 はカーネルの初期化前に読み込まれるカーネル ドライバーを示します)
- HKLM\System\CurrentControlSet\Services (開始値 2、自動開始、3、SCM 経由の手動開始)
- HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
- HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
- HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
- HKCU\ソフトウェア\Microsoft\Windows\現在のバージョン\RunServices
- HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify
- HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
- HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
- HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
- HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad
- HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
- HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
- HKLM\Software\Microsoft\Windows\CurrentVersion\Run
- HKCU\Software\Microsoft\Windows\CurrentVersion\実行
- HKCU\ソフトウェア\Microsoft\Windows\現在のバージョン\RunOnce
- HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
- HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
- HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\load
- HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows
- HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SharedTaskScheduler (XP、NT、W2k のみ)
- HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs
注記:これらのキーの一部は、64 ビット アーキテクチャおよび 64 ビット バージョンの Windows で実行されているシステムでは、HKLM\Software\wow6432node にも反映されます。この記事では、これらについてそれぞれ説明しません。
アカウントがネットワーク リソースにアクセスする必要がある場合を除き、サービスを LocalSystem アカウントとして実行します。その場合は、ドメイン サービス アカウントを作成し、該当するリソースへのアクセス権を付与して、サービスを実行するための資格情報をハードコードします。ローカル マシンでは、すべてに対する管理者権限が付与され、サービス資格情報にパスワードは必要ありません。
ローカルシステムアカウント
のローカルシステムアカウントは、 サービス制御マネージャーこのアカウントはセキュリティサブシステムによって認識されないため、 アカウント名の検索機能。ローカルコンピュータ上で広範な権限を持ち、ネットワーク上のコンピュータとして機能します。トークンには、NT AUTHORITY\システムそしてビルトイン\管理者SID; これらのアカウントはほとんどのシステムオブジェクトにアクセスできます。すべてのロケールでのアカウント名は.\ローカルシステム。 名前、ローカルシステムまたは コンピュータ名\ローカルシステムも使用できます。このアカウントにはパスワードがありません呼び出しでLocalSystemアカウントを指定すると、 サービスの作成またはサービス構成の変更機能では、提供したパスワード情報はすべて無視されます。