Maystyle :
Admin : New post
Guestbook
Local
media
Catergories
Recent Articles
Recent Comments
Recent Trackbacks
Calendar
Tag
Archive
Link
Search
 
해당되는 게시물 6건
  Windows Server 2008 R2 SP1 관련 
작성일시 : 2010. 7. 6. 10:49 | 분류 : Windows Server/Terminal Service

제가 주목하는 기술은 3가지 입니다.

1. Dynamic Memory : 온라인상에서 Guest VM에 메모리를 할당하는 기술
2. RemoteFX : Citrix의 HDX 기술로써, Client 머신에 관계 없이 host server의 그래픽 기능을 이용하거나, Client의 USB를 통해 Guest VM을 이용(예를 들어 휴대폰의 주소록 동기화 등등)하는 등의 기술
3. Linux : 4Core 까지 지원할 예정

Name   Password   Home   Secret   Submit
  Windows Vista / 7 에서 디스크를 많이 차지하는 몇몇 녀석들 
작성일시 : 2010. 3. 8. 09:53 | 분류 : Windows Server/Terminal Service

1. C:\Windows\winsxs
용도 : 하위 호환성 보장을 위하여 이전 버전의 DLL들을 저장해 놓는다.
제거 유무 : 서비스 팩이 설치 된 경우 제거 도구(VSP1CLN.exe)를 이용할 수 있으나, 그외에는 공식적으로 MS에서 지원하는 방법은 없다. 다만 이미 대체된 DLL 임으로 소유권을 가져와서 삭제 해도 큰 문제는 않될 꺼 같다. (백업 받고 진행 하고, MS 공식 입장은 삭제 불가 임을 명심하자)

2. C:\ProgramData\Microsoft\Windows\WER\ReportQueue
용도 : Windows 에러 레포팅
제거 유무 : Disk Cleanup 툴을 통해 제거 가능
image

Name   Password   Home   Secret   Submit
  Some tools for management the terminal service environment. 
작성일시 : 2008. 12. 26. 12:14 | 분류 : Windows Server/Terminal Service

How can we creating Active Directory users and then modifying Their Terminal Service Profiles and then modifying their repository's NTFS permission?

