Windows サービス プログラミングは初めてです。Windows サービスの作成中にアカウントの種類を設定する方法について混乱しています。
サービスの作成中に設定する必要があるアカウントの種類を選択する方法または決定する方法は?
Windows サービス プログラミングは初めてです。Windows サービスの作成中にアカウントの種類を設定する方法について混乱しています。
サービスの作成中に設定する必要があるアカウントの種類を選択する方法または決定する方法は?
通常、カスタム サービスを実行するために、特別なウィンドウ (ローカルのみのアクセス用のローカル アカウント、またはネットワーク経由で認証する必要があるもの用のドメイン アカウント) アカウントを作成します。このようにして、アクセス許可を制限およびロックダウンして、必要なものだけにアクセスできるようにすることができます. また、共有サーバーを監視することで、どの特定のユーザーが犯人であるか、リソースを浪費しているかを確認できます。
組み込みアカウントについては...
出典: Microsoft Technet
ローカル システム
LocalSystem アカウントは、サービス コントロール マネージャーによって使用される定義済みのローカル アカウントです。このアカウントはセキュリティ サブシステムによって認識されないため、LookupAccountName 関数の呼び出しでその名前を指定することはできません。
ローカル コンピューターに対して幅広い権限を持ち、ネットワーク上のコンピューターとして機能します。そのトークンには、NT AUTHORITY\SYSTEM および BUILTIN\Administrators SID が含まれています。これらのアカウントは、ほとんどのシステム オブジェクトにアクセスできます。すべてのロケールでのアカウントの名前は .\LocalSystem です。名前、LocalSystem または ComputerName\LocalSystem も使用できます。このアカウントにはパスワードがありません。CreateService または ChangeServiceConfig 関数の呼び出しで LocalSystem アカウントを指定すると、指定したパスワード情報はすべて無視されます。
ネットワークサービス
NetworkService アカウントは、サービス コントロール マネージャーによって使用される定義済みのローカル アカウントです。このアカウントはセキュリティ サブシステムによって認識されないため、LookupAccountName 関数の呼び出しでその名前を指定することはできません。ローカル コンピューターに対して最小限の権限を持ち、ネットワーク上のコンピューターとして機能します。
このアカウントは、CreateService および ChangeServiceConfig 関数の呼び出しで指定できます。このアカウントにはパスワードがないため、この呼び出しで提供するパスワード情報は無視されることに注意してください。セキュリティ サブシステムはこのアカウント名をローカライズしますが、SCM はローカライズされた名前をサポートしません。したがって、LookupAccountSid 関数からこのアカウントのローカライズされた名前を受け取りますが、ロケールに関係なく、CreateService または ChangeServiceConfig を呼び出すときは、アカウントの名前を NT AUTHORITY\NetworkService にする必要があります。そうしないと、予期しない結果が発生する可能性があります。
NetworkService アカウントのコンテキストで実行されるサービスは、コンピューターの資格情報をリモート サーバーに提示します。既定では、リモート トークンには、Everyone グループと Authenticated Users グループの SID が含まれています。ユーザー SID は、SECURITY_NETWORK_SERVICE_RID 値から作成されます。
NetworkService アカウントには、HKEY_USERS レジストリ キーの下に独自のサブキーがあります。したがって、HKEY_CURRENT_USER レジストリ キーは NetworkService アカウントに関連付けられています。