Comptes de service et BITS
Vous pouvez utiliser BITS pour transférer des fichiers à partir d’un service. Le service doit utiliser le compte système LocalSystem, LocalService ou NetworkService. Ces comptes sont toujours connectés ; par conséquent, les travaux soumis par un service à l’aide de ces comptes s’exécutent toujours.
Si un service s’exécutant sous un compte système emprunte l’identité de l’utilisateur avant d’appeler BITS, BITS répond comme il le ferait pour n’importe quel compte d’utilisateur (par exemple, l’utilisateur doit être connecté à l’ordinateur pour que le transfert se produise). Le service doit également utiliser le maquage dynamique avec les pointeurs d’interface BITS lors de l’emprunt d’identité de l’utilisateur. Le cloaking n’étant pas hérité, vous devez appeler la fonction CoSetProxyBlanket sur chaque pointeur d’interface que vous recevez de BITS (par exemple, le pointeur de travail retourné après l’appel de la méthode IBackgroundCopyManager::CreateJob ) ; il ne suffit pas de définir le masquetage sur le pointeur d’interface du gestionnaire. Vous pouvez également appeler la fonction CoInitializeSecurity pour le processus au lieu d’appeler la fonction CoSetProxyBlanket sur chaque pointeur d’interface.
Toutefois, si le service n’emprunte pas l’identité de l’utilisateur, les comportements suivants s’appliquent :
- Les travaux créés par le compte de service appartiennent à ce compte. Étant donné que les comptes système sont toujours connectés, BITS transfère les fichiers tant que l’ordinateur est en cours d’exécution et qu’il existe une connexion réseau.
- Les comptes système ne doivent pas utiliser de lettres de lecteur réseau mappées, car les lettres de lecteur sont spécifiques à une session et le mappage peut être perdu après le redémarrage d’un ordinateur.
- En l’absence d’un jeton d’assistance, l’authentification réseau utilise les informations d’identification de l’ordinateur pour les comptes LocalSystem et NetworkService et les informations d’identification anonymes pour le compte LocalService. BITS retourne « accès refusé » si la liste de contrôle d’accès (ACL) du fichier source limite l’accès à un compte d’utilisateur.
- Pour plus d’informations sur le fonctionnement de l’authentification en présence d’un jeton d’assistance, consultez Authentification.
- Les paramètres de proxy Microsoft Internet Explorer sont stockés par utilisateur et ne sont pas définis pour les comptes système. Envisagez de configurer un jeton d’assistance sur vos travaux BITS ou de définir explicitement les paramètres de proxy appropriés en appelant IBackgroundCopyJob::SetProxySettings avec BG_JOB_PROXY_USAGE_OVERRIDE. Vous pouvez également utiliser les commutateurs /Util /SetIEProxy de BitsAdmin.exe pour définir les paramètres de proxy Internet Explorer pour le compte système LocalSystem, LocalService ou NetworkService. Pour plus d’informations, consultez BitsAdmin Tool.
Notez que BITS ne reconnaît pas les paramètres de proxy définis à l’aide du fichier Proxycfg.exe.