Dienstkonten und BITS

Sie können BITS verwenden, um Dateien aus einem Dienst zu übertragen. Der Dienst muss das Systemkonto LocalSystem, LocalService oder NetworkService verwenden. Diese Konten sind immer angemeldet; Daher werden Aufträge, die von einem Dienst mit diesen Konten übermittelt werden, immer ausgeführt.

Wenn ein Dienst, der unter einem Systemkonto ausgeführt wird, die Identität des Benutzers vor dem Aufruf von BITS angibt, antwortet BITS wie bei jedem Benutzerkonto (z. B. muss der Benutzer auf dem Computer angemeldet sein, damit die Übertragung erfolgen kann). Der Dienst sollte beim Annehmen der Identität des Benutzers auch eine dynamische Tarnung mit den BITS-Schnittstellenzeigern verwenden. Das Cloaking wird nicht geerbt. Daher müssen Sie die CoSetProxyBlanket-Funktion für jeden Schnittstellenzeiger aufrufen, den Sie von BITS erhalten (z. B. der Auftragszeiger, der vom Aufruf der IBackgroundCopyManager::CreateJob-Methode zurückgegeben wurde); Es reicht nicht aus, das Klonen auf den Manager-Schnittstellenzeiger festzulegen. Sie können auch die CoInitializeSecurity-Funktion für den Prozess aufrufen, anstatt die CoSetProxyBlanket-Funktion für jeden Schnittstellenzeiger aufzurufen.

Wenn der Dienst jedoch die Identität des Benutzers nicht angibt, gelten die folgenden Verhaltensweisen:

  • Aufträge, die vom Dienstkonto erstellt werden, gehören diesem Konto. Da Systemkonten immer angemeldet sind, überträgt BITS die Dateien, solange der Computer ausgeführt wird und eine Netzwerkverbindung besteht.
  • Systemkonten sollten keine zugeordneten Netzlaufwerkbuchstaben verwenden, da die Laufwerkbuchstaben sitzungsspezifisch sind und die Zuordnung nach einem Computerneustart möglicherweise verloren geht.
  • Wenn kein Hilfstoken vorhanden ist, verwendet die Netzwerkauthentifizierung Computeranmeldeinformationen für LocalSystem- und NetworkService-Konten sowie anonyme Anmeldeinformationen für das LocalService-Konto. BITS gibt "Zugriff verweigert" zurück, wenn die Zugriffssteuerungsliste (Access Control List, ACL) für die Quelldatei den Zugriff auf ein Benutzerkonto einschränkt.
  • Ausführliche Informationen zur Funktionsweise der Authentifizierung in Anwesenheit eines Hilfstokens finden Sie unter Authentifizierung.
  • Microsoft Internet Explorer Proxyeinstellungen werden pro Benutzer gespeichert und nicht für Systemkonten festgelegt. Erwägen Sie, ein Hilfstoken für Ihre BITS-Aufträge zu konfigurieren oder explizit die richtigen Proxyeinstellungen festzulegen, indem Sie IBackgroundCopyJob::SetProxySettings mit BG_JOB_PROXY_USAGE_OVERRIDE aufrufen. Alternativ können Sie die Schalter /Util /SetIEProxy von BitsAdmin.exe verwenden, um Internet Explorer Proxyeinstellungen für das Systemkonto LocalSystem, LocalService oder NetworkService festzulegen. Weitere Informationen finden Sie unter BitsAdmin Tool.

Beachten Sie, dass BITS die Proxyeinstellungen, die mithilfe der Proxycfg.exe-Datei festgelegt werden, nicht erkennt.