Windows 8에서 원격 연결이 되지 않을 때

( Windows 8 RP with Microsoft Account fails )


참조 URL
  1. http://social.technet.microsoft.com/Forums/en-US/859684c3-59f6-410a-bc9e-d9cdd666ae58/remote-desktop-into-windows-8-rp-with-microsoft-account-fails
  2. http://support.microsoft.com/kb/941641

 

  

 

Windows8에서 원격 연결시 제대로 아이디와 패스워드를 입력하였는데도 연결이 되지 않는다.

 

 

[그림1] 원격 연결 실패 화면

 

 

 

 

아래와 같은 사항으로 문제를 해결 할 수 있습니다.

 

 

MS 가이드 절차

 

이 문제를 해결하려면 원격 데스크톱 연결 6.0에서 새로운 기능을 해제하여 원격 데스크톱 연결 5.x의 기능으로 되돌립니다. 이렇게 하려면 다음과 같이 하십시오.

  1. 시작, 실행을 차례로 누르고 mstsc.exe를 입력한 다음 확인을 누릅니다.
  2. 옵션을 누른 다음 일반 탭을 누릅니다.
  3. 다른 이름으로 저장을 누른 다음 파일 이름 상자에 파일 이름을 입력합니다.
  4. 원격 데스크톱 파일을 저장할 위치를 선택하고 저장을 누른 다음 취소를 누릅니다.

    참고 저장된 파일의 확장명은 .rdp입니다.
  5. 시작, 실행을 차례로 누르고 notepad를 입력한 다음 확인을 누릅니다.
  6. 파일 메뉴에서 열기를 누릅니다.
  7. 파일 형식 목록에서 모든 파일을 누릅니다.
  8. 찾는 위치 목록에서 4단계에서 저장한 파일을 찾아 누른 다음 열기를 누릅니다.
  9. 다음과 유사한 줄을 찾습니다.
    authentication level:i:n
    참고 n 자리 표시자는 현재 인증 수준을 나타냅니다.
  10. 인증 수준을 0으로 변경하여 줄이 다음과 같이 되도록 합니다.
    authentication level:i:0
    참고 인증 수준을 0으로 설정하면 RDP 6.0에서 서버 인증을 확인하지 않습니다.
  11. 파일의 끝에 다음 줄을 추가합니다.
    enablecredsspsupport:i:0
    참고 이 줄이 있으면 원격 데스크톱 연결을 설정하기 전에 자격 증명을 제공할 필요가 없습니다.
  12. 파일 메뉴에서 저장을 누릅니다.

원격 데스크톱 연결을 사용하여 연결하려면 12단계에서 저장한 파일을 실행합니다.

참고 이러한 단계를 수행하면 원격 데스크톱 연결 6.0에서 제공하는 새로운 보안 기능이 제거됩니다. 또한 원격 데스크톱 연결 6.0이 시스템 속성에서 네트워크 수준 인증이 있는 원격 데스크톱을 실행 중인 컴퓨터에서만 연결 허용 옵션을 사용하는 Windows Vista 기반 컴퓨터와 호환되지 않습니다.
 

 

 

위와 같은 설명은 너무 장황 스럽고 이해 하기도 힘들다면 rdp로 저장하고 편집된 코드를 보도록 하자

 

screen mode id:i:2
use multimon:i:0
desktopwidth:i:1920
desktopheight:i:1080
session bpp:i:32
winposstr:s:0,1,2110,31,3390,1025
compression:i:1
keyboardhook:i:2
audiocapturemode:i:0
videoplaybackmode:i:1
connection type:i:7
networkautodetect:i:1
bandwidthautodetect:i:1
displayconnectionbar:i:1
enableworkspacereconnect:i:0
disable wallpaper:i:0
allow font smoothing:i:0
allow desktop composition:i:0
disable full window drag:i:1
disable menu anims:i:1
disable themes:i:0
disable cursor setting:i:0
bitmapcachepersistenable:i:1
full address:s: site.com:51201 ( 상황마다 다름 )
audiomode:i:0
redirectprinters:i:1
redirectcomports:i:0
redirectsmartcards:i:1
redirectclipboard:i:1
redirectposdevices:i:0
autoreconnection enabled:i:1
authentication level:i:2
prompt for credentials:i:1
negotiate security layer:i:1
remoteapplicationmode:i:0
alternate shell:s:
shell working directory:s:
gatewayhostname:s:
gatewayusagemethod:i:4
gatewaycredentialssource:i:4
gatewayprofileusagemethod:i:0
promptcredentialonce:i:0
use redirection server name:i:0
rdgiskdcproxy:i:0
kdcproxyname:s:
drivestoredirect:s:
enablecredsspsupport:i:0

 

 

위에서 빨간 글씨를 추가하고 한번더 다시 시도를 해보자.

 

 

 

 

