อาการ
คอลัมน์URLและชื่อโฮสต์ปลายทางในล็อกเว็บพร็อกซีของ Microsoft Forefront คุกคาม 2010 เกตเวย์จัดการอาจถูกแสดงเป็นค่าที่ไม่สามารถอ่าน ปัญหานี้เกิดขึ้นเมื่อผู้ใช้เข้าถึงเว็บไซต์ โดยใช้ชื่อที่มีโดเมน internationalized (IDN) และรายการล็อกถูกเรียกจากดิสก์ หมายเหตุ IDNs มีชื่อโดเมนที่อาจประกอบด้วยอักขระแบบ Unicode และสามารถเข้าถึงได้ โดยใช้ Punycode transcription เกตเวย์การบริหารความเสี่ยงแปลงชื่อ Punycode เป็น Unicode แสดงเมื่อรายการล็อกที่ถูกแสดงในมุมมองบันทึกในการจัดการ TMG Forefront สแน็ปอินของ Microsoft Management Console (MMC) อย่างไรก็ตาม เมื่อรายการล็อกถูกดึงข้อมูลจากดิสก์ อักขระใด ๆ ที่ไม่ใช่ ASCII ในสายอักขระ Unicode จะถูกแทนที่ ด้วยเครื่องหมายคำถาม (?), ในขณะที่เราอธิบายในส่วน "สาเหตุ"
สาเหตุ
ปัญหานี้เกิดขึ้นเนื่อง จากคอลัมน์บันทึกในเกตเวย์จัดการความเสี่ยงที่จะถูกบันทึกในรูปแบบ ASCII และ เมื่อระเบียนแฟ้มบันทึกจะถูกเขียนลงดิสก์ ค่าในURLและคอลัมน์ชื่อโฮสต์ปลายทางจะถูกแปลงจาก Unicode เป็น ASCII ซึ่งทำให้ค่าใด ๆ ที่ไม่ใช่ ASCII ในค่าที่จะถูกแทนที่ ด้วยเครื่องหมายคำถาม (?)
การแก้ไข
เมื่อต้องการแก้ไขปัญหานี้ ติดตั้งค่าสะสม 4สำหรับ Forefront คามจัดการเกตเวย์ 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เมื่อต้องการเปิดใช้งานคุกคามเกตเวย์การจัดการสามารถยืนยันรายการล็อกที่เป็นค่า Punycode รันคำสั่งต่อไปนี้:
cscript.exe SetPersistLogAsPunycode.vbs 1เมื่อต้องการแปลงกลับเป็นเกตเวย์จัดการความเสี่ยงลักษณะการทำงานเริ่มต้นของเขตข้อมูลที่บันทึกเป็นอักขระ ASCII เรียกใช้คำสั่งต่อไปนี้:
cscript.exe SetPersistLogAsPunycode.vbs 0
อ้างอิง
ดูคำศัพท์เฉพาะทางMicrosoft ใช้เพื่ออธิบายปรับปรุงซอฟต์แวร์
 
                         
				 
				