Artikel-ID: 816789 - Geändert am: Dienstag, 12. Juli 2005 - Version: 5.2

Lesezugriff auf die jeder wird zu Gruppe entfernt, nach der Installation von Exchange 2000 SP3

SystemtippDieser Artikel bezieht sich auf ein anderes Betriebssystem als das von Ihnen verwendete. Für Sie möglicherweise nicht relevante Artikelinhalte wurden deaktiviert.

Auf dieser Seite

Alles erweitern | Alles schließen

Problembeschreibung

Wenn Sie SMTP (Simple Mail Transfer Protocol) mithilfe von einer Anwendung Collaboration Data Objects für Windows (CDOSYS), ein Collaboration Data Objects für Exchange 2000 (CDOEX) Anwendung oder System.Web.Mail auf einem Computer senden, auf dem Exchange 2000 Server Service Pack 3 (SP3) installiert, erhalten Sie folgende Fehlermeldung:
CDO.Message.1 (0x80040220)
Der "SendUsing"-Konfigurationswert ist ungültig.
Hinweis: System.Web.Mail ist ein verwalteter Wrapper zu CDOSYS, mit der Sie erstellen und Senden von Nachrichten mithilfe der CDOSYS-Nachrichtenkomponente.

Ursache

Für die Gruppe Jeder Lesezugriff auf die Internet Information Services (IIS)-Metabase und der Microsoft Active Directory-Verzeichnisdienst entfernt wurde dieses Problem rührt Gruppe. Dieser Zugriff wurde wegen einer Änderung Sicherheit in Exchange 2000 Server SP3 entfernt. CDOEX und CDOSYS mit System.Web.Mail müssen auf der IIS-Metabasis Zugriff auf Informationen über den Pfad zu der pickup-Verzeichnis zugreifen. Dieses Verhalten, wenn Sie die Sendusingpickup -Methode verwenden und diese Informationen in der Anwendungscode nicht angegeben ist. Da der Zugriff eingeschränkt ist, kann nicht der nicht-administrative Benutzer, dessen Sicherheitskontext die Anwendung ausgeführt wird, diese Informationen von der IIS-Metabase und Active Directory lesen.

Lösung

Um dieses Problem zu umgehen, verwenden Sie eine der Abhilfen im Abschnitt "Problemumgehungen".

Hinweis: Der Beispielcode für die Problemumgehungen wird in den Kontext einer Seite (Active Server Pages) geschrieben.

Problemumgehungen

Um dieses Problem zu umgehen, müssen Sie die Konfiguration oder den Code ändern. Konfigurationsänderungen können schnell aus zurückgesetzt werden, aber mehr bewusst und berücksichtigen der Sicherheit der Anwendung und seine Ressourcen müssen Änderungen am Code vorgenommen werden.

Hinweis: Wiederherstellen von Lesezugriff auf die IIS-Metabasis für die jeder ist Gruppe keine Abhilfe für dieses Problem. Dieser Zugriff wiederherstellen reintroduces Sicherheitslücken, die Exchange 2000 Server SP3 behebt.

Verwenden Sie eine der folgenden Abhilfen, so dass Sie CDOEX und CDOSYS Anwendungen, verwenden Nachdem Sie Exchange 2000 Server SP3 anwenden. In Abhilfe 1 und Abhilfe 2 ändern Sie die administrative Konfiguration. In den Abhilfe 3 und Abhilfe 4 ändern Sie den Code. Obwohl Sie nur eine Problemumgehung zur Behebung des Problems angewendet haben, müssen Sie entscheiden, die Problemumgehung die geeignetste Lösung für die Anwendung des Benutzers ist.

Um die administrative Konfiguration zu ändern, müssen Sie selektiv Zugriff auf die IIS-Metabasis gewähren. In Abhilfe 1 und Abhilfe 2 der Anwendungscode wird nicht geändert, jedoch die Konten, die Lesezugriff auf die IIS-Metabasis benötigen Zugriff gewährt. Sie können entweder IIS-Metabase-Zugriff auf das Konto gewähren, dass die Anwendung unter (Abhilfe 1) ausgeführt wird oder Sie können ein neues Konto erstellen, für diesen Zweck (Abhilfe 2).

