원본 : http://svrstudy.tistory.com/75

안녕하세요. 엉스데브 입니다.

이번에는 원격 서버에 파워쉘로 연결하는 방법에 대해 알아보았습니다.

Windows 2008 R2, Windows 7 부터는 기본적으로 PowerShell 원격 작업이 가능하도록 되어있습니다.
다만, 원격 연결을 설정하고 실행 하려면 원격 컴퓨터의 관리자(Administrators) 그룹의 권한이 필요하며,
로컬 서버에서 원격 서버에 연결 혹은 명령어를 실행 할 때 항상 이 권한을 가진 자격증명을 제공해 주어야 합니다.

1. 원격 서버 설정하기.
먼저 원격 기능을 사용할 수 있도록 원격 서버 설정을 변경 해 주어야 합니다.
PowerShell 2.0 부터는 이 설정 변경 작업을 간편하게 할 수 있는 cmdlet 을 기본 제공 합니다.

원격 서버에서 아래의 명령어를 실행하면 됩니다.

Enable-PSRemoting


명령을 실행하면 처리하는 작업에 대한 승인여부를 물어보는데,
아무것도 묻지않고 자동으로 처리 하도록 하려면 -Force 파라미터를 추가 해 주면 됩니다.




이 명령어를 실행하면, 자동으로 여러 설정을 변경해서, 원격 연결을 받아들일 수 있는 상태로 설정 해 줍니다.
자세한 내용은 MSDN 도움말(링크)을 확인 해 보시기 바랍니다.

기본적으로 모든 IP 에서 원격 연결을 허용하게끔 설정 되는데, 해당 서버의 Administrators 그룹 권한을 가진 계정정보를 모르면 원격 연결이 불가능 하기 때문에 보안적인 문제는 크게 걱정하지 않아도 됩니다.

만약, 제한 된 IP 에서만 원격 연결이 허용 되도록 하고싶다면, 직접 방화벽 설정을 통해 조절할 수 있습니다.
PowerShell 은 WinRM 프로토콜(TCP/5985, TCP/5986)을 사용해 통신하므로, 해당 포트의 접속 가능 여부를 조작 하시면 됩니다.

2. 로컬 서버의 "신뢰할 수 있는 호스트 목록" 에 원격 서버 추가하기.
원격 서버에 접속 하려면, 로컬 서버의 "신뢰할 수 있는 호스트 목록" 에 원격 서버를 등록 해야 합니다.
로컬 서버의 "신뢰할 수 있는 호스트 목록" 을 설정하려면, 아래의 명령어를 사용하면 됩니다.

Set-Item WSMan:\localhost\Client\TrustedHosts -Value "원격서버IP 혹은 호스트네임"

이 명령어를 사용하면 WinRM 보안구성 변경 확인 여부를 물어보는데,
아무것도 묻지않고 자동으로 처리 하도록 하려면 -Force 파라미터를 추가 해 주면 됩니다.




만약 여러개의 원격 서버를 지정 하고 싶다면 각 항목을 콤마(,) 로 구분하면 됩니다.

Set-Item WSMan:\localhost\Client\TrustedHosts -Value "원격서버1, 원격서버2"




만약 새로 설정하는 것이 아니라, 기존 설정에 추가하고 싶다면 아래와 같이 하면 됩니다.

$TrustedHostsOld = (Get-Item WSMan:\localhost\Client\TrustedHosts).Value
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "$TrustedHostsOld, 원격서버IP 혹은 호스트네임"




3. 원격 서버 접속용 자격증명(Credential) 만들기.
이제 원격 서버에 접속 할 수 있는 환경 구축은 마무리 되었고, 원격 서버에 접속 할 계정에 대한 자격 증명을 만들 차례 입니다.

자격증명은 간단히 아이디/패스워드 정보 라고 이해하시면 쉽습니다.
터미널에 접속 할 때 아이디/패스워드 를 입력 하는것 처럼, PowerShell 원격 접속 시에 사용할 아이디/패스워드 정보를 특정 형식으로 저장 한 것입니다.

PowerShell에서는 이 자격증명을 변수에 넣어두어 -Credential 파라미터에 지정 해 주는 방식으로 사용 할 수 있습니다.

자격증명은 아래와 같이 만들 수 있습니다.

(방법1)
간단하게 만들 수 있는 방법입니다.
하지만, 사용자가 패스워드를 직접 입력 해 주어야 하기 때문에, 스크립트 작성 등 자동 화가 필요한 작업에는 사용하기 어렵습니다.

