Симптоми
URL адрес и Име на хост за местоназначение колоните в регистрационния файл на уеб прокси сървър на Microsoft Forefront Threat Management портал 2010 може да се покаже като прочетени стойности. Този проблем възниква, когато потребителите имат достъп до уеб сайтове с помощта на име на език (IDN) и записи в регистъра се извличат от диск. Забележка: IDNs са домейни, които могат да съдържат Unicode знаци и са достъпни чрез Punycode препис. Threat Management Gateway преобразува името на Punycode в Unicode представяне при записи в регистъра се разглеждат в изгледа на регистриране в управление на Forefront TMG конзолна добавка на конзолата за управление на Microsoft (MMC). Обаче когато записите се извличат от диск, не ASCII знаци в Unicode низ се заменят с въпросителен знак (?), както е обяснено в раздела "Причина".
Причина
Този проблем възниква, защото регистрирането на колоните в Threat Management Gateway се записват в ASCII формат и когато регистрационни записи се записват на диска, стойностите на URL адрес и Име на хост за местоназначение колони се конвертират от Unicode в ASCII. Това води до не ASCII стойност в стойност да бъде заменен с въпросителен знак (?).
Решение
За да разрешите този проблем, инсталирайте Сборен пакет за актуализация 4 за Forefront Threat Management портал 2010 Service Pack 2 и изпълнете скрипта в раздела "Допълнителна информация".
Статус
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, изброени в раздела "Отнася се за".
Повече информация
Копирайте и поставете следния скрипт в Notepad.exe и след това запишете файла като "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 да съществуват записи в регистъра като Punycode стойности, изпълнете следната команда:
cscript.exe SetPersistLogAsPunycode.vbs 1За да се върнете Threat Management Gateway поведението й по подразбиране на полета за регистриране като ASCII знаци, изпълнете следната команда:
cscript.exe SetPersistLogAsPunycode.vbs 0
Препратки
Вижте Microsoft използва терминология за описание на софтуерните актуализации.