Die Adadd.vbs, Adlist.vbs und Addel.vbs Skript Dateien gewähren Sie Zugriff auf die IIS-Metabasis. Finden Sie im Abschnitt "Anhang" am Ende dieses Artikels Weitere Informationen zu diesen Skriptdateien.

Da CDO (Collaboration Data Objects) die RevertToSelf -Funktion, aufruft bevor Sie die IIS-Metabasis zugreift, können Sie das Konto hinzufügen, auf dem der Anwendungsprozess ausgeführt wird. Für eine typische ASP-Seite ist dies das Konto IWAM_ ComputerName.

1. Umgehungsmöglichkeit

Die am wenigsten destabilisierend Option ist auf welches Konto die Anwendungen unter ausgeführt werden, und gewähren Sie dem Kontozugriff auf die IIS-Metabasis. Jedoch: Da Anwendungen das vorhandene Konto (z. B. IWAM_ XXX oder IUSR_ XXX) verwenden können, dann kann diese Problemumgehung Sicherheitslücken verursachen, wenn diese Anwendungen Zugriff auf die IIS-Metabasis gewährt werden. Der Vorteil dieser Problemumgehung ist, dass der Anwendungscode und die SMTP-Konfiguration nicht geändert werden. Der Nachteil dieser Problemumgehung ist, dass es unnötig Zugriff auf die IIS-Metabasis gewähren kann.

Gehen Sie folgendermaßen vor um das Konto zu bestimmen, unter die Anwendung ausgeführt wird, und dem Kontozugriff auf die IIS-Metabasis zu gewähren:
  1. Speichern Sie die .vbs-Dateien in einem Verzeichnis auf Ihrem Server.
  2. Suchen Sie in IIS das virtuelle Verzeichnis, das die Anwendung enthält, klicken Sie mit der rechten Maustaste auf das virtuelle Verzeichnis und klicken Sie dann auf Eigenschaften .
  3. Klicken Sie auf die Registerkarte Verzeichnissicherheit , und klicken Sie dann unter Authentifizierung und Zugriffsteuerung auf Bearbeiten .
  4. Im Dialogfeld Authentifizierungsmethoden sicher, dass das Kontrollkästchen Anonymer Zugriff aktiviert ist, und klicken Sie dann unter Konten für den anonymen Zugriff verwendet , auf Bearbeiten .
  5. Notieren Sie die Konto-Namen, der im Dialogfeld Anonymes Benutzerkonto angezeigt wird.
  6. Klicken Sie auf Abbrechen , um die Dialogfelder zu schließen.
  7. Ändern Sie an einer Eingabeaufforderung das Verzeichnis in das Verzeichnis, das die VBS-Dateien in Schritt 1 enthält.
  8. Verwenden Sie Adadd.vbs, um Zugriff auf die IIS-Metabasis auf das Konto gewähren, die Sie in Schritt 5 notiert haben. Führen Sie hierzu den folgenden Befehl an der Eingabeaufforderung ein:

    Cscript adadd.vbs ComputerName \ AccountName

    Hinweis: Auf einem Domänencontroller verwenden DomainName \ AccountName, oder geben keinen der Computername oder Domänenname. Sie müssen nur AccountName nach adadd.vbs bereitstellen. Um IWAM_ computername auf einem Domänencontroller hinzuzufügen, führen Sie einen der folgenden Befehle an der Eingabeaufforderung:

    Cscript adadd.vbs \IWAM_ DomainNameComputerName

    -oder-

    Cscript adadd.vbs IWAM_ ComputerName

    Sie müssen IIS-Metabase-Zugriff auf das Konto IWAM_ ComputerName manchmal auch erteilen, mithilfe von Adadd.vbs. Führen Sie hierzu den folgenden Befehl an der Eingabeaufforderung ein:

    Cscript adadd.vbs ComputerName \IWAM_ ComputerName
  9. Verwenden Sie Adlist.vbs um zu überprüfen, dass das Konto der IIS-Metabasis Zugriffsliste hinzugefügt wurde. Führen Sie hierzu den folgenden Befehl an der Eingabeaufforderung ein:

    Cscript-adlist.vbs
  10. Beenden und starten Sie den IIS-Verwaltungsdienst und alle abhängigen Dienste neu.
  11. Gewähren Sie auf Computern mit Exchange 2000, Benutzer Schreibzugriff auf den Pfad zum Programm Files\exchsrvr\mailroot\vsi # \pickup Verzeichnis ein. Gewähren Sie auf Computern, die nicht Exchange 2000 ausgeführt werden, Benutzer Schreibzugriff auf den Verzeichnispfad Inetpub\mailroot\pickup ein.
  12. Warten Sie, Active Directory in die IIS-Metabase repliziert.
  13. Führen Sie die Anwendung aus.

    Die Anwendung nun funktioniert wie erwartet.

