내가 자주 사용하는 주요 Windows PowerShell 명령과 그 이점

내가 자주 사용하는 주요 Windows PowerShell 명령과 그 이점

PowerShell은 스크립팅 및 자동화에 중점을 둔 IT 관리자에게 필수적인 도구로 널리 알려져 있습니다.하지만 그 강력한 기능은 IT 분야를 넘어 무질서한 파일과 디렉터리로 어려움을 겪는 모든 사람에게 매우 유용합니다.저는 PowerShell 명령을 사용하여 오래된 코드를 걸러내고, 클라이언트 파일을 구조화하고, 수개월 동안 빠르게 진행되고 마감일에 쫓기는 프로젝트로 인해 누적된 무질서를 완화합니다.

강력한 명령줄 셸 및 스크립팅 플랫폼인 PowerShell은 다양한 작업을 간소화합니다.이전 버전의 Windows에서는 독립형 PowerShell 애플리케이션이 사용되었지만, 이제 사용자는 다재다능하고 현대적인 인터페이스 덕분에 PowerShell 및 명령 프롬프트를 포함한 셸 환경을 실행하는 데 Windows Terminal을 선호합니다.

모든 명령은 전용 PowerShell 앱과 Windows 터미널 모두에서 실행할 수 있습니다.사용하려면 Windows 터미널에서 PowerShell 탭을 열기만 하면 됩니다.

1.도움 받기

PowerShell에서 도움말 명령 받기

제가 YouTube 튜토리얼을 통해 PowerShell을 처음 접했을 때, 사용자들이 자주 강조했던 명령어 중 하나는 Get-Help 였습니다.이 명령어는 PowerShell cmdlet에 대한 자세한 정보와 구문, 매개변수, 사용 예를 제공하는 입문 자료 역할을 합니다.

명령에 대한 특정 정보를 검색하려면 다음을 입력하십시오.

Get-Help Get-Process

이렇게 하면 명령의 개요, 구문 세부 정보, 그리고 입력 매개변수가 표시됩니다.자세한 내용을 보려면 -Examples 매개변수를 추가하세요.

Get-Help Get-Process -Examples

또한 -Online 스위치를 사용하여 Microsoft 공식 문서를 참조할 수 있습니다.

Get-Help Get-Process -Online

이 명령을 사용하면 포괄적인 명령 설명서를 제공하는 Microsoft 웹사이트로 이동합니다.

2.Get-Command

PowerShell에서 명령 가져오기

Get-Help가 cmdlet에 대한 정보 제공에 중점을 두는 반면, Get-Command는 사용 가능한 모든 명령을 찾고 나열하는 데 필수적입니다.수행하려는 기능은 알고 있지만 명령 이름이 기억나지 않는 경우, Get-Command를 사용하여 부분 이름이나 패턴을 기반으로 명령을 검색하세요.

예를 들어, process 라는 단어가 포함된 모든 명령을 찾으려면 다음을 입력합니다.

Get-Command *process*

이 명령은 이름에 “process”가 포함된 모든 명령을 표시합니다.명령 유형을 기준으로 검색 범위를 좁힐 수 있습니다.예를 들어 cmdlet만 검색하는 경우 다음과 같습니다.

Get-Command -Name Get* -CommandType Cmdlet

또한 네트워킹과 관련된 모듈별 검색의 경우:

Get-Command -Module NetTCPIP

Get-Command를 사용하면 웹에서 명령어 이름을 검색하는 것보다 훨씬 효율적입니다.

3.테스트넷 연결

Test-NetConnection 명령 PowerShell

ping, telnet, traceroute 등 다양한 도구를 자주 사용하시나요? Test-NetConnection cmdlet은 이러한 기능을 하나로 통합합니다.이 cmdlet은 네트워크 문제 해결에 매우 중요한 역할을 하는데, 문제가 네트워크, 서버 또는 다른 원인에서 비롯되었는지 진단하는 데 도움이 되기 때문입니다.

웹사이트에 접속 가능한지 확인하려면 다음을 실행하세요.

Test-NetConnection makeuseof.com

이 명령은 ping 결과와 기본적인 연결 정보를 제공합니다.특정 포트를 테스트하려면 명령에 포트 번호를 포함하세요.

Test-NetConnection server.company.com -Port 443

자세한 네트워크 경로 추적을 위해 -TraceRoute 매개변수를 사용하세요.

