[- Disclaimer -]
아래 내용은 정보보안 공부 목적으로 작성된 것이나, 이를 토대로 허가되지 않은 대상에 실습을 진행할 경우 해킹 시도로 간주하여 법적 처벌을 받을 수 있음을 알려 드립니다.
산술 연산자
✦ +, -, /, %, =, +=, -=, *=
비교 연산자
✦ eq, -ne, -gt, match, -like, -contents (Get-Help about_comparison_operators)
논리 연산자
✦ and, -or, -xor, !
기타 연산자
✦ split, -join
조건문
if {
(...)
} else {
(...)
}
Plain Text
복사
switch(1) { 1 {"one"} 2 {"Two"}}
Plain Text
복사
반복문
while() {
(...)
}
Plain Text
복사
do {
(...)
} while()
Plain Text
복사
do {
(...)
} until()
Plain Text
복사
for( ; ;) {
(...)
}
Plain Text
복사
foreach($com in $coms) {
(...)
}
Plain Text
복사
foreach-object
✦ %로 별칭 되어 있음
Get-Process | foreach-object {$_.Name -matcvh "txt"}
Plain Text
복사
1, 2, 3 | foreach-object {$_*10}
Plain Text
복사
Alias 관련 명령어 검색
PS C:\> Get-Help *alias*
Name Category Module Synopsis
---- -------- ------ --------
Export-Alias Cmdlet Microsoft.PowerShell.U... ...
Get-Alias Cmdlet Microsoft.PowerShell.U... ...
Import-Alias Cmdlet Microsoft.PowerShell.U... ...
New-Alias Cmdlet Microsoft.PowerShell.U... ...
Set-Alias Cmdlet Microsoft.PowerShell.U... ...
PS C:\>
Plain Text
복사
PS C:\> Get-Alias
CommandType Name Version Source
----------- ---- ------- ------
Alias % -> ForEach-Object
Alias ? -> Where-Object
Alias ac -> Add-Content
Alias asnp -> Add-PSSnapin
Alias cat -> Get-Content
Alias cd -> Set-Location
Alias CFS -> ConvertFrom-String 3.1.0.0 Microsoft.PowerShell.Utility
Alias chdir -> Set-Location
Alias clc -> Clear-Content
(...)
Plain Text
복사
Ex)
PS C:\> $str = "Hello World!"
PS C:\> $str
Hello World!
PS C:\> $str.length
12
PS C:\>
Plain Text
복사
PS C:\> if($str.length -gt 10) { "too long" } else { "too short" }
too long
PS C:\>
Plain Text
복사
PS C:\> if($str -match "Hello") { $str }
Hello World!
PS C:\>
Plain Text
복사
PS C:\> $str -match "Hello"
True
PS C:\> $str -match "Helloa"
False
PS C:\>
Plain Text
복사
PS C:\> $str.gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
PS C:\> $string1 = Get-Help Get-Process
PS C:\> $string1
이름
Get-Process
구문
Get-Process [[-Name] <string[]>] [<CommonParameters>]
Get-Process [[-Name] <string[]>] [<CommonParameters>]
Get-Process [<CommonParameters>]
Get-Process [<CommonParameters>]
Get-Process [<CommonParameters>]
Get-Process [<CommonParameters>]
별칭
gps
ps
설명
Get-Help가 이 컴퓨터에서 이 cmdlet에 대한 도움말 파일을 찾을 수 없습니다. 일부 도움말만 표시합니다.
-- 이 cmdlet을 포함하는 모듈에 대한 도움말 파일을 다운로드하여 설치하려면 Update-Help를 사용하십시오.
-- 이 cmdlet에 대한 도움말 항목을 온라인으로 보려면 "Get-Help Get-Process -Online"을 입력하거나
https://go.microsoft.com/fwlink/?LinkID=113324(으)로 이동하십시오.
PS C:\> $string1 -match "remote"
False
PS C:\> $string1.gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True False PSCustomObject System.Object
PS C:\> $string1.gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True False PSCustomObject System.Object
PS C:\> Get-Help Out-String
이름
Out-String
구문
Out-String [<CommonParameters>]
별칭
없음
설명
Get-Help가 이 컴퓨터에서 이 cmdlet에 대한 도움말 파일을 찾을 수 없습니다. 일부 도움말만 표시합니다.
-- 이 cmdlet을 포함하는 모듈에 대한 도움말 파일을 다운로드하여 설치하려면 Update-Help를 사용하십시오.
-- 이 cmdlet에 대한 도움말 항목을 온라인으로 보려면 "Get-Help Out-String -Online"을 입력하거나
https://go.microsoft.com/fwlink/?LinkID=113368(으)로 이동하십시오.
PS C:\> $string2 = $string1 | Out-String -Stream
PS C:\> $string2.gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
PS C:\> $string2 -match "remote" // 왜 결과 안 나와
PS C:\>
Plain Text
복사
Ex)
PS C:\> $a = 1,2,3,4,5
PS C:\> $a
1
2
3
4
5
PS C:\>
Plain Text
복사
PS C:\> $a * 2
1
2
3
4
5
1
2
3
4
5
PS C:\>
Plain Text
복사
PS C:\> foreach($idx in $a) { // ??
>> $idx = $idx = 2
>> }
PS C:\> $a
1
2
3
4
5
PS C:\> foreach($idx in $a) { $idx * 2 } // ㅇㅇ
2
4
6
8
10
PS C:\>
Plain Text
복사
PS C:\> $a | foreach-object { $_ }
1
2
3
4
5
PS C:\> $a
1
2
3
4
5
PS C:\>
Plain Text
복사
PS C:\> $a | foreach-object { $_ * 2 }
2
4
6
8
10
PS C:\>
Plain Text
복사



