Problembeschreibung
URL und Name des Zielhosts Spalten im Web Proxy-Protokoll von Microsoft Forefront Threat Management Gateway 2010 können nicht lesbare Werte angezeigt. Dieses Problem tritt auf, wenn Benutzer auf Websites mit einer internationalisierten Domänennamen (IDN) und Protokolleinträge vom Datenträger abgerufen werden. Hinweis IDNs sind Domänennamen, die Unicode-Zeichen enthalten und mit Punycode Transkription zugegriffen werden. Threat Management Gateway konvertiert Punycode-Namen in Unicode-Darstellung, wenn die Protokolleinträge der Protokollierung im Forefront TMG Management-Snap-in der Microsoft Management Console (MMC) angezeigt werden. Wenn die Protokolleinträge vom Datenträger abgerufen werden, sind ASCII Zeichen in Unicode-Zeichenfolge mit einem Fragezeichen (?) ersetzt wie im Abschnitt "Ursache".
Ursache
Dieses Problem tritt da die Protokollierung Spalten Threat Management Gateway im ASCII-Format gespeichert werden und die Datensätze auf der Festplatte, die Werte in der URL geschrieben und Zielhostname Spalten von Unicode in ASCII konvertiert werden. Dadurch werden alle nicht-ASCII-Wert Wert durch ein Fragezeichen (?) ersetzt werden.
Lösung
Um dieses Problem zu beheben, installieren Sie Updaterollup 4 für Forefront Threat Management Gateway 2010 Service Pack 2 und führen Sie das Skript im Abschnitt "Weitere Informationen".
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Weitere Informationen
Kopieren Sie und fügen Sie das folgende Skript in Notepad.exe speichern Sie die Datei als "SetPersistLogAsPunycode.vbs".
'Define the constants needed.Const strVpsGUID = "{143F5698-103B-12D4-FF34-1F34767DEABC}"Const strVpsPropertyName = "PersistLogAsPunycode"Const Error_FileNotFound = &H80070002Set objArgs = wscript.ArgumentsfInvalidParameterValue = Falseif objArgs.Count > 0 then if objArgs(0) = "0" then fPersistLogAsPunycode = False elseif objArgs(0) = "1" then fPersistLogAsPunycode = True else fInvalidParameterValue = True end ifend ifif objArgs.Count <> 1 or fInvalidParameterValue then wscript.echo "Usage: SetPersistLogAsPunycode.vbs <0|1>" wscript.echo wscript.echo "Control how log fields that may contain punycode-encoded parts are" wscript.echo "stored in the persistent log." wscript.echo wscript.echo " 0 - Persist the applicable log fields as ASCII (the default behavior)" wscript.echo " 1 - Persist the applicable log fields as Punycode" wscript.Quit 2end ifset objLogging = CreateObject("FPC.Root").GetContainingArray().LoggingSet objVPSet = OpenVPSet(objLogging, strVpsGUID)objVPSet.Value(strVpsPropertyName) = fPersistLogAsPunycodeobjLogging.Savefunction OpenVPSet(objParent, strVpsGUID) Set objVPSets = objParent.VendorParametersSets On Error Resume Next Set OpenVPSet = objVPSets.Item(strVpsGUID) ' Save the Err properties in case it needs to be re-raised errNumber = Err.Number errSource = Err.Source errDescription = Err.Description errHelpFile = Err.HelpFile errHelpContext = Err.HelpContext On Error GoTo 0 if errNumber = Error_FileNotFound Then Set OpenVPSet = objVPSets.Add(strVpsGUID) Elseif errNumber < 0 Then ' An error other than "file not found" occured -- re-raise the error, ' this time not under "On Error Resume Next" Err.Raise errNumber, errSource, errDescription, errHelpFile, errHelpContext End Ifend function
Um Threat Management Gateway weiterhin die Protokolleinträge Punycode-Werte zu aktivieren, führen Sie den folgenden Befehl ein:
Cscript.exe SetPersistLogAsPunycode.vbs 1Threat Management Gateway an seiner Protokollierung Felder als ASCII-Zeichen wiederherzustellen, führen Sie den folgenden Befehl ein:
Cscript.exe SetPersistLogAsPunycode.vbs 0
Informationsquellen
Anzeigen Sie die Terminologie verwendet Produktupdates