Adobe Animation Edge CC


참조 URL
  1. http://html.adobe.com/edge/animate/
  2. http://helpx.adobe.com/creative-cloud/learn/start/animate.html



 Adobe에서 HTML5에서 애니메이션을 쉽게 만들 수 있는 툴을 제공하고 있다. 플래시나 Silverlight 같은 타임라인으로 애니메이션을 만들도록 하고 있다.




[동영상1] Adobe Edge로 애니메니션 만드는 예제














[Exchange] Exchange의 EWS에서 일정관련 연계 작업시 GlobalObjectId를 이용해 일정 찾기


일정을 사용자가 작성하면 ItemId와 GlobalObjectId가 생성이 된다. 

ItemId는 Exchange에서 Item을 인식하는 Unique 값으로 유일한 값을 나타낸다. 그리고 다른 사용자와의 일정에서 공통적인 값을 GlobalObjectId를 사용하여 같은 일정인지를 알아 낼 수 있다.


사용자A가 일정을 만들 때 사용자B를 참조인으로 입력 후 생성하면


사용자A : ItemId : aa1, GlobalObjectId : abcdef

사용자B : ItemId : bb1, GlobalObjectId : abcdef


와 같이 생성이 되게 된다.



그러면 타 시스템에서 EWS를 사용하여 정보를 알아 내기 위해서 아래와 같은 코드로 GlobalObjectId를 가져올 수 있다.


Appointment exItem = null;
 
// GlobalObjectId
ExtendedPropertyDefinition globalObjectId = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Meeting0x03MapiPropertyType.Binary);
 
//하나의 객체에 대해서만 바인딩
exItem = Item.Bind(service.Servicenotification.ItemIdnew PropertySet(
            ItemSchema.Id,
            ItemSchema.Subject,
            AppointmentSchema.ICalUid,
            globalObjectId)) as Appointment;

[코드1] GlobalObjectId의 값을 가져오는 코드


위 코드에서 ExtendedPropertyDefinition으로 확장 프로퍼티를 사용해서 가져와야 하며 선언 시 '0x03'을 입력하고 Binary를 선택해야 한다. 이제 넘겨진 값을 '코드2'에서와 같이 스트링으로 변환해서 사용 할 수 있다.


Convert.ToBase64String((byte[])exItem.ExtendedProperties[0].Value);

[코드2] Binary 형식을 스트링으로 변환하는 코드



이와 같은 코드로 다른 시스템과 연계하여 여러사람에 관계된 같은 일정을 찾아서 변경 해 줄 수 있을 것이다. 그렇지만 예외 케이스가 있다. 반복 일정에서 특정 항목만 편집하여 참조인을 추가 하는 케이스에서는 GlobalObjectId가 변경이 일어 나게 된다. 아래 글에서 설명이 나와 있다.



Using GlobalObjectId poses a problem however…If you were to create a recurring appointment and invite one attendee for only one instance of that recurring appointment that attendee ends up with only the one exception instance of the parent recurring appointment in their calendar.  This is called an “orphaned” appointment.  This type of appointment’s GlobalObjectId has additional information in it related to the exception date (for more information look at PidLidGlobalObjectId in MS-OXOCAL).  The bottom line here is that this orphaned instance in this one attendee’s calendar will have a GlobalObjectId, and therefore UID, which doesn’t match the related appointments in the other attendee’s and organizer’s calendar.  Henning’s code won’t work in this specific scenario…


참조 URL : http://blogs.msdn.com/b/mstehle/archive/2009/09/02/ews-uid-not-always-the-same-for-orphaned-instances-of-the-same-meeting.aspx


 


그래서 위의 문제점과 관련하여 CleanGlobalObjectId 라는 것이 존재하고 이는 위의 같은 CASE일때도 Id가 달라 지지 않는 프로퍼티를 사용해야 할 것이다.


The format of this property is the same as that of LID_GLOBAL_OBJID (PidLidGlobalObjectId). The value of this property must be equal to the value of LID_GLOBAL_OBJID, except the YH, YL, M, and D fields must be zero. All objects that refer to an Instance of a recurring series (including an orphan instance), as well as the recurring series itself, will have the same value for this property.


참고 URL : http://msdn.microsoft.com/en-us/library/cc839502.aspx



그래서 결론 적으로 아래 코드처럼 ClearnGlobalObjectId를 사용해서 값을 가져와서 연계 하면 변하지 않는 값으로 외부 시스템과 연동할 수 있을 것이다.


// GlobalObjectId
// ExtendedPropertyDefinition globalObjectId = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Meeting, 0x03, MapiPropertyType.Binary);
 
// LID_GLOBAL_OBJID 
ExtendedPropertyDefinition globalObjectId = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Meeting0x23MapiPropertyType.Binary);

[코드3] ClearnGlobalObjectId로 변경한 코드








+ Recent posts