Test-NetConnection 8.8.8.8 -TraceRoute

이 명령은 컴퓨터와 목적지 사이의 홉을 추적하면서 8.8.8.8로 테스트 패킷을 보내므로 연결 문제를 정확히 찾는 데 도움이 됩니다.

4.자식아이템 가져오기

Get-ChildItem PowerShell 명령

Get -ChildItem cmdlet을 사용하면 지정된 디렉터리의 파일과 폴더를 볼 수 있습니다.예를 들어, Documents 폴더의 내용을 나열하려면 다음과 같이 입력하세요.

Get-ChildItem C:\Users\Username\Documents

지난주에 수정된 PDF 파일을 식별하려면 다음 명령을 사용하세요.

Get-ChildItem C:\Users\YourName\Documents -Filter *.pdf | Where-Object {$_. LastWriteTime -gt (Get-Date).AddDays(-7)}

-Recurse 매개변수를 사용하면 모든 하위 폴더를 검색할 수 있습니다. Projects 폴더와 그 하위 디렉터리에 있는 모든 로그 파일을 찾으려면 다음을 실행하세요 .

Get-ChildItem C:\Projects -Recurse -Filter *.log

디스크 공간이 부족하면 1GB를 초과하는 큰 파일을 식별할 수 있습니다.

Get-ChildItem C:\ -Recurse -File | Where-Object {$_. Length -gt 1GB} | Select-Object FullName, @{Name="SizeGB";Expression={$_. Length/1GB}}

Get -ChildItem cmdlet은 일괄 작업, 파일 구성 및 감사를 자동화하는 데 강력한 도구입니다.

5.Where-목적어

PowerShell의 Where-Object 명령

이전 예제에서 Where-Object를 사용하면 특정 속성 기준에 따라 데이터를 필터링하는 기능이 더욱 강조됩니다.이는 프로그래밍의 조건문과 유사하게 작동합니다.중괄호 안의 구문을 통해 평가 대상 각 항목을 표현할 수 있습니다.

실행 중인 모든 서비스를 시각화하려면 다음을 입력하세요.

Get-Service | Where-Object {$_. Status -eq "Running"}

100MB 이상의 메모리를 사용하는 프로세스에 관심이 있다면 다음을 시도해 보세요.

Get-Process | Where-Object {$_. WorkingSet -gt 100MB}

여러 조건을 조합하는 것도 가능합니다.예를 들어, 지난 한 달 동안 수정된 대용량 Word 문서를 찾으려면 다음과 같이 합니다.

Get-ChildItem -Filter *.docx | Where-Object {$_. Length -gt 5MB -and $_. LastWriteTime -gt (Get-Date).AddMonths(-1)}

스크립트 가독성을 높이기 위해 여러 줄에 걸쳐 복잡한 조건을 구성하세요.

Get-ChildItem | Where-Object { $_. Length -gt 1MB -and $_. Extension -eq ".log"}

6.Select-Object

PowerShell의 Select-Object 명령

명령의 출력 내용이 필요 이상으로 광범위한 경우가 많습니다.Select-Object cmdlet을 사용하면 관련 데이터만 필터링한 후 Export-Csv cmdlet을 사용하여 CSV 파일로 내보낼 수 있습니다.예를 들어, 서비스의 이름과 상태만 보려면 다음과 같이 하십시오.

Get-Service | Select-Object Name, Status

목표가 CPU를 가장 많이 소모하는 상위 5개 프로세스를 식별하는 것이라면 다음을 실행하세요.

Get-Process | Sort-Object CPU -Descending | Select-Object -First 5 Name, CPU

또한, 계산된 속성을 만들 수 있습니다.파일 크기를 바이트가 아닌 메가바이트로 표시하려면 다음을 수행하세요.

Get-ChildItem | Select-Object Name, @{Name="SizeMB";Expression={$_. Length/1MB}}

단일 속성 값을 추출하려면 -ExpandProperty 매개변수를 활용하세요.

Get-Process notepad | Select-Object -ExpandProperty Id

이 명령은 프로세스 ID만 생성하는데, 이는 단일 값이 필요한 추가 명령으로 파이프할 때 특히 유용합니다.

7.멤버 가져오기

PowerShell의 Get-Member 명령

