증상
Microsoft Forefront 위협 관리 게이트웨이 2010에 대 한 웹 프록시 로그의 URL 과 대상 호스트 이름 열 값을 읽을 수 없습니다 표시 될 수 있습니다. 다국어 도메인 이름 (IDN)을 사용 하 여 웹 사이트에 대 한 사용자 액세스 및 로그 항목을 디스크에서 검색 하는 경우이 문제가 발생 합니다. 참고: Idn은 유니코드 문자를 포함할 수 있으며 Punycode 대사를 사용 하 여 액세스 하는 도메인 이름입니다. 위협 관리 게이트웨이 로그 항목은 Forefront TMG 관리 스냅인에서 Microsoft 관리 콘솔 (MMC) 로깅 보기에서 보면 Punycode 이름을 유니코드 표현으로 변환 합니다. 그러나 디스크에서 로그 엔트리를 검색 하는 경우 유니코드 문자열에 ASCII가 아닌 문자가 바뀝니다 물음표 (?) "원인" 절에 설명 합니다.
원인
이 문제는 로그 레코드가 디스크에 값을 URL 에 기록 하 고 대상 호스트 이름 열 ASCII 유니코드에서 변환 됩니다 및 위협 관리 게이트웨이 로깅 열 ASCII 형식으로 저장 되기 때문에 발생 합니다. 따라서 물음표 (?)으로 바꿔야 할 값에 ASCII가 아닌 값.
해결 방법
이 문제를 해결 하려면 Forefront 위협 관리 게이트웨이 2010 서비스 팩 2 용 롤업 4 를 설치 하 고 "추가 정보" 섹션에서 스크립트를 실행 합니다.
상태
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
참조
소프트웨어 업데이트를 설명 하는 용어 사용을 참조 하십시오.