Symptomy
Adres URL i Nazwę hosta docelowego kolumny w dzienniku serwera proxy sieci web programu Microsoft Forefront zagrożenie Management Gateway 2010 może być wyświetlany jako wartości nie do odczytania. Ten problem występuje, gdy użytkownicy mają dostęp do witryn sieci Web przy użyciu nazwy domen (IDN) i wpisy dziennika są pobierane z dysku. Uwaga IDN są nazwy domen, które mogą zawierać znaki Unicode i są dostępne przy użyciu transkrypcji Punycode. Threat Management Gateway konwertuje nazwę Punycode w formacie Unicode, gdy wpisy dziennika są wyświetlane w widoku rejestrowania w przystawce programu Microsoft Management Console (MMC) Zarządzanie TMG Forefront. Jednak przy wpisy dziennika są pobierane z dysku, wszystkie znaki inne niż ASCII w ciągu Unicode są zastępowane znakiem zapytania (?), jak wyjaśniono w sekcji "Przyczyna".
Przyczyna
Ten problem występuje, ponieważ w kolumnach rejestrowania Threat Management Gateway są zapisywane w formacie ASCII, a gdy rekordy dziennika są zapisywane na dysku, wartości w adresie URL i Nazwa hosta docelowego kolumny są konwertowane ze standardu Unicode na ASCII. Powoduje to, że każda wartość spoza zestawu ASCII w wartości zastąpiona znakiem zapytania (?).
Rozwiązanie
Aby rozwiązać ten problem, zainstaluj pakiet zbiorczy 4 dla dodatku Service Pack 2 dla programu Forefront zagrożenie Management Gateway 2010, a następnie uruchom skrypt w sekcji "Więcej informacji".
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.
Więcej informacji
Skopiuj i wklej następujący skrypt w Notepad.exe, a następnie zapisz plik jako "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
Aby włączyć Threat Management Gateway utrwalić wpisy dziennika jako wartości Punycode, uruchom następujące polecenie:
cscript.exe SetPersistLogAsPunycode.vbs 1Aby przywrócić Threat Management Gateway do jego domyślnego zachowania pól rejestrowania w postaci znaków ASCII, uruchom następujące polecenie:
cscript.exe SetPersistLogAsPunycode.vbs 0
Informacje
Zobacz terminologia firma Microsoft używa do opisywania aktualizacji oprogramowania.