Sümptomid
Veebilogi proxy Microsoft Forefront Threat Management Gateway 2010 URL ja sihtkoha Host veerus võidakse kuvada loetamatu väärtusteks. See probleem ilmneb siis, kui kasutajad pöörduvad veebilehed kasutades rahvusvahelisemaks domeeninime (IDN) ja logi kannete kettalt. Märkus. IDNs on domeeninimed, mis võib sisaldada Unicode'i märke ja Punycode transkriptsioon abil avada. Threat Management Gateway teisendab Punycode nimi Unicode esitus Logi kirjed vaatamisel logimise silmas Forefront TMG halduse lisandmoodul Microsoft Management Console (MMC). Siiski kui logi kannete kettalt kõik mitte-ASCII märke Unicode'i string asendatakse küsimärki (?), nagu me selgitada jaotises "Põhjus".
Põhjus
See probleem ilmneb, sest logimise veergude Threat Management Gateway salvestatakse ASCII vormingus ja kui Logi kirjed kirjutada URL-i väärtused ja Sihtkoha Host Name veergu teisendatakse Unicode'i ASCII. See põhjustab mitte-ASCII väärtus väärtust, mis tuleb asendada küsimärki (?).
Lahendus
Selle probleemi lahendamiseks installige värskenduskomplekti 4 Forefront Threat Management Gateway 2010 Service Pack 2 ja seejärel käivitage skript jaotises "Lisateavet".
Olek
Microsoft on kinnitanud, et see probleem esineb jaotises "Kehtib järgmiste toodete kohta" loetletud Microsofti toodetel.
Lisateave
Kopeerige ja kleepige järgmine skript Notepad.exe ja seejärel salvestage fail nimega "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
Threat Management Gateway logikirjeid Punycode väärtused püsivad lubamiseks käivitage järgmine käsk:
cscript.exe SetPersistLogAsPunycode.vbs 1Threat Management Gateway logimisvälju ASCII märke selle vaikekäitumise taastamiseks käivitage järgmine käsk:
cscript.exe SetPersistLogAsPunycode.vbs 0
Viited
Vt selle terminoloogia Microsoft kasutab tarkvaravärskenduste kirjeldamiseks.