Symptomer
URL-adressen og Vertsnavnet for målet kolonnene i web proxy Logg av Microsoft Forefront Threat Management Gateway 2010 kan vises som uleselig verdier. Dette problemet oppstår når brukere tilgang til webområder ved hjelp av et internasjonalt domenenavn (IDN) og loggoppføringene er hentet inn fra disken.
Obs! Internasjonale domenenavn er domenenavn som inneholder Unicode-tegn og er tilgjengelig ved hjelp av Punycode transcription. Threat Management Gateway konverterer Punycode navnet til Unicode-representasjon når loggoppføringene vises i visningen for logging av Forefront TMG Management snapin-modulen for Microsoft Management Console (MMC). Imidlertid når loggoppføringene er hentet inn fra disken, er eventuelle ikke-ASCII-tegn i Unicode-streng erstattet med et spørsmålstegn (?), som vi forklart i avsnittet "Årsak".
Årsak
Dette problemet oppstår fordi logging kolonnene i Threat Management Gateway lagres i ASCII-format, og når loggpostene skrives til disk, verdiene i URL-adressen og Vertsnavnet for mål -kolonner, konverteres fra Unicode til ASCII. Dette fører til en verdi som ikke er ASCII-verdi til å bli erstattet med et spørsmålstegn (?).
Oppløsning
Hvis du vil løse dette problemet, installerer samleoppdatering 4 for Forefront Threat Management Gateway 2010 Service Pack 2, og deretter kjøre skriptet i delen "Mer informasjon".
Status
Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".
Hvis du vil ha mer informasjon
Kopier og Lim inn følgende skript i Notepad.exe, og deretter lagrer du filen som "SetPersistLogAsPunycode.vbs".
'Define the constants needed.Const strVpsGUID = "{143F5698-103B-12D4-FF34-1F34767DEABC}"
Const strVpsPropertyName = "PersistLogAsPunycode"
Const Error_FileNotFound = &H80070002
Set objArgs = wscript.Arguments
fInvalidParameterValue = False
if objArgs.Count > 0 then
if objArgs(0) = "0" then
fPersistLogAsPunycode = False
elseif objArgs(0) = "1" then
fPersistLogAsPunycode = True
else
fInvalidParameterValue = True
end if
end if
if 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 2
end if
set objLogging = CreateObject("FPC.Root").GetContainingArray().Logging
Set objVPSet = OpenVPSet(objLogging, strVpsGUID)
objVPSet.Value(strVpsPropertyName) = fPersistLogAsPunycode
objLogging.Save
function 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 If
end function
Hvis du vil aktivere Threat Management Gateway å motstå loggoppføringer som Punycode verdier, kan du kjøre følgende kommando:
cscript.exe SetPersistLogAsPunycode.vbs 1
Hvis du vil tilbakestille Threat Management Gateway til den standardvirkemåten for loggingsfelt som ASCII-tegn, kan du kjøre følgende kommando:
cscript.exe SetPersistLogAsPunycode.vbs 0
Referanser
Se terminologien som Microsoft bruker til å beskrive oppdateringer av programvare.