아래의 명령을 입력하면, 패스워드를 입력받기 위한 팝업창에 표시 됩니다.
팝업되는 창에 패스워드를 입력 해 주면, 자격증명이 만들어져 $MyCredential 변수에 저장 됩니다.

$MyCredential = Get-Credential "아이디"




(방법2)
자동화가 필요할 때 사용할 수 있는 방법입니다.
사용자에게 직접 입력을 요구하지 않고, 미리 입력 해 둔 정보를 활용해서 자격증명을 만들 수 있습니다.

먼저, 아래 명령을 사용해서, 패스워드를 변수에 저장 합니다.
아래 명령어를 실행하고 패스워드를 입력 해 주면, 입력된 패스워드를 암호화 하여
아래 스크린샷과 같이 확인 할 수 없는 상태의 문자열로 변환되어 변수에 저장 됩니다.

$MyPassword = Read-Host "Password" -AsSecureString | ConvertFrom-SecureString




자동화가 필요할 경우, 이 변수에 저장 된 문자열을 별도로 저장해 두고 추후 자격 증명을 만들때 사용하면 됩니다.

이 문자열을 사용해 자격증명을 만들려면, 아래와 같이 실행하면 됩니다.

$MyPassword = $MyPassword | ConvertTo-SecureString
$ObjectTypeName = "System.Management.Automation.PSCredential"
$MyCredential = New-Object -TypeName $ObjectTypeName -ArgumentList "아이디",$MyPassword



4. 원격 작업 하기
이제 모든 준비가 완료 되었습니다. 원격 작업을 해 봅시다.
먼저, 원격 서버에 PowerShell 로 접속 하고 싶다면, 아래의 명령을 사용하면 됩니다.

Enter-PSSession -ComputerName "원격서버IP 혹은 호스트네임" -Credential $MyCredential



만약, 원격 서버에 접속하는 것이 아니라, 원격서버에서 특정 명령어만 실행하고 싶다면, 아래와 같이 하면 됩니다.

Invoke-Command -ComputerName "원격서버IP 혹은 호스트네임" -Credential $MyCredential -Command {"실행 할 명령어"}





원격 설정이 그다지 복잡하지 않네요. 여러대의 서버가 있을 경우, 유용하게 사용 할 수 있을 것 같습니다 ^^
오늘은 여기까지 입니다. 제가 포스팅 한 내용이 도움이 되셨기를 바랍니다.

감사합니다.


저작자 표시 비영리 변경 금지
Creative Commons License
Creative Commons License

TRACKBACK http://blog.niu.kr/trackback/80 관련글 쓰기

댓글을 달아 주세요

펌글입니다.
혹시나 하는 마음에 항목을 복사해온것에 불과합니다.
snoopy님의 삭제나 비공개 요청이 있을경우 변경이 될수 있으니 아래 원문을 참고하시는 것이 좋습니다.

원본 : http://snoopybox.co.kr/946

-------------------------------------------------------------------------------------------------------------

※ 시작하기에 앞서 이렇게 수동으로 작업하시는게 두려우신 분들께는 멀티 부팅을 복구해보자 EasyBCD글에 나온 프로그램을 사용하실 것을 권장드립니다.


※ 멀티부팅을 구성하실 생각이라면 XP를 먼저 첫번째 파티션에 설치하고 상위 버전의 OS는 나중에 설치할 것을 권장합니다. 그렇게 하면 자동으로 멀티부팅이 구성되고 이런 식으로 귀찮은 작업을 하실 필요가 없습니다.


가끔 질문받았던 내용인데 그동안 바빠서 포스팅하지 못했던 것을 오늘에야 이렇게 올립니다. 정확한 가이드 작성을 위해 직접 제 컴퓨터에 2가지 OS를 순서대로 설치하였고, 부팅 복구를 확인했습니다. 우선 제가 사용중인 SSD를 2개의 파티션으로 분할한 다음 첫번째 파티션에 비스타 32비트를 설치했습니다. 그런 다음 두번째 파티션에 XP를 설치해봤더니 다음과 같은 상태가 되었습니다.





