私はWindowsサービスプログラミングを初めて利用しています。私は、Windowsサービスを書くときに、アカウントの種類を設定するための混乱があります。LocalSystemアカウントとLocalServiceアカウントで混乱しています
サービスの作成時に設定する必要のあるアカウントの種類を選択する方法や決定方法を教えてください。
私はWindowsサービスプログラミングを初めて利用しています。私は、Windowsサービスを書くときに、アカウントの種類を設定するための混乱があります。LocalSystemアカウントとLocalServiceアカウントで混乱しています
サービスの作成時に設定する必要のあるアカウントの種類を選択する方法や決定方法を教えてください。
通常、カスタムサービスを実行するための特別なウィンドウ(ネットワークを介して認証が必要なもののためのローカル専用アクセス用またはローカルアカウント用)を作成します。このようにして、アクセス許可を制限してロックし、必要なものだけにアクセスできるようにします。また、特定のユーザーが共有サーバー上で監視することにより、犯人またはリソースホッギングを確認することもできます。
アカウントに建てられた...
ローカルシステムについて: ビルトインローカルシステムユーザーアカウントがアクセス権限の高いレベルを持っています。これはAdministratorsグループの一部です。
ネットワークサービス: 組み込みのネットワークサービスユーザーアカウントの方がシステムに対するアクセス権限がLocalSystemユーザーアカウントよりも少なくなっていますが、ネットワークサービスユーザーアカウントはコンピュータアカウントの資格情報。
ローカルサービス: 組み込みのローカルサービスユーザーアカウントは、ネットワークサービスユーザーアカウントよりもコンピュータへのアクセス権限が少なく、これらのユーザー権限はローカルコンピュータに限られます。ワーカープロセスが実行されているサーバーの外部にアクセスする必要がない場合は、ローカルサービスのユーザーアカウントを使用します。 ソース(S): Microsoft TechNetの
のLocalSystem
LocalSystemアカウントは、サービスコントロールマネージャによって使用される定義済みのローカルアカウントです。このアカウントはセキュリティサブシステムによって認識されないため、LookupAccountName関数の呼び出しでその名前を指定することはできません。
ローカルコンピュータ上で広範な権限を持ち、ネットワーク上のコンピュータとして機能します。そのトークンにはNT AUTHORITY \ SYSTEMとBUILTIN \ Administrators SIDが含まれています。これらのアカウントはほとんどのシステムオブジェクトにアクセスできます。すべてのロケールでのアカウントの名前は\ LocalSystemです。名前、LocalSystemまたはComputerName \ LocalSystemも使用できます。このアカウントにはパスワードはありません。 CreateServiceまたはChangeServiceConfig関数の呼び出しでLocalSystemアカウントを指定すると、指定したパスワード情報は無視されます。
NetworkServiceアカウント
の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アカウントに関連付けられています。
ありがとうございます。地元のサービスアカウントでサービスを実行するシナリオの例を挙げてください。ありがとうございました。 –
最も簡単なことは、PCのサービスコンソールを調べることです...管理ツール - サービスの中のVista/XPで。ここでは、「ログオン・オン・アズ」列をソートして、各アカウントで開始されたサービスの種類を調べることができます。 これの簡単な例は、ローカルPCのuPNPデバイスをホストするUPnP検出サービスです。このサービスは、Microsoftが「ローカルサービス」アカウントを使用するように制限されたアクセスのみを必要とします。 – Jay