Problemumgehung 2

Erstellen Sie ein Konto, der IIS-Metabasis, Kontozugriff erteilen und dann konfigurieren Sie das virtuelle Verzeichnis, auf dem die Anwendung ausgeführt wird, als das Konto ausgeführt. Der Vorteil dieser Problemumgehung ist, dass der Anwendungscode und die SMTP-Konfiguration nicht geändert werden.

Um ein neues Konto für die Anwendung ausgeführt und Konfigurieren des virtuellen Verzeichnisses zu erstellen, gehen Sie folgendermaßen vor:
  1. Speichern Sie die .vbs-Dateien in einem Verzeichnis auf Ihrem Server.
  2. Verwenden Sie Active Directory-Benutzer und-Computer zum Erstellen eines Computerkontos (z. B. CdoExAccount), und fügen Sie diesem Konto der Gruppe Benutzer.

    Dieses Konto erfordert kein Postfach.
  3. Suchen Sie in IIS das virtuelle Verzeichnis, das die Anwendung enthält, klicken Sie mit der rechten Maustaste auf das virtuelle Verzeichnis und klicken Sie dann auf Eigenschaften .
  4. Klicken Sie auf die Registerkarte Verzeichnissicherheit , und klicken Sie dann unter Authentifizierung und Zugriffsteuerung auf Bearbeiten .
  5. Im Dialogfeld Authentifizierungsmethoden sicher, dass das Kontrollkästchen Anonymer Zugriff aktiviert ist, und klicken Sie dann unter Konten für den anonymen Zugriff verwendet , auf Bearbeiten .
  6. Klicken Sie im Dialogfeld Anonymes Benutzerkonto gehen Sie folgendermaßen vor:
    1. Geben Sie im Feld Benutzername den Namen des Kontos, das Sie im Schritt 2 erstellt haben.

      Hinweis: Auf einem Domänencontroller verwenden DomainName \ AccountName, oder geben keinen der Computername oder Domänenname. Sie müssen nur AccountName bereitstellen. Wenn Sie ein Konto auf Computerebene erstellt haben, geben Sie den Kontonamen im folgenden Format: ComputerName \ AccountName
    2. Auf einem Domänencontroller mit <DomainName>\<AccountName> oder Angabe Computername oder Domäne namens (nur zu den <AccountName>) nicht
    3. Deaktivieren Sie das Kontrollkästchen Das Kennwort Kennwortkontrolle durch IIS zulassen .
    4. Geben Sie im Feld Kennwort das Kennwort für das Konto ein.
    5. Klicken Sie auf OK , und geben Sie in im eingeblendeten Dialogfeld das Kennwort erneut ein.
  7. Klicken Sie auf OK , um alle Dialogfelder zu schließen.
  8. Ändern Sie an einer Eingabeaufforderung das Verzeichnis in das Verzeichnis, das die VBS-Dateien in Schritt 1 enthält.
  9. Verwenden Sie Adadd.vbs, um Zugriff auf die IIS-Metabasis auf das Konto gewähren, die Sie in Schritt 2 notiert haben. Führen Sie hierzu den folgenden Befehl an der Eingabeaufforderung ein:

    Cscript adadd.vbs ComputerName \ AccountName

    Hinweis: Auf einem Domänencontroller verwenden DomainName \ AccountName, oder geben keinen der Computername oder Domänenname. Sie müssen nur AccountName nach adadd.vbs bereitstellen. Um IWAM_ computername auf einem Domänencontroller hinzuzufügen, führen Sie einen der folgenden Befehle an der Eingabeaufforderung:

    Cscript adadd.vbs \IWAM_ DomainNameComputerName

    -oder-

    Cscript adadd.vbs IWAM_ ComputerName

    Sie müssen IIS-Metabase-Zugriff auf das Konto IWAM_ ComputerName manchmal auch erteilen, mithilfe von Adadd.vbs. Führen Sie hierzu den folgenden Befehl an der Eingabeaufforderung ein:

    Cscript adadd.vbs ComputerName \IWAM_ ComputerName
  10. Beenden und starten Sie den IIS-Verwaltungsdienst und alle abhängigen Dienste neu.
  11. Führen Sie Adlist.vbs, um sicherzustellen, dass das Konto der IIS-Metabasis Zugriffsliste hinzugefügt wurde. Führen Sie hierzu den folgenden Befehl an der Eingabeaufforderung ein:

    Cscript-adlist.vbs
  12. Gewähren Sie auf Computern mit Exchange 2000, Benutzer Schreibzugriff auf den Pfad zum Programm Files\exchsrvr\mailroot\vsi # \pickup Verzeichnis ein. Gewähren Sie auf Computern, die nicht Exchange 2000 ausgeführt werden, Benutzer Schreibzugriff auf den Verzeichnispfad Inetpub\mailroot\pickup ein.
  13. Warten Sie, Active Directory in die IIS-Metabase repliziert.
  14. Führen Sie die Anwendung aus.

    Die Anwendung nun funktioniert wie erwartet.

