Search

Output Type

[- Disclaimer -] 아래 내용은 정보보안 공부 목적으로 작성된 것이나, 이를 토대로 허가되지 않은 대상에 실습을 진행할 경우 해킹 시도로 간주하여 법적 처벌을 받을 수 있음을 알려 드립니다.
Format-Table
✦ Column 단위 확인
PS C:\> Get-Command -CommandType cmdlet -name format* CommandType Name Version Source ----------- ---- ------- ------ Cmdlet Format-Custom 3.1.0.0 Microsoft.PowerShell.Utility Cmdlet Format-List 3.1.0.0 Microsoft.PowerShell.Utility Cmdlet Format-SecureBootUEFI 2.0.0.0 SecureBoot Cmdlet Format-Table 3.1.0.0 Microsoft.PowerShell.Utility Cmdlet Format-Wide 3.1.0.0 Microsoft.PowerShell.Utility PS C:\>
Plain Text
복사
PS C:\> Get-Help *Format* Name Category Module Synopsis ---- -------- ------ -------- Format-Hex Function Microsoft.PowerShell.U... ... Export-FormatData Cmdlet Microsoft.PowerShell.U... ... Format-Custom Cmdlet Microsoft.PowerShell.U... ... Format-List Cmdlet Microsoft.PowerShell.U... ... Format-Table Cmdlet Microsoft.PowerShell.U... ... Format-Wide Cmdlet Microsoft.PowerShell.U... ... Get-FormatData Cmdlet Microsoft.PowerShell.U... ... Update-FormatData Cmdlet Microsoft.PowerShell.U... ... Write-Information Cmdlet Microsoft.PowerShell.U... ... Get-AppLockerFileInformation Cmdlet AppLocker Get-AppLockerFileInformation... Format-SecureBootUEFI Cmdlet SecureBoot Format-SecureBootUEFI... Format-Volume Function Storage ... Get-StorageFirmwareInformation Function Storage ... PS C:\>
Plain Text
복사
PS C:\> Get-Help | Format-Table 항목 Windows PowerShell 도움말 시스템 간단한 설명 Windows PowerShell cmdlet 및 개념에 대한 도움말을 표시합니다. 자세한 설명 Windows PowerShell 도움말은 Windows PowerShell cmdlet, 함수, 스크립트 및 모듈에 대해 설명하고 Windows PowerShell 언어의 요소를 비롯한 개념에 대해 설명합니다. Windows PowerShell에는 도움말 파일을 포함하고 있지 않지만 온라인에서 도움말 항목을 확인하거나, Update-Help cmdlet을 사용하여 도움말 파일을 컴퓨터에 다운로드한 다음 Get-Help cmdlet을 사용하여 도움말 항목을 명령줄에 표시할 수 있습니다. 또한 업데이트된 도움말 파일이 발표되면 Update-Help cmdlet을 사용하여 다운로드하여 로컬 도움말 콘텐츠를 최신 버전으로 유지할 수 있습니다. 도움말 파일이 없으면 Get-Help를 통해 cmdlet, 함수, 스크립트에 대한 자동 생성된 도움말이 표시됩니다. 온라인 도움말 Windows PowerShell에 대한 도움말은 TechNet 라이브러리(http://go.microsoft.com/fwlink/?LinkID=108518)에서 확인할 수 있습니다. cmdlet 또는 함수에 대한 온라인 도움말을 열려면 다음과 같이 입력하십시오. Get-Help <cmdlet-name> -Online UPDATE-HELP 도움말 파일을 컴퓨터에 다운로드하고 설치하려면 1. "관리자 권한으로 실행" 옵션을 사용하여 Windows PowerShell을 시작합니다. 2. 다음과 같이 입력합니다. Update-Help 도움말 파일을 설치한 후에는 Get-Help cmdlet을 사용하여 도움말 항목을 표시할 수 있습니다. 또한 Update-Help cmdlet을 사용하여 업데이트된 도움말 파일을 다운로드하여 로컬 도움말 파일을 항상 최신 버전으로 유지할 수 있습니다. Update-Help cmdlet에 대한 자세한 내용을 보려면 다음과 같이 입력하십시오. Get-Help Update-Help -Online 또는 다음 링크로 이동하십시오. http://go.microsoft.com/fwlink/?LinkID=210614(영문) GET-HELP Get-Help cmdlet은 사용자 컴퓨터에 있는 도움말 파일의 콘텐츠로 된 도움말을 명령줄에 표시합니다. 도움말 파일이 없으면 Get-Help가 cmdlet 및 함수에 대한 기본 도움말을 표시합니다. 또한 Get-Help를 사용하여 cmdlet 및 함수에 대한 온라인 도움말을 표시할 수 있습니다. cmdlet에 대한 도움말을 보려면 다음과 같이 입력하십시오. Get-Help <cmdlet-name> 온라인 도움말을 보려면 다음과 같이 입력하십시오. Get-Help <cmdlet-name> -Online 개념 항목의 제목은 'About_'으로 시작합니다. 개념 또는 언어 요소에 대한 도움말을 보려면 다음과 같이 입력하십시오. Get-Help About_<topic-name> 모든 도움말 파일에서 단어 또는 구문을 검색하려면 다음과 같이 입력하십시오. Get-Help <search-term> Get-Help cmdlet에 대한 자세한 내용을 보려면 다음과 같이 입력하십시오. Get-Help Get-Help -Online 또는 다음 링크로 이동하십시오. http://go.microsoft.com/fwlink/?LinkID=113316 예제: Save-Help : 인터넷에서 도움말 파일을 다운로드하고 파일 공유에 저장합니다. Update-Help : 인터넷 또는 파일 공유에서 도움말 파일을 다운로드하고 설치합니다. Get-Help Get-Process : Get-Process cmdlet에 대한 도움말을 표시합니다. Get-Help Get-Process -Online : Get-Process cmdlet에 대한 온라인 도움말을 엽니다. Help Get-Process : Get-Process에 대한 도움말을 한 번에 한 페이지씩 표시합니다. Get-Process -? : Get-Process cmdlet에 대한 도움말을 표시합니다. Get-Help About_Modules : Windows PowerShell 모듈에 대한 도움말을 표시합니다. Get-Help 원격 : '원격'이라는 단어에 대한 도움말 항목을 검색합니다. 참고 항목: about_Updatable_Help Get-Help Save-Help Update-Help PS C:\>
Plain Text
복사
✦ -AutoSize 옵션
✧ @{Lable="Name"; Expression={Data}}
PS C:\> Get-Process | Format-Table ProcessName, Id ProcessName Id ----------- -- ApplicationFrameHost 5756 ASDSvc 3836 audiodg 10904 conhost 3800 conhost 10420 (...)
Plain Text
복사
GUI 형태로 Column 출력
PS C:\> Get-Gridveiw // ㄷㄷ Get-Gridveiw : 'Get-Gridveiw' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니 다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오. 위치 줄:1 문자:1 + Get-Gridveiw + ~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (Get-Gridveiw:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException PS C:\>
Plain Text
복사
Format-List
PS C:\> Get-Help Format-List 이름 Format-List 구문 Format-List [[-Property] <Object[]>] [<CommonParameters>] 별칭 fl 설명 Get-Help가 이 컴퓨터에서 이 cmdlet에 대한 도움말 파일을 찾을 수 없습니다. 일부 도움말만 표시합니다. -- 이 cmdlet을 포함하는 모듈에 대한 도움말 파일을 다운로드하여 설치하려면 Update-Help를 사용하십시오. -- 이 cmdlet에 대한 도움말 항목을 온라인으로 보려면 "Get-Help Format-List -Online"을 입력하거나 https://go.microsoft.com/fwlink/?LinkID=113302(으)로 이동하십시오. PS C:\>
Plain Text
복사
PS C:\> Get-Process winlogon | Format-List -Property* Format-List : 매개 변수 이름 'Property*'과(와) 일치하는 매개 변수를 찾을 수 없습니다. 위치 줄:1 문자:36 + Get-Process winlogon | Format-List -Property* + ~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Format-List], ParameterBindingException + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.FormatListCommand PS C:\>
Plain Text
복사
출력 파일 생성
✦ Out-File
PS C:\> Get-Process | Out-File -filepath C:\result.txt Out-File : 'C:\result.txt' 경로에 대한 액세스가 거부되었습니다. 위치 줄:1 문자:15 + Get-Process | Out-File -filepath C:\result.txt + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (:) [Out-File], UnauthorizedAccessException + FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.OutFileCommand PS C:\>
Plain Text
복사
Where-Object
✦ Row 단위 확인
PS C:\> Get-Service | where-object { $_.Status -eq "Stopped" } Status Name DisplayName ------ ---- ----------- Stopped AJRouter AllJoyn Router Service Stopped ALG Application Layer Gateway Service Stopped AppIDSvc Application Identity Stopped AppMgmt Application Management (...)
Plain Text
복사
PS C:\> Get-Process | Where-object { $_.id -gt 1000 } Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 354 21 7788 1764 0.83 5756 8 ApplicationFrameHost 734 41 143936 13056 3836 0 ASDSvc 538 14 16760 22356 19.39 10904 0 audiodg 102 7 6224 592 10420 0 conhost 604 48 28216 1524 16.75 9180 8 Cortana (...)
Plain Text
복사
PS C:\> Get-Process | where-object { $_.ProcessName -match "^p.*" } Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 802 31 66160 84792 8.63 1560 8 powershell 242 28 24304 2596 4380 0 PresentationFontCache 232 17 2840 480 3924 0 PTMFire PS C:\>
Plain Text
복사
Ex)
PS C:\> $str = Get-Process PS C:\> $str Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 354 21 7788 1764 0.83 5756 8 ApplicationFrameHost 733 41 143912 10532 3836 0 ASDSvc 668 15 19044 24352 20.59 10904 0 audiodg 221 14 4308 16584 3.81 668 8 conhost 102 7 6224 592 10420 0 conhost (...)
Plain Text
복사
PS C:\> $str | format-list Id : 5756 Handles : 354 CPU : 0.828125 SI : 8 Name : ApplicationFrameHost Id : 3836 Handles : 733 CPU : SI : 0 Name : ASDSvc Id : 10904 Handles : 668 CPU : 24.203125 SI : 0 Name : audiodg (...)
Plain Text
복사
PS C:\> $str Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 354 21 7788 1764 0.83 5756 8 ApplicationFrameHost 733 41 143912 10532 3836 0 ASDSvc 668 15 19044 24352 29.38 10904 0 audiodg 221 14 4308 16584 10.59 668 8 conhost 102 7 6224 592 10420 0 conhost (...)
Plain Text
복사
✦ 모든 Column 정보 확인
PS C:\> $str | format-list -property * Name : ApplicationFrameHost Id : 5756 PriorityClass : Normal FileVersion : 10.0.19041.746 (WinBuild.160101.0800) HandleCount : 354 WorkingSet : 1806336 PagedMemorySize : 7974912 PrivateMemorySize : 7974912 VirtualMemorySize : 241283072 TotalProcessorTime : 00:00:00.8281250 SI : 8 Handles : 354 VM : 2203559505920 WS : 1806336 PM : 7974912 NPM : 21616 Path : C:\WINDOWS\system32\ApplicationFrameHost.exe Company : Microsoft Corporation CPU : 0.828125 ProductVersion : 10.0.19041.746 Description : Application Frame Host Product : Microsoft® Windows® Operating System __NounName : Process BasePriority : 8 ExitCode : HasExited : False ExitTime : Handle : 4596 SafeHandle : Microsoft.Win32.SafeHandles.SafeProcessHandle MachineName : . MainWindowHandle : 263252 MainWindowTitle : 설정 MainModule : System.Diagnostics.ProcessModule (ApplicationFrameHost.exe) MaxWorkingSet : 1413120 MinWorkingSet : 204800 Modules : {System.Diagnostics.ProcessModule (ApplicationFrameHost.exe), System.Diagnostics.ProcessMo dule (ntdll.dll), System.Diagnostics.ProcessModule (KERNEL32.DLL), System.Diagnostics.Proc essModule (KERNELBASE.dll)...} NonpagedSystemMemorySize : 21616 (...)
Plain Text
복사
PS C:\> $str | format-table Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 354 21 7788 1764 0.83 5756 8 ApplicationFrameHost 733 41 143912 10532 3836 0 ASDSvc 668 15 19044 24352 32.06 10904 0 audiodg 221 14 4308 16584 11.02 668 8 conhost 102 7 6224 592 10420 0 conhost 604 48 28216 1524 16.75 9180 8 Cortana 152 13 1724 888 4.36 8056 8 CrossEXService 780 24 2416 1292 660 0 csrss 620 24 2432 1436 9420 8 csrss 429 16 4536 7860 21.63 5604 8 ctfmon 359 17 4032 688 10404 0 dasHost (...)
Plain Text
복사
PS C:\> $str | format-table id, ProcessName Id ProcessName -- ----------- 5756 ApplicationFrameHost 3836 ASDSvc 10904 audiodg 668 conhost 10420 conhost 9180 Cortana 8056 CrossEXService 660 csrss 9420 csrss 5604 ctfmon (...)
Plain Text
복사
PS C:\> $str | format-table id, ProcessName -autosize Id ProcessName -- ----------- 5756 ApplicationFrameHost 3836 ASDSvc 10904 audiodg 668 conhost 10420 conhost 9180 Cortana 8056 CrossEXService (...)
Plain Text
복사
PS C:\> $str | format-table id, ProcessName,basepriority -autosize Id ProcessName BasePriority -- ----------- ------------ 5756 ApplicationFrameHost 8 3836 ASDSvc 8 10904 audiodg 8 668 conhost 8 10420 conhost 8 9180 Cortana 8 8056 CrossEXService 8 (...)
Plain Text
복사
PS C:\> $str | where-object { $_ } Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 354 21 7788 1764 0.83 5756 8 ApplicationFrameHost 733 41 143912 10532 3836 0 ASDSvc 668 15 19044 24352 45.05 10904 0 audiodg 221 14 4308 16584 16.09 668 8 conhost 102 7 6224 592 10420 0 conhost 604 48 28216 1524 16.75 9180 8 Cortana 152 13 1724 888 4.50 8056 8 CrossEXService (...)
Plain Text
복사
PS C:\> $str | where-object { $_.ProcessName -match "svchost" } Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 1475 26 16012 19512 64 0 svchost 665 14 16476 3820 832 0 svchost 1350 19 11900 11628 928 0 svchost 225 11 2060 2036 960 0 svchost 380 10 2964 3204 1052 0 svchost 254 13 2772 4360 1208 0 svchost 175 13 1800 1736 1236 0 svchost 269 19 2824 4912 1244 0 svchost 186 10 1956 4144 1256 0 svchost 464 9 2360 4436 1344 0 svchost 399 25 5344 8468 1396 0 svchost 338 12 2704 1500 1408 0 svchost 137 11 1624 1348 1432 0 svchost 439 13 15384 8056 1604 0 svchost 256 14 4280 2272 1688 0 svchost (...)
Plain Text
복사
PS C:\> $first_step = $str | format-table id, processname, basepriority -autosize PS C:\> $first_step Id ProcessName BasePriority -- ----------- ------------ 5756 ApplicationFrameHost 8 3836 ASDSvc 8 10904 audiodg 8 668 conhost 8 10420 conhost 8 9180 Cortana 8 8056 CrossEXService 8 660 csrss 13 (...)
Plain Text
복사
// where-object로 넘겨주고 format-talbe을 건드려야 객체 속성이 변경되므로 이후 결과가 나온다고 해도 이렇게 하진 말자 PS C:\> $first_step | where-object { $_.processname -match "svchost" } PS C:\>
Plain Text
복사
PS C:\> $first_step = $str | where-object { $_.ProcessName -match "svchost" } PS C:\> $first_step Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 1475 26 16012 19512 64 0 svchost 665 14 16476 3820 832 0 svchost 1350 19 11900 11628 928 0 svchost 225 11 2060 2036 960 0 svchost 380 10 2964 3204 1052 0 svchost 254 13 2772 4360 1208 0 svchost 175 13 1800 1736 1236 0 svchost 269 19 2824 4912 1244 0 svchost (...)
Plain Text
복사
PS C:\> $first_step | format-table id, processname, basepriority -autosize Id ProcessName BasePriority -- ----------- ------------ 64 svchost 8 832 svchost 8 928 svchost 8 960 svchost 8 1052 svchost 8 1208 svchost 8 1236 svchost 8 (...)
Plain Text
복사
Custom
PS C:\> $col = "id", "ws", @{ Label = "WS(mb"; Expression = {$_.WS/1mb}; Align = "right" } PS C:\> $col id ws Name Value ---- ----- Label WS(mb Align right Expression $_.WS/1mb PS C:\>
Plain Text
복사
PS C:\> $str | format-table $col Id WS WS(mb -- -- ----- 5756 1806336 1.72265625 3836 10784768 10.28515625 10904 24936448 23.78125 (...)
Plain Text
복사
PS C:\> Get-Process | format-table $col -auto Id WS WS(mb -- -- ----- 5756 1884160 1.796875 3836 5648384 5.38671875 10904 18358272 17.5078125 668 17686528 16.8671875 10420 606208 0.578125 9180 1560576 1.48828125 8056 909312 0.8671875 660 1306624 1.24609375 9420 3555328 3.390625 5604 9707520 9.2578125 10404 704512 0.671875 (...)
Plain Text
복사
Ex) - 3
PS C:\> Get-Help Write-Host 이름 Write-Host 구문 Write-Host [[-Object] <Object>] [<CommonParameters>] 별칭 없음 설명 Get-Help가 이 컴퓨터에서 이 cmdlet에 대한 도움말 파일을 찾을 수 없습니다. 일부 도움말만 표시합니다. -- 이 cmdlet을 포함하는 모듈에 대한 도움말 파일을 다운로드하여 설치하려면 Update-Help를 사용하십시오. -- 이 cmdlet에 대한 도움말 항목을 온라인으로 보려면 "Get-Help Write-Host -Online"을 입력하거나 https://go.microsoft.com/fwlink/?LinkID=113426(으)로 이동하십시오. PS C:\>
Plain Text
복사
PS C:\> $str1 = "aa" PS C:\> $str2 = "bb" PS C:\> Write-Host $str1 $str2 aa bb PS C:\>
Plain Text
복사