Sintomi
Le colonne di URL e Nome Host di destinazione nel log del proxy web di Microsoft Forefront Threat Management Gateway 2010 potrebbero essere visualizzate come valori illeggibili. Questo problema si verifica quando gli utenti di accedere ai siti Web utilizzando un nome di dominio internazionalizzato (IDN) e le voci di registro vengono recuperate dal disco. Nota: IDN sono nomi di dominio che possono contenere caratteri Unicode e sono accessibili mediante l'utilizzo di Punycode trascrizione. Threat Management Gateway converte il nome di Punycode nella rappresentazione Unicode quando le voci del registro vengono visualizzate nella visualizzazione della registrazione in Forefront TMG Gestione snap-in di Microsoft Management Console (MMC). Tuttavia, quando le voci di registro vengono recuperate dal disco, i caratteri non ASCII della stringa Unicode vengono sostituiti con un punto interrogativo (?), come spiegheremo nella sezione "Cause".
Causa
Questo problema si verifica perché le colonne di registrazione Threat Management Gateway vengono salvate in formato ASCII e quando i record di log vengono scritti su disco, i valori nell' URL e le colonne Nome Host di destinazione vengono convertite da Unicode in ASCII. In questo modo qualsiasi valore non ASCII nel valore da sostituire con un punto interrogativo (?).
Risoluzione
Per risolvere questo problema, installare cumulativo 4 per Forefront Threat Management Gateway 2010 Service Pack 2 e quindi eseguire lo script nella sezione "Informazioni".
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
Ulteriori informazioni
Copiare e incollare lo script seguente in Notepad.exe e quindi salvare il file come "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
Per attivare il Threat Management Gateway in modo permanente le voci di registro come valori Punycode, eseguire il comando seguente:
cscript.exe SetPersistLogAsPunycode.vbs 1Per ripristinare il Threat Management Gateway al comportamento predefinito di campi di registrazione come caratteri ASCII, eseguire il comando seguente:
cscript.exe SetPersistLogAsPunycode.vbs 0
Riferimenti
Vedere la terminologia Microsoft utilizza per descrivere gli aggiornamenti software.