Commonly I create users using a dsadd. But the dsadd does not support editing the terminal service profile.
( DSADD Usage is in here : http://technet.microsoft.com/en-us/library/cc753708.aspx )
Ordinary the terminal service profile were configured by the Group Policy's computer configuration section.

image

But if you want to set in user's properties panel, using the tscmd would be a one of the several choices.
The tscmd has a limitation that it does not support several commands at once.
I will edit the user's Profile Path and Network connected Terminal Services Home Folder.
For edit user's terminal services profile, you could command 3 times.

Syntax : tscmd <Server> <User> <Setting> [New Value]
For applying all Computers in Active Directory, you could set the first parameter to "Domain Controller's name"

image 
(Picture : Terminal Services Profile Setting Panel)

1. First Set the Profile Path
C:\Documents and Settings\Administrator\Desktop\tscmd>tscmd ca-2k3 testuser TerminalServerProfilePath \\CA-2k3\\C$\%username%

image

2. Second Set the Terminal Service Home Folder
C:\Documents and Settings\Administrator\Desktop\tscmd>tscmd ca-2k3 testuser TerminalServerHomeDir \\CA-2k3\\C$\%username%

image

3. Third Set the Terminal Server Home Folder Letter
C:\Documents and Settings\Administrator\Desktop\tscmd>tscmd ca-2k3 testuser TerminalServerHomeDirDrive H

image

4. Fourth Done the Setting

image

You may be want to create a Folders for the user.
Already you made a home folder but you would have a experience of some permission problem.

You can configure the Folders permission at a 1 line command.
SubInACL (http://support.microsoft.com/kb/825751)

cscript xcacls.vbs C:\test\ownerShip\ /E /T /G CAMig\testuser:F

image

You can allow the full control for user easily.
It also support the take owner ship by parameter /O, but it doesn't work in my case.
So I introduce the another tool named SubInACL

subinacl /file c:\test /setowner=camig\testuser

image

[Downloads]
TSCMD : http://www.systemtools.com/cgi-bin/download.pl?tscmd
Xcacls : http://www.microsoft.com/downloads/details.aspx?FamilyID=0ad33a24-0616-473c-b103-c35bc2820bda&amp;DisplayLang=en&displaylang=en
SubInACL : http://www.microsoft.com/downloads/details.aspx?familyid=e8ba3e56-d8fe-4a91-93cf-ed6985e3927b&displaylang=en
dsadd, dsmod : Built in the Windows Server

Name   Password   Home   Secret   Submit

MS Office 사용 시 로컬 프로파일을 사용하는 터미널 서버 환경을 구성하게 되면 사용자들을 자신이 사용하는 어플리케이션 서버가 변경 될 때 마다 적어도 최초 1회는 인스톨 및 서용자 등록 과정을 거쳐야 합니다.

그렇게 되면 사용자들이 약간 불만을 갖게 될 수 도 있습니다.
아래 레지스트리를 사용자의 프로파일(HKEY_CURRENT_USER)에 등록하게 되면 별도의 인스톨이나 등록과정이 없이 등록 됩니다.
다만 표준 사용자 계정을 만드는 정도의 수고는 하셔야 겠죠?
쉽게 AD의 시작 스크립트에 박아 넣을 수 도 있습니다.
스크립트 작성에 대해서는 이전 Post (http://maystyle.tistory.com/295)를 참조하세요.

HKEY_CURRENT_USER\Software\Microsoft\Office]
[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0]
[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common]
"UserData"=dword:00000001
[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\UserInfo]
"Company"=hex:4c,00,47,00,20,00,4e,00,2d,00,73,00,79,00,73,00,20,00,4f,00,70,\  00,65,00,72,00,61,00,74,00,69,00,6f,00,6e,00,00,00
"UserName"=hex:53,00,42,00,43,00,20,00,55,00,73,00,65,00,72,00,00,00
"UserInitials"=hex:4c,00,47,00,44,00,69,00,73,00,70,00,6c,00,61,00,79,00,00,00
[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel]
"UserData"=dword:00000001
[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\PowerPoint]
"UserData"=dword:00000001
[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Word]
"UserData"=dword:00000001

Name   Password   Home   Secret   Submit

최근에 Clipboard 와 관련된 문제가 있었습니다.
Windows 에서 가끔씩 Clipboard 의 내용이 공유가 않되는 경우가 있습니다.
특히 Terminal Service를 이용할 때 자주 발생하게 되는데, 이 가장 큰 이유는 RDPClip.exe의 Clipboard viewer Chain이 끈어지기 때문입니다.
그와 관련해 제 친구 동조 블로그에 좋은 글 (http://dongjo.tistory.com/102) 이 올라와서 부연 설명을 더해 드립니다.

Windows 에서 Clipboard의 내용은 각 Application 들이 각자 관리 하게 됩니다.
Clipboard를 사용하도록 선언이 되게 되면 이 App 들은 각자 Clipboard를 관리하게되며, 각 App들에서 Clipboard의 내용이 변경 되게 되면 해당 내용을 update 받게 됩니다. 이를 Clipboard viewer chain 이라 합니다.
이런 연관 관계를 Clipboard viewer chain 이라 합니다.

[Clipboard Viewer Chain의 생성]
최초로 A 라는 Clipboard를 사용 하는 app가 실행 됩니다.
-> A

B app 가 실행 됩니다.
-> B -> A

C 와 D app 가 차례로 실행 됩니다.
-> D -> C -> B -> A

[Clipboard Viewer Chain 에서 Clipboard 내용 변경]
-> D -> C -> B -> A 와 같은 체인의 B app에서 사용자가 clipboard 의 내용을 변경 합니다.
-> D -> C -> B -> A
                    ^
        clipboard 내용 변경

해당 내용의 자신의 Chain의 가장 앞 노드인 D에 알리게 되고 D는 자신과 연결된 Chain에 해당 Update 내용을 전달 하게 됩니다.

[Clipboard Viewer Chain 에서 app 종료]
-> D -> C -> B -> A 에서 B가 종료 됩니다.
-> D -> C -> A

이 경우 B의 위치에 A가 자리 하게 됩니다.
즉 B의 Windows 핸들 값을 A 값이 대체하게 됩니다.

[일반적인 문제 현상과 그 원인]
위의 예에서 B가 종료 되면서 자신의 핸들값을 A의 값으로 대체 하지 못하고, 종료 되는 경우 A는 고립이 되게 되며 clipboard의 update를 확인 할 수 없습니다.

이런 경우는 보통 B app 소스에 문제가 있는 경우 가 있습니다.
일반적으로 Windows.close 같은 함수를 이용하여 종료할 경우에는 위와 같은 문제가 발생 하지 않습니다.
하지만 process.kill 과 같은 함수를 이용할 경우 해당 kill 에 대한 예외 처리를 하지 않으면 종종 발생하는 것으로 보입니다.

아래와 같이 예외 처리를 해줍니다.
간단하게 자신의 Windows 핸들을 다음 노드의 핸들로 대체해주는 구문입니다.
그리고 WM_DESTROY는 바로 비정상 종료를 가르키는 상수 값입니다.

case WM_DESTROY:      ChangeClipboardChain(hwnd, hwndNextViewer);
     PostQuitMessage(0);
     Break;

[Terminal Service 이용시 Clipboard 공유 문제]
사용자가 Terminal 연결을 할 경우 Windows에서는 해당 사용자를 위한 세션을 생성하고 그 위에서 다양한 Terminal 환경을 위한 App 를 구동하게 됩니다.
이 중 서버와 클라이언트의 Clipboard 내용을 동기화 하게 위해서 사용하는 app가 있는데, 이 app가 RDPClip.exe 입니다.
사용자가 터미널 서버에 접속하게 되면 RDPClip.exe가 hidden Windows 를 생성하여 위에서 설명한것과 같이 clipboard를 공유하게 됩니다.
이때 중요한 것이 해당 app가 chain의 가장 첫번째 생성 노드라는 점 입니다.
즉 해당 노드 app 중 하나의 app만 정상 종료가 않되게 되는 상황이 발생하게 된다면 이 RDPChain.exe는 clipboard update 내용을 확인 할 수 없는 것입니다.

[Terminal Service 이용시 Clipboard 공유 문제 해결 방안]
근본적으로는 위에서 언급한 것과 같이 clipboard를 사용함에 있어 다양한 예외 상황에 대한 처리를 app에서 해주는 것이 좋습니다.
하지만 그게 불가능 하다면 단순하게 RDPClip.exe를 재 시작하여 문제를 해결 할 수 도 있습니다.
RDPClip.exe가 신규 노드로 추가가 된다면 당연 이전의 고립 문제는 해결이 되게 되는 것이죠.

Windows Vista 및 Windows 2008에서는 OS 차원에서 System Controlled Clipboard Chain을 제공하고 있어 위와 같은 문제가 발생 하지 않습니다.

[클립 보드 문제 해결 방법]
.

참고 및 출처
http://blogs.msdn.com/ts/archive/2006/11/16/why-does-my-shared-clipboard-not-work-part-1.aspx

Name   Password   Home   Secret   Submit

image
현재 DC가 살아 있고 터미널 서비스에 접속해 있습니다.

image

현재 DC가 Reboot 된 상황에서도 터미널 서비스 접속이 잘 되고 있습니다.
image

Name   Password   Home   Secret   Submit