Microsoft Powershell 개요 및 사용법
[개요]
- Microsoft 인프라 관리 시 발생할 수 있는 문제들을 해결하기 위해 개발된 Command Line Shell
* GUI 환경으로는 할 수 있는 기능이 제한적이기 때문에, 더 효율적으로 관리 및 사용하기 위해 PowerShell을 이용
- 인터렉티브하게 작성 가능
- 프로그래밍 가능
- 제품 지향적
문법
- 동사(Verb) – 명사(Noun)
* 동사 : Get, Set, Add, Copy, Move…
* 명사 : Object, Service, Item, Help…
- 공통문법
* Cmdlet –param v1 –param2 v2 [, v2 –flag]
Tip! Select-Object = Select, Where-Object = Where, Format-List = fl 별칭 만들기 : Set-alias 별칭명 Cmdlet |
[Pipeline]
파이프 기호 “ | “
- 프로세스의 결과를 타 프로세스로 전달하여 작업
* 결과를 전달 함으로써 파이프라인 앞뒤의 문장을 연결한다.
* Ex) Get-Process | Where { $_.ProcessName –eq “svchost”}
Select 절
- 파이프를 통해 넘어온 결과에 대해 원하는 속성만 볼 수 있다.
* Ex) Get-Process | Select cpu, id, ProcessName
Where 절
- 파이프를 통해 넘어온 결과에 대해 조건을 붙여 비교할 수 있다.
* 일반 비교 : -gt, -lt, -eq…
* 문자열 비교 : -like, -match, -clike…
Display
- Console로 결과를 전시 or 파일로 저장하는 형식 지정
* Console로 결과 전시 : Format-Table, Format-List, Sort-Object, Group-Object…
* 파일로 저장 : Out-File Xxx.txt…
* PowerShell Script 파일 : xxx.ps1
Format-Table / Format-List / Format-Wide
- Format-Wide : 개체의 기본 속성만 표시
- Format-List : 각 속성이 별도의 줄에 표시되는 목록 형식으로 개체를 표시
- Format-Table : 표 형식으로 개체를 표시(Default)
* AutoSize : Format-Table이 열이 좁아 데이터를 모두 표시할 수 없을 때 사용
* Wrap : Format-Table 데이터를 해당 열 안에서 래핑
PowerShell의 변수
- 모든 변수는 접두사(“$”)를 사용한다.
* Ex) $number = 2
- 배열(Array) - 접두사(“@”)
* Ex) $arr = @(1,2,3,4) = $arr[2]
• PowerShell의 Function(함수)
- 사용자 정의 함수를 만들어 사용할 수 있다.
* Function Get-BatAvg
{
param($Name, $Runs, $Outs)
$avg = [int]($Runs / $Outs *100) /100
Write-Output “$Name’s Average = $avg, $Runs, $Outs”
}
* Get-BarAvg Testman 6996 70
[중요 Command]
• Get-Help
- Cmdlet 및 개념에 대한 “도움말”을 표시한다.
* - examples : 예제만 보려면 Examples 매개 변수를 사용합니다.
* - detailed : 매개 변수 설명 및 예제를 포함하여 cmdlet에 대한 자세한 도움말을 표시하려면 Get-Help의 Detailed 매개 변수를 사용합니다.
* - full : cmdlet 및 cmdlet의 매개 변수에 대한 기술적인 내용을 포함하여 사용 가능한 모든 cmdlet 도움말을 표시하려면 Full 매개 변수를 사용합니다.
• Get-Member
- 개체의 속성 및 메서드를 가져옵니다.
• Get-Verb
- 행동을 취할 수 있는 기본동사를 확인 할 수 있다.
• Get-Command
- Cmdlet 및 Powershell 명령의 다른 요소에 대한 기본 정보를 가져옵니다.
- 기본적인 Cmdlet를 모를때도 사용