2009-08-19 18 views
3

Je suis nouveau dans la programmation des services Windows. J'ai de la confusion sur ce qu'il faut définir le type de compte lors de l'écriture d'un service Windows.Confus sur les comptes LocalSystem et LocalService

Comment choisir ou comment déterminer le type de compte que nous devons définir lors de l'écriture d'un service?

Répondre

4

Nous créons généralement des fenêtres spéciales (locales pour l'accès local uniquement ou compte de domaine pour les éléments qui doivent s'authentifier sur le réseau) pour exécuter des services personnalisés. De cette façon, nous pouvons restreindre et verrouiller les permissions pour nous assurer qu'elles n'ont accès qu'à ce dont nous avons besoin. Vous pouvez également voir quels utilisateurs spécifiques sont coupables ou consulter des ressources avec surveillance sur un serveur partagé.

En ce qui concerne la construction dans les comptes ...

système local: Le compte intégré utilisateur LocalSystem dispose d'un haut niveau de privilèges d'accès; il fait partie du groupe Administrateurs. Le compte d'utilisateur du service réseau intégré a moins de privilèges d'accès sur le système que le compte d'utilisateur LocalSystem, mais le compte d'utilisateur du service réseau peut toujours interagir sur le réseau avec les informations d'identification du compte d'ordinateur. .

Service local: Le compte d'utilisateur du service local intégré dispose de moins de privilèges d'accès sur l'ordinateur que le compte d'utilisateur du service réseau, et ces privilèges d'utilisateur sont limités à l'ordinateur local. Utilisez le compte d'utilisateur du service local si le processus de travail ne nécessite pas d'accès en dehors du serveur sur lequel il s'exécute. Source (s): Microsoft Technet

+0

Merci Jay. Pouvez-vous donner quelques exemples de senarios où nous exécutons le service dans le compte de service local. Je vous remercie. –

+0

La chose la plus simple serait de regarder dans la console Services de votre PC ... IN vista/XP dans Admin Tools - Services. À partir de là, vous pouvez trier dans la colonne "Connexion en tant que" et rechercher les types de services démarrés pour chaque compte. Un exemple simple de ceci est le service de détection UPnP qui héberge des périphériques uPNP sur votre PC local. Ce service nécessite uniquement un accès limité afin que Microsoft utilise le compte "Service local". – Jay

1

LocalSystem

Le compte LocalSystem est un compte local prédéfini utilisé par le gestionnaire de contrôle de service. Ce compte n'est pas reconnu par le sous-système de sécurité, vous ne pouvez donc pas spécifier son nom dans un appel à la fonction LookupAccountName.

Il dispose de privilèges étendus sur l'ordinateur local et fait office d'ordinateur sur le réseau. Son jeton inclut les SID NT AUTHORITY \ SYSTEM et BUILTIN \ Administrators; ces comptes ont accès à la plupart des objets système. Le nom du compte dans tous les paramètres régionaux est. \ LocalSystem. Le nom, LocalSystem ou ComputerName \ LocalSystem peut également être utilisé. Ce compte n'a pas de mot de passe. Si vous spécifiez le compte LocalSystem dans un appel à la fonction CreateService ou ChangeServiceConfig, les informations de mot de passe que vous fournissez sont ignorées.

NetworkService

Le compte NetworkService est un compte local prédéfini utilisé par le gestionnaire de contrôle de service. Ce compte n'est pas reconnu par le sous-système de sécurité, vous ne pouvez donc pas spécifier son nom dans un appel à la fonction LookupAccountName. Il a des privilèges minimum sur l'ordinateur local et agit comme l'ordinateur sur le réseau.

Ce compte peut être spécifié dans un appel aux fonctions CreateService et ChangeServiceConfig. Notez que ce compte n'a pas de mot de passe. Par conséquent, les informations de mot de passe que vous fournissez dans cet appel sont ignorées. Alors que le sous-système de sécurité localise ce nom de compte, le SCM ne prend pas en charge les noms localisés. Par conséquent, vous recevrez un nom localisé pour ce compte à partir de la fonction LookupAccountSid, mais le nom du compte doit être NT AUTHORITY \ NetworkService lorsque vous appelez CreateService ou ChangeServiceConfig, sans tenir compte des paramètres régionaux, ou des résultats inattendus peuvent se produire.

Un service exécuté dans le contexte du compte NetworkService présente les informations d'identification de l'ordinateur aux serveurs distants. Par défaut, le jeton distant contient des SID pour les groupes Tout le monde et Utilisateurs authentifiés. Le SID de l'utilisateur est créé à partir de la valeur SECURITY_NETWORK_SERVICE_RID.

Le compte NetworkService a sa propre sous-clé sous la clé de Registre HKEY_USERS. Par conséquent, la clé de Registre HKEY_CURRENT_USER est associée au compte NetworkService.