Abhilfe 3

Wenn Sie im Code die Sendusing -Methode explizit angeben, ist der Wert CdoSendUsingPickup der Standardwert. Allerdings können Sie CdoSendUsingPickup und der Pfad pickup-Verzeichnis im Code explizit angeben. Pickup-Verzeichnis Methode verwenden, muss der lokale SMTP für die Weiterleitung konfiguriert werden.

Die Vorteile dieser Problemumgehung sind erhöhte Anwendung Steuerung der Konfiguration und die Problemumgehung nicht auf die erste Instanz des SMTP-Dienstes beschränkt ist. Auf Computern mit mehreren virtuelle SMTP-Servern, wählt die Standardkonfiguration das erste pickup-Verzeichnis in der IIS-Metabasis. Das pickup-Verzeichnis möglicherweise nicht das Verzeichnis der Anwendung. Das pickup-Verzeichnis explizit angeben, können Sie sicherstellen, dass die Standardkonfiguration das richtige Verzeichnis pickup auswählt. Der Nachteil dieser Problemumgehung ist, dass es mehr als die anderen Problemumgehungen zerbrechliche ist. Änderungen an der Exchange 2000-Installation oder an der Verwaltungskonfiguration bewirken, dass die Anwendung wegen Änderungen an den Speicherort des pickup-Verzeichnisses nicht mehr funktionieren.
Codebeispiel
Im folgenden Codebeispiel wird veranschaulicht, wie explizit CdoSendUsingPickup und der Speicherort der pickup-Verzeichnis festgelegt:
<%@ Language=VBScript %>
	<%
	    Dim iMsg
	    Dim iConf
	    Dim Flds
	    Const cdoSendUsingPickup = 1
	
	    'For CDOSYS, the pickup directory is located at c:\inetpub\mailroot\pickup.
	    Const strPickup = "c:\Program Files\Exchsrvr\mailroot\vsi 1\Pickup"
	
	    'Create the message object.
	     Set iMsg = CreateObject("CDO.Message")
	
	    'Create the configuration object.
	     Set iConf = iMsg.Configuration
	
	    With iConf.Fields
	  	.item("http://schemas.microsoft.com/cdo/configuration/sendusing")= cdoSendUsingPickup
	       .item("http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory") = strPickup
	       .Update
	    End With
	
	    'Set the To, From, Subject, and Body properties of the message.
	    With iMsg
	       .To = "someone@example.com"
	       .From = "someone@example.com"
	       .Subject = "Test message by using CDOEx and cdoSendUsingPickup sent on: "  & now()
	       .TextBody = "This is a test by using CDOEx"
	       .Send
	    End With 
	    Set iMsg = Nothing
	 %>

