본문 바로가기

Server Story..../PowerShell

윈도우 파워쉘 사용을 위한 10가지 팁 윈도우 파워쉘 사용을 위한 10가지 팁 파워쉘은 커맨드 라인을 대체할 마이크로 소프트의 새로운 툴이다. 아직은 베터버전 이지만, 여기서 최신 버전을 무료로 다운로드 받을 수 있다. 우리같이 좀 묵은 사람들은 예전에 한때 DOS를 썼었고, 좀 지나서는 윈도우즈 환경에서 DOS 커맨드 창과 거의 비슷한 CMD.exe를 사용했다. 그러나 파워쉘은 DOS의 업데이트 버전이 아니다. 파워쉘은 MS가 이전에는 제공했던 어떤 커맨드 라인 프롬프트보다 강력한 커맨드라인 시스템이다. 안타깝게도 이 툴을 배우기 전에 해야 할 일이 있다. (역자: 파워쉘 설치와 함께 XP service pack 2.0 이상과 .NET 프레임워크 2.0이 설치되어 있어야 한다.) 툴을 설치하고 살펴본 후에는 아래의 10가지 팁을 읽어보아라... 더보기
파워쉘 윈도우 정품인증 확인 파워쉘 윈도우 정품인증 확인 100대의 서버중 정품인증이 풀린 서버가 있는지 확인해야 한다면 아래의 방법이 사용가능하다 get-ciminstance -class SoftwareLicensingProduct | Where-Object { $_.ID -eq '6d47464d-e43d-4228-b051-fddd47fd403f' } 위는 windows 2008 server r2의 라이센스를 확인하는 코드인데 guid부분은 경험적으로 얻어낸 부분이니 관리하고자 하는 서버의 id는 별도로 확인해서 해당부분만 수정해주면 된다 문제는 get-ciminstance 자체가 무시무시하게 느리다는 점인데, 시켜놓고 다른일을 해도 될만한 상황이거나, 급하게 확인할 필요가 없다면 쓸만하다고 생각한다 더보기
파워쉘로 리모트에 gui화면 실행 파워쉘로 리모트에 gui화면 실행 서버에 들어가는 프로그램은 서비스로 제작되는 것이 정석이지만 관리 편의상 gui를 가진 어플리케이션의 형태로 제작되는 경우도 많다 이런 gui를 가진 어플을 특정한 계정에 자동시작되도록 하고 특정한 계정이 서버 시작시 자동으로 로그인 되게 해놓으면 일단 자동으로 구동된다는 점에서는 서비스와 같으며 별도 서비스 모니터링 툴이 필요없으니 많이들 사용하는 기법이다 하지만 파워쉘의 리모트로 접속한이후 gui를 가진 프로그램을 실행시키면 어떨까? 분명 실행은 되지만 화면에는 아무것도 나오지 않는다 이제 해결방법을 알아보자 이 부분에 대하여 여러가지 방법을 찾아보면 psexec라는 해결방법이 제일 먼저 나온다 하지만 프로그램을 별도로 받아야하며 해당프로그램으로 windows 200.. 더보기
파워쉘의 기본문법1 파워쉘의 기본문법1 [변수] 파워쉘의 기본 변수는 아래와 같습니다 $변수명 $i = 1 $i.GetType() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True Int32 System.ValueType 우왕 굿? $i = 'kkk' $i.GetType() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True String System.Object 우왕 굿? $i | Get-Member Name MemberType Definition ---- ---------- ---------- Clone Method System.Object Clone(), Sy.. 더보기
파워쉘의 출력에 대하여 파워쉘의 출력에 대하여 커맨드라인과 파워셀의 출력 차이점 커멘드라인과 파워쉘은 언뜻 살펴보기에는 동일한 방식으로 동작하는 것 처럼 보이지만 실제로는 입출력 대상에 큰 차이점이 있다, 먼저 이부분을 살펴보자 커멘드라인의 출력 커맨드라인은 에러와 기본출력 두가지를 가지고 있다, 그냥 단순하게 생각해서 문자열을 출력한다고 생각하면된다 dir > result.txt => 디렉토리 목록을 조회하여 result.txt로 저장 copy result.txt con => result.txt를 con로 카피 dir | more => 디렉토리 목록을 출력하는데 페이지 단위로 나누어서 출력한다 copy con test.txt => 콘솔로 입력받은 내용을 text.txt로 저장한다 위 예제에서 보이는것 처럼 모든 입출력은 문자.. 더보기
스크립트 파일을 실행하기 위한 설정 스크립트 파일을 실행하기 위한 설정파워쉘 스크립트가 실행되지 않는다? 먼저 파워쉘 ise를 실행해보자 위쪽 편집창에 간단한 명령어 dir 을 기록한이후 ctrl-s를 눌러 파일을 저장한후 스크립트를 실행하는 핫키인 F5를 눌러보면 다음과 같은 메시지가 나오면서 스크립트가 실행되지 않는다 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Users\dirtyvictory\Desktop\제목 없음1.ps1 파일을 로드할 수 없습니다. 자세한 내용은 "get-help about_signing"을 참조하십시오.At line:0 char:0 애시당초 이해가 안되는 설정이지만 바꿀수 있으니 바꿔주자 문제는 내가 이걸 100대의 서버에 똑같이 한번은 쳐야 한다는거 뿐이니깐 Set-ExecutionPolicy Unre.. 더보기
파워쉘 실행 파워쉘 실행 파워쉘의 실행파워쉘을 배워보기에 앞서 기본적인 실행방법과 차이점을 알아보자 실행방법들 파워쉘은 명령창의 형태로 실행하는 PowerShell과 명령창형태 명령편집과 디버깅 그리고 명령창을 함께 제공하는 파워쉘 ISE이 제공된다 파워쉘 ISE그리고 스크립트 형태의 *.ps1로 실행이 가능하다 명령창 형태의 실행powershell을 그냥 실행시키면 cmd.exe의 실행과 동일한 형태의 명령창이 실행된다기본적인 dir등의 명령이 실행되지만 대부분 파워쉘 명령의 alias 즉 별칭에 불과하다파워쉘을 통한 간단한 명령실행이나 조회 설정등에 사용할 수 있다 본격적인 명령 편집과 디버깅은 파워쉘 ISE를 사용하는 편이 더 좋다 파워쉘 ISEISE버전은 최상단 스크립트 편집기와 가운데 출력창 그리고 하단의 .. 더보기
파워쉘 비밀번호 암호화 파워쉘 비밀번호 암호화 파워쉘에서의 비밀번호 관리여러대의 서버를 관리할때 명령창에서 비밀번호를 입력해야할 일이 많다 예를 들어 네트워크 드라이브를 생성하는 net 명령의 경우 아래의 문법을 사용한다 * 네트워크 드라이브 생성사용자: patch_user네트워크경로 : \\patch_server\patch비밀번호 : password대상 드라이브 : p: net use p: password \\patch_server\patch /user:patch_user * 네트워크 드라이브 제거 net use /y /d p: 위와 같은경우 스크립트를 작성하게 되면 그대로 비밀번호를 노출하게 된다 해결책사용자에게 비밀번호를 입력받고 이를 암호화 하여 파일로 저장한다비밀번호가 필요할때는 파일에서 읽어온 암호화된 문자열을 복호.. 더보기
파워쉘 명령어 기본 파워쉘 명령어 기본 [파워쉘의 명령어란?] 도스에서 내장명령어, 내부명령어는 파워쉘에서는 cmd-let이라고 불린다 한글로는 커맨드렛이라 읽으면 된다 [파워쉘의 명령어 조회] 파워쉘의 명령어 목록을 구하려면 get-command 명령을 입력한다, 그런데 이 명령어을이 하나둘도 아니고 무더기로 나오는데 이게 무슨 도움이 될런지 모르겠다 [명령어의 도움말 보기] 보다 유용한 명령어 습득은 해당기능에 대한 구글링이다 구글링을 통해 명령어의 이름을 알았다면 보다 구체적인 명령어의 예제나 문법 정보가 필요할텐데 이때 사용하는 명령이 get-help 명령이다 cmd 일명 커맨드라인의 dir 에 해당하는 명령인 get-childitem의 도움말을 보려면 다음과 같이 입력한다 get-help get-childitem .. 더보기