XP를 설치하고 나면 XP로만 부팅되기 때문에 현재 XP에서 이 글을 작성합니다. 위 스샷을 보시면 C에 비스타가 설치되어 있고 F에 XP가 설치되어 있습니다. 보통 새로 OS를 설치하고 그 OS로 부팅을 하면 해당 OS가 C로 표시되게 마련인데 XP의 경우는 구형이라 조금 다른가보네요. 저는 XP 부팅파일이 F에 설치될줄 알았는데 의외로 C에 설치되어 있기 때문에 이런 경우는 부팅복구가 오히려 간단합니다. 참고로 현재 XP 파티션이 F인 이유는 D가 500G 하드, E가 CD롬으로 잡혀있기 때문입니다. 이 상태에서 윈도우 7 or 비스타 부팅을 복구하려면 먼저 C에 있는 BCD에게 권한을 넘겨줘야 합니다. 현재는 C가 NTLDR로 부팅되도록 설정되어 있기 때문에 XP로만 부팅되고 있는 상황입니다. 아래 첨부파일을 다운받으신 다음 윈도우 폴더에 복사해두고 CMD 창을 열어서 다음 명령어를 입력해주세요.



bootsect /nt60 sys /mbr




위와 같이 입력하시면 MBR을 BOOTMGR로 부팅되도록 업데이트 합니다. 이 상태로 재부팅 하시면 이제는 XP로 부팅되지 않고 비스타로만 부팅됩니다. 일단 저도 재부팅한 다음 비스타로 들어가서 다시 글을 작성하겠습니다.


자 이제 저는 비스타로 들어왔습니다. 가이드를 계속 이어가겠습니다. 이제는 XP를 비스타의 부팅메뉴인 BCD에 추가해주는 작업을 해야합니다. 명령 프롬프트를 관리자 권한으로 실행하신 다음 다음과 같이 입력해주세요.

bcdedit /create {ntldr} /d "Windows XP Professional SP3"

큰 따옴표 안에 XP 부팅메뉴 이름은 아무렇게나 원하시는 이름을 적어주시면 됩니다. 만약에 다음과 같은 오류가 발생한다면




이미 {ntldr} 이라는 항목이 존재한다는 말인데 그렇다면 그냥 기존에 존재한다는 저 항목에 큰 따옴표 뒷 부분만 수정하도록 다음과 같이 입력하시면 되겠습니다.

bcdedit /set {ntldr} description "Windows XP Professional SP3"




bcdedit /set {ntldr} device partition=C:

가장 중요한 부분
입니다. 여기서 C 드라이브를 지정하는 것은 XP가 설치된 파티션이 아닙니다. BCD가 존재하는 활성파티션 즉 원래의 부팅파티션을 지정해줘야 합니다. 이 글의 가정대로 비스타를 첫번째 파티션에 먼저 설치했고 BCD 역시 C에 있는 상황이라면 XP를 나중에 설치한 경우도 XP의 부팅파일은 C에 생성이 됩니다. 따라서 웬만한 상황이라면 이 부분을 C로 입력하시면 됩니다.

bcdedit /set {ntldr} path \ntldr

NTLDR 파일의 위치를 지정해주는 것인데 현재 NTLDR 파일은 BCD가 있는 드라이브에 존재하기 때문에 그냥 위 내용을 그대로 입력해주시면 됩니다.

bcdedit /displayorder {ntldr} /addlast

XP 부팅항목을 멀티부팅 메뉴 마지막 부분에 추가하는 명령어입니다. 처음에 오류났던 부분까지 해서 한꺼번에 입력한 모습을 보여드리겠습니다.




이제 이 상태로 재부팅을 하면 비스타와 윈도우 XP를 선택할 수 있는 메뉴가 나타나게 됩니다.

참고 문헌
http://support.microsoft.com/kb/919529/ko
저작자 표시 비영리 변경 금지
Creative Commons License
Creative Commons License

TRACKBACK http://blog.niu.kr/trackback/79 관련글 쓰기

댓글을 달아 주세요


프로그램 하단에 트레이 아이콘을 설정하는 법입니다.

기본적인 트레이 등록하는 법은 다음과 같습니다.

간단합니다.

그런데 이 방법으로 했을 경우 한가지 문제가 생기는 경우가 있습니다.

XP나 Win7에서는 동작을 잘하는데 Vista에서는 Explorer가 꺼졌다가 살아난경우 동작을 하지 않는 경우가 생깁니다.

도무지 이해가 되지 않아 찾아봤더니 트레이 프로그램은 관리자 권한으로 실행중인데 explorer는 관리자 권한이 없어서 메시지가 통보가 되지 않는겁니다.

explorer를 관리자 권한으로 할수도 없으니 트레이에서 해결해야겠죠.
방법은 해당 메시지를 받을수 있게 하는겁니다.
아래와 같은 코드를 추가하면 됩니다.
User32.dll을 Delay Load한 이유는 ChangeWindowMessageFilter 함수가 Vista 이상에서 구동이 가능한것이기 때문입니다.
UAC가 추가된것이 Vista부터이니 당연한 얘기겠지요.

