Ознаки
URL-адреси та Місця призначення ім'я стовпці в журналі веб-проксі-сервер Microsoft Forefront загрози для керування Gateway 2010 може відображатися як можна прочитати значення. Ця проблема виникає, коли користувачам доступ до веб-сайтів за допомогою до доменних імен (IDN) і записи журналу є звернення до диска. Примітка. IDNs, які доменні імена, які, можливо, містять символи Юнікод і здійснюється за допомогою Punycode транскрипції. Шлюз керування перетворює Punycode ім'я в кодуванні Юнікод подання під час перегляду записів у журналі в поданні ведення журналу, у полі Forefront TMG керування оснастки консолі керування Microsoft (MMC). Однак під час записів у журналі є звернення до диска, будь-які відмінні від ASCII рядка Юнікоду замінюються знак оклику (?), як пояснюється в розділі "Причина".
Причина
Ця проблема виникає, тому що ведення журналу стовпці в шлюз керування збереження у форматі ASCII і записи журналу записуються на диск, значення в URL-адресу та Ім'я призначення стовпців перетворюються з кодуванням Юнікод ASCII. Це призводить до будь-яке значення, відмінні від ASCII, у значення яке слід замінити знак оклику (?).
Спосіб вирішення
Щоб вирішити цю проблему, інсталюйте зведене 4 для Forefront загрози Management Gateway 2010 з пакетом оновлень 2 і запустіть сценарій у розділі "Додаткові відомості".
Стан
Корпорація Майкрософт підтвердила існування цієї неполадки у продуктах Майкрософт, перелічених у розділі "Застосовується до".
Додаткові відомості
Скопіюйте та вставте наведений нижче сценарій 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
Щоб увімкнути шлюз керування, яке зберігається як Punycode значення, записи журналу, виконайте таку команду:
cscript.exe SetPersistLogAsPunycode.vbs 1Повернутися шлюз за промовчанням роботи з полів як символи ASCII керування, виконайте таку команду:
cscript.exe SetPersistLogAsPunycode.vbs 0
Посилання
Термінологія Microsoft див., що використовується для опису оновлень програмного забезпечення.