Dienstkonten und BITS
Sie können BITS verwenden, um Dateien von einem Dienst zu übertragen. Der Dienst muss das Systemkonto "LocalSystem", "LocalService" oder "NetworkService" verwenden. Diese Konten werden 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, den Benutzer vor dem Aufrufen von BITS imitiert, antwortet BITS wie für jedes Benutzerkonto (z. B. muss der Benutzer bei dem Computer angemeldet sein, damit die Übertragung erfolgt). Der Dienst sollte beim Identitätswechsel des Benutzers auch dynamisches Verschließen mit den BITS-Schnittstellenzeigern verwenden. Das Klonen 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 Aufrufen des IBackgroundCopyManager::CreateJob-Methode zurückgegeben wurde); Es reicht nicht aus, um das Manteln auf dem 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 den Benutzer jedoch nicht imitiert, gelten die folgenden Verhaltensweisen:
- Aufträge, die vom Dienstkonto erstellt wurden, 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 für eine Sitzung spezifisch sind und die Zuordnung nach einem Computerneustart verloren gehen kann.
- Wenn kein Hilfstokenvorhanden ist, verwendet die Netzwerkauthentifizierung Computeranmeldeinformationen für LocalSystem- und NetworkService-Konten und 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 beschränkt.
- Ausführliche Informationen zur Funktionsweise der Authentifizierung im Vorhandensein eines Hilfstokensfinden Sie unter Authentifizierung.
- Microsoft Internet Explorer-Proxyeinstellungen werden pro Benutzer gespeichert und sind 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_OVERRIDEaufrufen. Alternativ können Sie die /Util /SetIEProxy Switches von BitsAdmin.exe verwenden, um Internet Explorer-Proxyeinstellungen für das Systemkonto "LocalSystem", "LocalService" oder "NetworkService" festzulegen. Ausführliche Informationen finden Sie unter BitsAdmin Tool.
Beachten Sie, dass BITS die Proxyeinstellungen, die mithilfe der Proxycfg.exe Datei festgelegt werden, nicht erkennt.