그런데 여기에서도 문제가 발생합니다.

일반적인 어플리케이션의 경우에는 상관이 없지만 서비스에서 실행시켜주는 User 프로그램의 경우 부팅시 트레이 아이콘이 등록되지 않는 경우가 생깁니다.

이것은 explorer가 동작중이지 않은 상황에서 User 프로그램이 먼저 실행이 되어서 발생합니다.
일반적으로 프로그램 시작시에 트레이 아이콘을 등록하게끔 하는겁니다.

explorer가 동작중이지 않은 상황에서는 RegisterWindowMessage를 실행해도 이후 explorer가 실행될때 등록한 TaskbarCreated 메시지가 통지가 되지 않습니다.(왜인지는 저도ㅠ_ㅠ)

어쨋든 이 문제를 해결하기 위해서는 Shell_NotifyIcon가 실패한 경우에 Thread를 생성하여 explorer.exe가 실행될때까지 기다리는수밖에 없습니다.(리턴값 체크 잘하세요ㅠㅠ)
저작자 표시 비영리 변경 금지
Creative Commons License
Creative Commons License

TRACKBACK http://blog.niu.kr/trackback/78 관련글 쓰기

댓글을 달아 주세요


VMWare에 SnowLeopard 설치하는 방법입니다.
SnowLeopard를 설치하려는데 No Operation System Found와 같은 에러가 계속 나서 찾으니 이런 자료가 있었네요.

자세한건 원문을 참조하길 바라며...

여기에는 간략하게만 적습니다.

원문 : http://tigernet.tistory.com/530 


압축을 풀고, cmd로 setup.cmd install 명령어를 실행(Vista이상에서는 관리자 권한으로 실행) 하면 일단 준비 완료.

OS X를 위한 VMWare 이미지를 만들고 해당 셋업 파일을 수정한다.

guestOS = "darwin10-64"

svga.autodetectect = "FALSE"
svga.vramSize = "134217728"
ich7m.present = "TRUE"
keyboard.vusb.enable = "TRUE"
mouse.vusb.enable = "TRUE"
monitor.virtual_exec = "hardware"
monitor.virtual_mmu = "software"


저작자 표시 비영리 동일 조건 변경 허락
Creative Commons License
Creative Commons License

'Programming > IT Tip&Tech' 카테고리의 다른 글

트레이에 아이콘 등록하기  (0) 2010/09/25
VMWare(7.0.1)에 SnowLeopard(10.6.2) 설치  (0) 2010/05/27
Tech-Days Korea 2009 오픈  (0) 2009/10/20
Windows7 부팅 USB 만드는 방법  (0) 2009/06/03

TRACKBACK http://blog.niu.kr/trackback/76 관련글 쓰기

댓글을 달아 주세요

Programming/IT Tip&Tech | Posted by niu 2009/10/20 21:53

Tech-Days Korea 2009 오픈

Tech Days Korea 2009가 오픈되었습니다. (링크 : http://www.techdays.co.kr/)

Windows7과 VisualStudio 2010. 모바일 및 웹(UX, RIA, SilverLight 3), WPF와 관련된 세션들이 열려 있습니다.

이번에 주력으로 나온것은 당연하게도 Windows7 관련 내용들입니다. 새로운 OS 환경에서의 개발과 Window7에서 지원해주는 여러가지 내용들에 대해 설명을 해주는 세션들이 열렸네요.

SilverLight 3를 설치하시면 동영상으로 감상이 가능하니 좋은 공부 시간이 될것 같습니다.
너무 많아서 볼 시간이 부족할지도 모르겠네요.
시간이 부족하더라도 발표자료랑 데모 소스, 동영상 다운까지 모두 무료로 이용할수 있으니까 좋은 자료 다운 받아서 백업 해놓으라는 것 같습니다.

세션의 강의는 MS IT 에반젤리스트 분들과 MS MVP 분들께서 해주셨다니 쉽게(?) 잘 설명해주실거라 믿습니다.
11월 30일까지 이벤트도 있으니까 노려보시는것도ㅋㅋ
Creative Commons License
Creative Commons License

'Programming > IT Tip&Tech' 카테고리의 다른 글

트레이에 아이콘 등록하기  (0) 2010/09/25
VMWare(7.0.1)에 SnowLeopard(10.6.2) 설치  (0) 2010/05/27
Tech-Days Korea 2009 오픈  (0) 2009/10/20
Windows7 부팅 USB 만드는 방법  (0) 2009/06/03

TRACKBACK http://blog.niu.kr/trackback/65 관련글 쓰기

댓글을 달아 주세요