PowerShell은 주로 개체를 통해 작동하며, Get-Member cmdlet은 연관된 속성과 메서드를 표시합니다.예를 들어, 프로세스에 대한 정보를 검색할 때 해당 프로세스의 크기, 생성 날짜 및 기타 메트릭을 확인할 수 있습니다.다음 명령을 사용하여 프로세스 개체 내의 속성을 확인하세요.

Get-Process | Get-Member

이렇게 하면 Kill() 및 Refresh()와 같은 메서드 외에도 CPU, ID, WorkingSet 등의 속성이 나열됩니다.속성만 보려면 다음을 지정할 수 있습니다.

Get-Process | Get-Member -MemberType Property

파일 관련 작업의 경우:

Get-ChildItem C:\temp\test.txt | Get-Member

이 기능은 Delete() 및 MoveTo()와 같은 메서드와 함께 Length 및 LastWriteTime과 같은 세부 정보를 표시합니다. Length를 사용하여 파일 크기를 기준으로 필터링하거나 LastWriteTime을 기준으로 최근에 수정된 파일을 식별할 수 있습니다.

8.클립보드 설정 및 클립보드 가져오기

PowerShell의 클립보드 설정 명령

PowerShell에서 복사해야 할 엄청난 양의 출력이 발생하는 경우, 수동으로 선택하는 것이 번거로울 수 있습니다.하지만 Set-ClipboardGet-Clipboard를 사용하면 이 과정을 크게 간소화할 수 있습니다.

명령 결과를 클립보드에 복사하려면 다음을 입력하세요.

Get-Process | Select-Object Name, CPU | Set-Clipboard

이렇게 하면 결과를 Excel이나 다른 텍스트 편집기에 쉽게 붙여넣을 수 있습니다.반대로, 클립보드 내용을 PowerShell로 다시 가져오려면 다음을 실행하세요.

$text = Get-Clipboard

이 기능은 목록을 처리할 때 특히 유용합니다.예를 들어, Excel에서 여러 컴퓨터 이름을 복사한 후 다음을 실행할 수 있습니다.

Get-Clipboard | ForEach-Object { Test-NetConnection $_ }

이 명령은 나열된 각 컴퓨터 이름에 대한 연결을 테스트합니다. PowerShell과 다른 애플리케이션 간의 완벽한 통합을 통해 반복적인 작업의 속도를 크게 높여줍니다.

9.아웃그리드뷰

PowerShell의 Out-GridView 명령

결과를 대화형으로 정렬하고 필터링해야 할 때가 있습니다.Out-GridView cmdlet은 정렬 및 검색이 가능한 표 형식을 갖춘 별도의 창을 엽니다.

Get-Process | Out-GridView

이 작업을 수행하면 현재 프로세스 목록이 그리드 인터페이스에 표시되는 새 창이 열립니다.열 머리글을 클릭하여 정렬하거나 검색 필드에서 키워드로 필터링할 수 있습니다.그리드에서 항목을 선택하여 다른 명령으로 전달하려면 다음을 사용하세요.

Get-Service | Out-GridView -PassThru | Restart-Service

-PassThru 매개변수를 사용하면 여러 행을 선택하고 선택한 서비스만 다시 시작하는 등의 작업을 실행할 수 있습니다.

로그 분석을 위해 다음을 적용할 수도 있습니다.

Get-EventLog -LogName Application -Newest 1000 | Out-GridView

이를 통해 키워드 입력을 통한 빠른 이벤트 필터링, 시간별 정렬, 데이터 세트 내 패턴 파악이 가능합니다.

10.Get-Process

Get-Process 탐색기 PowerShell 명령

Get -Process cmdlet은 현재 컴퓨터에서 실행 중인 모든 애플리케이션을 표시하여 메모리 사용량, CPU 시간, 프로세스 ID에 대한 통찰력을 제공합니다.

현재 활성화된 모든 프로세스를 나열하려면 다음을 실행하세요.

Get-Process

Google Chrome과 같은 특정 애플리케이션을 검색하는 경우 다음을 지정하기만 하면 됩니다.

Get-Process chrome

응답하지 않는 프로그램을 종료해야 하는 경우 다음과 같이 명령을 연결할 수 있습니다.

Get-Process notepad | Stop-Process

상당한 메모리 리소스를 소모하는 프로세스를 식별하려면 다음을 구현하세요.

Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10

이 명령은 시스템 성능이 저하될 때 메모리를 많이 차지하는 프로그램에 대한 빠른 개요를 제공합니다.

출처 및 이미지

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다