Abhilfe 4

Statt Nachrichten an das lokale Pickup-Verzeichnis zu senden, können Sie Nachrichten an einen Remote-SMTP-Server über das Netzwerk senden. Die Vorteile dieser Problemumgehung sind niedrigere insgesamt Ressourcenverbrauch und sofortige und detaillierte Fehlerinformationen. Die Nachteile dieser Problemumgehung sind, dass der remote-SMTP-Server nicht verfügbar ist und verlieren Sie den natürlichen Warteschlange Mechanismus in das pickup-Verzeichnis.
Beispielcode
Der folgende geänderte Code funktioniert auf Exchange 2000 Server SP3. Beachten Sie, dass dieses Beispiel fügt Code erstellen und Festlegen der Konfiguration object.
<%@ Language=VBScript %>
	<%
	    Dim iMsg
	    Dim iConf
	    Dim Flds
	    Const cdoSendUsingPort = 2
	    Const strSmartHost = "MySmartHostServer"
	
	    'Create the message object.
	    Set iMsg = CreateObject("CDO.Message")
	
	    'Create the configuration object.
	    Set iConf = iMsg.Configuration
	
	    'Set the fields of the configuration object to send by using SMTP through port 25.
	    With iConf.Fields
	       .item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
	       .item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSmartHost
	       .Update
	    End With
	
	    'Set the To, From, Subject, and Body properties of the message.
	    With iMsg
	       .To = "someone@example.com"
	       .From = "someone@example.com"
	       .Subject = "Test message by using CDOEx and cdoSendUsingPort, sent on: "  & now()
	       .TextBody = "This is a test by using CDOEx"
	       .Send
	    End With
	    set iMsg = Nothing
	 %> 

Anhang

So downloaden Sie das Skript Dateien, die Lesezugriff auf die IIS gewähren, Metabase und Active Directory die folgenden Microsoft-Website:
http://download.microsoft.com/download/9/7/0/9706f302-99f8-49f9-8aa4-df66d771feaf/smtppermissionsscripts.exe (http://download.microsoft.com/download/9/7/0/9706f302-99f8-49f9-8aa4-df66d771feaf/smtppermissionsscripts.exe)
Der Download enthält die folgenden Skriptdateien.
Tabelle minimierenTabelle vergrößern
Adlist.vbsListet die Zugriffssteuerungslisten (ACL) für jede SMTP-Dienst-Instanz auf dem Server in Active Directory (falls verfügbar) oder in der IIS-Metabasis.
Adadd.vbsGewährt Konten nur-Lese-Zugriff auf alle Instanzen von SMTP-Dienst auf dem Server.
Addel.vbsEntfernt alle Zugriffssteuerungseinträge (Access Control Entry, ACE) für das Konto aus allen SMTP-Dienstinstanzen auf dem Server.
Jedes Skript verwendet Active Directory um zu bestimmen, ob der Computer Exchange 2000 ausgeführt wird. Wenn der Computer Exchange 2000 ausgeführt wird, Änderungen in Active Directory und die Datei DS2MB.dll repliziert die Änderungen in der IIS-Metabase für die Nutzung von SMTP. Wenn der Computer nicht Exchange 2000 ausgeführt wird, werden Änderungen direkt in der IIS-Metabasis vorgenommen.


Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange 2000 Enterprise Server
  • Microsoft Exchange 2000 Server Standard Edition
Keywords: 
kbmt kbdownload KB816789 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 816789  (http://support.microsoft.com/kb/816789/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.