Gejala
URL dan Nama Host tujuan kolom di log proksi web dari Microsoft Forefront Threat Management Gateway 2010 akan ditampilkan sebagai nilai yang tidak dapat dibaca. Masalah ini terjadi ketika pengguna mengakses situs web dengan menggunakan nama domain penyandian (IDN) dan entri log yang Diperoleh dari disk. CatatanĀ IDNs adalah nama domain yang mungkin berisi karakter Unicode dan diakses menggunakan Punycode transkripsi. Gerbang manajemen ancaman mengubah nama Punycode menjadi Unicode representasi ketika entri log dilihat dalam tampilan pengelogan dalam Forefront TMG manajemen snap-in konsol manajemen Microsoft (MMC). Namun, bila entri log yang Diperoleh dari disk, karakter non-ASCII apa pun dalam Unicode string akan diganti dengan tanda tanya (?), seperti yang kami jelaskan di bagian "Sebab".
Penyebab
Masalah ini terjadi karena kolom pengelogan di gerbang manajemen ancaman disimpan dalam ASCII format, dan ketika log data ditulis ke disk, nilai di URL dan Nama Host tujuan kolom diubah dari Unicode ke ASCII. Hal ini menyebabkan nilai non-ASCII nilai akan diganti dengan tanda tanya (?).
Pemecahan Masalah
Untuk mengatasi masalah ini, instal Rollup 4 untuk Forefront Threat Management Gateway 2010 Service Pack 2, dan kemudian menjalankan skrip di bagian "Informasi selengkapnya".
Status
Microsoft telah melakukan konfirmasi bahwa masalah ini timbul pada produk Microsoft yang tertera pada bagian "Berlaku untuk".
Informasi Selengkapnya
Salin dan tempel skrip berikut di Notepad.exe, dan kemudian simpan berkas sebagai "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
Untuk mengaktifkan Threat Management Gateway untuk bertahan entri log sebagai nilai Punycode, jalankan perintah berikut ini:
cscript.exe SetPersistLogAsPunycode.vbs 1Untuk mengembalikan Threat Management Gateway untuk perilaku default dari kolom log sebagai karakter ASCII, jalankan perintah berikut ini:
cscript.exe SetPersistLogAsPunycode.vbs 0
Referensi
Lihat terminologi Microsoft digunakan untuk menjelaskan pembaruan perangkat lunak.