Wednesday, January 11, 2017

 

[Windows] Powershell 기본 문법에 대해 알아보자.

스크립트 중에 MS에서 강력하게 추진하고 있는 스크립트인 "Powershell". 저 역시 아직은 실무에서 사용하면서 조금씩 배우는 단계인지라, 많이 알지는 못하지만 확실한건 기존 bat나 vbe 파일 대비 문법 구조가 이해하기 쉬운 점이 큰 장점이라고 생각한다.

파워쉘 구문은 정말 방대해서 모든 것을 언급하기는 힘들고 그 중에서 쓸모있고 필요한 것부터 정리를 하면서 궁극적으로는 고급 구문도 공부를 하면서 소개드릴 예정이다.

우선 파워쉘에 대해서는 모니모니해도 MS가 공식적으로 운영하고 있는 사이트(https://msdn.microsoft.com/en-us/powershell)가 있지만 솔직히 친절하지 않다.. 마치 개념원리 수준이고 실 사용을 하기에는 예시가 필요한데.. 다들 전문가인지 예시를 그닥 공유하지 않는다. ㅎㅎㅎ 여기서는 모든 기준은 ActiveDirectory 기준으로 소개할 예정이다.

기본적으로 파워셀은 "Verb(동사)-Object(목적어)"로 구성이 되어 있어서 누구나 처음을 봐도 무슨 커맨드인지 이해하기 쉽고 응용할 수 있다.

1. Powershell Module 불러오기
기본적으로 최근 서버에는 Active Directory 모듈이 올라가있지만, 안 올라가 있는 경우에는 관련 모듈을 가져와야 한다. 예를 들어, ActiveDirectory 경우에는 아래와 같이 관련 모듈을 가져올 수 있다.
PS C:\> Import-Module ModuleName 
PS C:\> Import-Module ActiveDirectory

2. Module에 대한 command 살펴보기
모듈에 대한 모든 커맨드를 알기는 쉽지 않다. 그럴 경우, 아래와 같이 'Get-Command' 명령어를 이용하면 모듈에 대한 다양한 커맨드를 알 수 있다.

PS C:\>Get-Command -Module ModuleName 
PS C:\>Get-Command -Module ActiveDirectory

3. Command에 대한 상세 설정 알아보기
Command에 대해 상세 설정 역시 cmd(명령프롬프트)에서 /? 와 유사하게 쉽게 정보를 얻을 수 있다.

PS C:\>Get-Help Cmdlet
PS C:\>Get-Help Get-ADUser

4. 기본 문법 with 예시
문법은 워낙 다양하기 때문에 예시를 통해 그 구조를 살펴보도록 하자.
PS C:\> Get-Content C:\Users\100panda\Desktop\profilepath.txt  | % { Get-ADUser  $_ -Properties * | ft name,ProfilePath } 

여기서 하니씩 나눠서 살펴보면,
Get-Content(gc)+filepath : file에 있는 컨텐츠를 불러옴. 약어로 GC로도 표현하기도 한다.
|  : (GC로 파일을 불러온 다음) 그리고~ or 그래서~
% { } : 불러온 파일이 복수일 경우, 각각에 적용을 시키겠다는 의미.(ForEach-Object의 Alias)
$_  : 앞에서 수행한 정보 그자체.
$_. : 앞에서 수행한 정보의 속성을 불러올때 사용한다.

5. 기타 기본 문법
| Format-Table + 속성값 -Wrap : 표형식으로 칼럼값 지정 츨력
| Out-File +경로 : 파일출력


#powershell #activedirectory #파워쉘
Share:

0 comments:

Post a Comment