가장 유용한 Powershell 명령: 예제가 포함된 치트 시트
게시 됨: 2023-07-23- PowerShell 시작하기
- PowerShell 명령 구조 자세히 알아보기
- 파일 및 폴더 관리
- 시스템 프로세스 관리
- 네트워크 관리
- 액티브 디렉토리 관리
- 이벤트 로그 관리
- 성능 모니터링 및 분석
- 원격 및 PowerShell 세션
- 보안 및 실행 정책
- 고급 PowerShell 기술
- 아래의 30가지 추가 PowerShell 명령
- 결론
- 자주하는 질문
- Windows PowerShell 명령을 어떻게 사용합니까?
- Windows 7에서 PowerShell 명령 목록을 얻으려면 어떻게 해야 합니까?
- 비 Windows 시스템에서 PowerShell을 사용할 수 있습니까?
- PowerShell에서 스크립트를 작성할 수 있습니까?
- PowerShell을 사용하여 클라우드 기반 환경을 관리할 수 있습니까?
시스템 관리의 세계에 뛰어들어 본 적이 있다면 Windows PowerShell 및 PowerShell 명령을 접했을 것입니다. 운영 체제의 내부 작업에 대한 액세스를 제공하는 쉘 스크립팅 언어인 편리한 도구입니다.
기존 명령 프롬프트(CMD)를 능가하여 더 많은 기능, 유연성 및 제어 기능을 제공합니다.
간단한 명령줄 지침을 활용하는 CMD와 달리 Windows PowerShell은 PowerShell 명령 목록 또는 복잡한 시스템 작업을 위한 cmdlet을 활용하는 보다 광범위한 언어를 사용합니다 .
시스템 관리자는 이 도구를 사용하여 작업을 크게 개선할 수 있습니다. 일을 더 쉽게 만드는 것만이 아닙니다. 효율성, 정확성 및 반복 작업을 자동화하는 능력에 관한 것입니다.
PowerShell 시작하기
이제 PowerShell이 무엇인지 잘 알고 있으므로 본격적으로 시작할 차례입니다. 시작은 매우 간단합니다. 두 가지 주요 경로가 있습니다.
- PowerShell 콘솔
- 통합 스크립팅 환경(ISE).
콘솔은 명령줄 인터페이스입니다. 명령이 시스템에 도달하고 조작하는 직접적인 경로입니다. 반면에 ISE는 스크립팅을 위한 놀이터입니다. 친숙한 사용자 중심 환경에서 PowerShell 스크립트를 작성, 테스트 및 디버그할 수 있는 곳입니다.
공을 굴리는 데 도움이 되도록 몇 가지 기본 PowerShell 명령을 다루겠습니다 .
설명 : Windows PowerShell 명령 및 항목 에 대한 도움말 정보를 표시합니다 .
예 : Get-Help Get-Process를 입력하면 Get-Process 명령에 대한 도움말이 표시됩니다.
이름에서 알 수 있듯이 Get-Help는 PowerShell 유니버스를 통한 가이드입니다 . 다른 명령의 기능을 탐색할 수 있는 기본 제공 설명서입니다.
설명 : PowerShell에서 사용 가능한 모든 명령 목록을 검색합니다.
예 : Get-Command -Module ActiveDirectory를 입력하면 ActiveDirectory 모듈에서 사용 가능한 모든 명령이 나열됩니다.
Get-Command는 PowerShell 명령 치트 시트 의 또 다른 유용한 도구입니다 . 이를 통해 PowerShell이 제공해야 하는 모든 명령을 볼 수 있습니다.
PowerShell 명령 구조 자세히 알아보기
PowerShell 명령은 cmdlet, 별칭 및 스크립트의 세 가지 주요 구조를 기반으로 구축됩니다.
Cmdlet(Command-let)은 PowerShell의 핵심입니다. 특정 기능을 수행하는 가벼운 명령입니다. 기존의 실행 가능한 프로그램과 달리 cmdlet은 .NET Framework 클래스 개체입니다. 간단히 말해서 데이터 가져오기, 시스템 설정 변경 또는 프로세스 실행과 같은 작업을 수행하는 코드 조각입니다.
설명 : 실행 중인 모든 프로세스 목록을 검색합니다.
예 : Get-Process를 입력하면 시스템에서 현재 실행 중인 모든 프로세스가 표시됩니다.
별칭은 cmdlet의 바로 가기일 뿐입니다. 예를 들어Get-ChildItem 을입력하는 대신 더 빠르고 기억하기 쉬운dir 을입력하면 됩니다 .
마지막으로 스크립트는 순서대로 실행할 일련의 cmdlet이 포함된 텍스트 파일입니다. 수동 입력 없이 복잡한 작업을 실행할 수 있도록 하는 자동화의 중추입니다. 이 지식과 점점 늘어나는 PowerShell 명령 목록을 통해 PowerShell 전문가가 되는 길을 잘 가고 있습니다.
파일 및 폴더 관리
파일 시스템의 책임자가 되는 것은 힘든 작업일 수 있습니다. 다행히 PowerShell이 도움을 줍니다. 다양한 cmdlet을 사용하여 파일과 폴더를 원활하게 관리할 수 있습니다.
설명 : 지정된 위치에 있는 항목 및 하위 항목을 표시합니다.
예 : Get-ChildItem C:\Documents를 입력하면 Documents 디렉토리 내의 모든 항목이 표시됩니다.
이 cmdlet은 파일 관리를 위한 PowerShell 명령 목록 의 중요한 구성원입니다 . 파일과 폴더를 나열할 뿐만 아니라 숨겨진 보물을 드러내는 디렉토리를 더 깊이 파고들 수도 있습니다.
설명 : 파일 또는 폴더와 같은 새 항목을 만듭니다.
예 : New-Item -Path 를 입력합니다.-이름 "file.txt" -ItemType "파일" -값 "powershell 새 항목 데모 파일 현재 디렉터리."
새 파일 file.txt가 문서 폴더에 생성되는 것을 확인합니다.
시스템 프로세스 관리
이제 기어를 바꾸고 시스템 프로세스에 대해 이야기해 보겠습니다. 공연이 차질 없이 진행되도록 무대 뒤에서 부지런히 작업하는 연극 제작의 백스테이지 스태프라고 생각하세요. PowerShell은 이러한 알려지지 않은 영웅을 모니터링, 조작 및 관리하는 명령을 제공합니다.
설명: 지정된 프로세스 목록의 상태를 검색합니다.
예: Get-Process를 입력하면 컴퓨터에서 현재 실행 중인 모든 프로세스가 표시됩니다.
위는 시스템 프로세스를 관리하기 위해 Windows 10에서 가장 자주 사용되는 PowerShell 명령 중 하나입니다. 화면 뒤에서 일어나는 일에 대한 스냅샷을 제공합니다.
서비스 작업
시스템 프로세스와 마찬가지로 서비스는 시스템이 원활하게 실행되도록 하는 중요한 톱니바퀴입니다 . 백그라운드에서 실행되는 프로그램이 있으며 PowerShell을 사용하면 이러한 프로그램을 계속 주시할 수 있습니다.
설명 : 로컬 또는 원격 컴퓨터의 서비스 상태를 검색합니다.
예 : Get-Service를 실행하면 컴퓨터의 모든 서비스에 대한 상태 업데이트를 받게 됩니다.
설명 : 하나 이상의 실행 중인 서비스를 중지합니다.
예 : Stop-Service -Name "serviceName"은 지정된 서비스를 중지합니다.
이러한 PowerShell 명령 예제는 PowerShell로 수행할 수 있는 작업의 표면만 긁어모은 것입니다. PowerShell의 진정한 아름다움은 특정 요구 사항에 맞게 사용자 지정할 수 있는 유연성과 범위에 있습니다.
네트워크 관리
네트워크를 관리하는 것은 무한한 조각이 있는 직소 퍼즐을 푸는 것처럼 느껴질 수 있습니다. 다행히 PowerShell을 사용하면 이 작업을 더 쉽게 수행할 수 있는 도구가 없습니다. 다음은 도움이 되는 몇 가지 주요 PowerShell 명령입니다.
설명 : 연결에 대한 진단 정보를 표시합니다.
예 : Test-NetConnection을 입력하여 시스템의 네트워크 연결을 테스트합니다.
설명 : IP 주소 구성을 표시합니다.
예 : Get-NetIPAddress를 실행하면 시스템의 IP 주소 세부 정보가 표시됩니다.
이러한 cmdlet은 문제를 진단하고 필수 네트워크 구성 세부 정보를 표시하는 데 도움이 될 수 있습니다.
액티브 디렉토리 관리
네트워크 관리 분야에서 AD(Active Directory)는 모든 네트워크 리소스를 추적하는 사무실의 관리자입니다. PowerShell에는 AD 관리를 쉽게 해주는 유용한 명령이 포함되어 있습니다.
설명 : 사용자 개체를 검색하거나 검색을 수행하여 여러 사용자 개체를 검색합니다.
예 : Get-ADUser -Filter *는 AD의 모든 사용자 목록을 표시합니다.
설명 : 새로운 AD 사용자를 생성합니다.
예 : New-ADUser -Name "JohnDoe"와 같은 명령을 사용하여 JohnDoe라는 새 사용자를 만들 수 있습니다.
이벤트 로그 관리
이벤트 로그는 생각과 행동을 기록하는 시스템의 일기와 같습니다. 문제 해결을 위한 귀중한 도구입니다. 이벤트 로그와 상호 작용하는 Windows 10에서 PowerShell 명령을 실행하는 방법은 다음과 같습니다.
설명 : 이벤트 로그의 이벤트 또는 이벤트 로그 목록을 가져옵니다.
예 : Get-EventLog -LogName 시스템은 시스템 이벤트 로그를 표시합니다.
설명 : 지정된 이벤트 로그에서 모든 항목을 지웁니다.
예 : Clear-EventLog -LogName "응용 프로그램"은 응용 프로그램 이벤트 로그에 대한 슬레이트를 깨끗하게 지웁니다.
이러한 명령은 가장 일반적인 PowerShell 명령 중 일부이지만 살펴봐야 할 셀 수 없이 많은 명령이 있다는 점을 기억하는 것이 중요합니다. PowerShell의 적응성과 강력한 기능은 모든 시스템 관리자에게 없어서는 안 될 도구입니다.
성능 모니터링 및 분석
잘 조율된 오케스트라처럼 시스템도 최상의 성능을 발휘하려면 정기적으로 미세 조율해야 합니다. 성능 모니터링은 시스템 자원이 효과적으로 사용되고 있는지 확인합니다. 내부를 들여다볼 수 있는 몇 가지 Windows PowerShell 명령은 다음과 같습니다.
설명 : 지정된 프로세스 목록의 상태를 검색합니다.
예 : Get-Process를 실행하면 시스템에서 현재 실행 중인 모든 프로세스가 표시됩니다.
설명 : 스크립트 블록을 실행하는 데 걸리는 시간을 측정합니다.
예 : Measure-Command {Get-Process}는 Get-Process 명령을 실행하는 데 걸린 시간을 표시합니다.
설명 : 로컬 및 원격 컴퓨터에서 성능 카운터 데이터를 가져옵니다.
예 : Get-Counter -Counter "\Processor(_Total)\% Processor Time"은 CPU 사용 통계를 제공합니다.
또한 읽기: Windows에서 하드 드라이브 성능을 높이는 방법은 무엇입니까?
원격 및 PowerShell 세션
PowerShell의 핵심 강점은 원격 컴퓨터를 관리하는 기능에 있습니다. 원격 시스템과 세션 또는 영구 연결을 설정할 수 있습니다. 이러한 cmdlet이 없으면 PowerShell 명령 치트 시트가 완성되지 않습니다.
설명 : 원격 컴퓨터와 대화형 세션을 시작합니다.
예 : Enter-PSSession -ComputerName Server01을 사용하면 Server01과 직접 상호 작용할 수 있습니다.
설명 : 새 PowerShell 세션을 생성합니다.
예 : New-PSSession -ComputerName Server02는 Server02와 새 세션을 만듭니다.
설명 : 하나 이상의 PowerShell 세션을 닫습니다.
예 : Remove-PSSession -Session $s는 $s 변수에 저장된 세션을 닫습니다.
PowerShell 프로필 작업
개인 프로필과 마찬가지로 PowerShell 프로필은 Powershell이 시작될 때 실행되는 스크립트이며 환경을 정의합니다. 다음은 프로필을 관리하기 위한 몇 가지 cmdlet PowerShell 명령 입니다 .
설명 : 경로의 모든 요소가 존재하는지 여부를 결정합니다.
예 : Test-Path $profile은 프로필이 존재하는지 여부를 확인합니다.
설명 : 파일 또는 폴더와 같은 새 항목을 만듭니다.
예 : Test-Path $profile이 False를 반환하면 New-Item -Type file -Path $profile -Force는 새 프로필을 생성합니다.
설명 : 메모장에서 파일을 엽니다.
예 : 메모장 $profile은 메모장에서 프로필을 열어 편집할 수 있습니다.
이러한 명령을 이해하고 활용하면 기본 설정과 작업 스타일에 맞게 PowerShell 환경을 사용자 지정할 수 있습니다.
보안 및 실행 정책
PowerShell 영역에서 보안은 스크립트와 명령이 안전하게 실행되도록 하는 확고한 문지기와 같습니다. 다음은 실행 정책을 정의하고 이해하는 데 도움이 되는 몇 가지 기본 PowerShell 명령 입니다.
설명 : 현재 세션에 대한 실행 정책을 가져옵니다.
예 : Get-ExecutionPolicy는 현재 실행 정책을 표시합니다.
설명 : PowerShell 세션에 대한 실행 정책을 설정합니다.
예 : Set-ExecutionPolicy RemoteSigned는 신뢰할 수 있는 게시자가 서명한 스크립트만 실행하도록 정책을 설정합니다.
설명 : 스크립트 또는 파일의 디지털 서명을 가져옵니다.
예 : Get-AuthenticodeSignature C:\Scripts\Test.ps1은 Test.ps1 스크립트의 디지털 서명을 보여줍니다.
고급 PowerShell 기술
PowerShell의 바다를 더 깊이 파고들수록 기본 cmdlet보다 훨씬 더 많은 것으로 채워져 있음을 알게 될 것입니다. 고급 기능은 더 큰 유연성과 기능을 제공하여 힘들이지 않고 더 스마트하게 작업할 수 있습니다. 다음은 가능성을 조명하는 몇 가지 PowerShell 명령 예 입니다 .
설명 : 로컬 및 원격 컴퓨터에서 명령을 실행합니다.
예 : Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Process}는 Server01에서 Get-Process 명령을 실행합니다.
설명 : .NET 개체를 CSV 문자열로 변환하고 결과를 CSV 파일에 저장합니다.
예 : Get-Process |Export-Csv -Path .\ProcessList.csv는 프로세스 목록을 CSV 파일로 저장합니다.
설명 : 개체를 JSON 표현으로 변환합니다.
예 : Get-Process |ConvertTo-Json은 프로세스 목록을 JSON 형식으로 변환합니다.
설명 : 개체 또는 개체 집합의 지정된 속성을 선택합니다.또한 배열에서 고유한 개체를 선택할 수도 있습니다.
예 : Get-Process |Select-Object -Property Name,ID는 프로세스의 이름과 ID만 표시합니다.
설명 : 명령 시퀀스를 따라 전달될 개체를 제어할 수 있도록 하는 파이프라인의 입력을 필터링합니다.
예 : Get-Process |Where-Object {$_.CPU -gt 10}은 10개 이상의 CPU 단위를 사용하는 프로세스를 표시합니다.
설명 : 각 입력 개체 집합에 대해 작업을 수행합니다.
예 : Get-Process |ForEach-Object { $_.Name + ” ” + $_.Id }는 해당 ID와 함께 프로세스 이름 목록을 표시합니다.
이러한 PowerShell 유용한 명령은 Powershell의 기능을 추가로 활용하기 위해 사용할 수 있는 고급 기술을 보여줍니다. 원격 컴퓨터에서 명령을 호출하는 것부터 출력 필터링 및 형식 지정에 이르기까지 가능성은 무궁무진합니다.
Get-Help cmdlet은 PowerShell 명령을 실행하는 방법을 잘 모를 때 유용합니다 . Get-Help 다음에 도움이 필요한 cmdlet을 입력하면 됩니다. 이 상위 PowerShell 명령 목록은 시작에 불과합니다. PowerShell의 잠재력은 상상력에 의해서만 제한됩니다.
아래의 30가지 추가 PowerShell 명령
명령 | 설명 |
아웃 파일 | 출력을 파일로 보냅니다. |
정렬 개체 | 속성 값을 기준으로 개체를 정렬합니다. |
변수 설정 | 변수의 값을 설정합니다. |
읽기 호스트 | 콘솔에서 한 줄의 입력을 읽습니다. |
쓰기 호스트 | 사용자 지정된 출력을 호스트에 씁니다. |
콘텐츠 추가 | 파일에 줄을 추가하는 것과 같이 지정된 항목에 콘텐츠를 추가합니다. |
복사 항목 | 한 위치에서 다른 위치로 항목을 복사합니다. |
테스트 경로 | 경로의 존재를 테스트하고 경로가 존재하면 True를 반환하고 그렇지 않으면 False를 반환합니다. |
Get-Date | 현재 날짜와 시간을 가져옵니다. |
명확한 호스트 | 호스트 프로그램에서 표시를 지웁니다. |
비교 개체 | 두 개체 집합을 비교합니다. |
ConvertTo-HTML | .NET 개체를 웹 브라우저에 표시할 수 있는 HTML로 변환합니다. |
Get-Credential | 사용자 이름과 암호를 기반으로 자격 증명 개체를 가져옵니다. |
Get-Random | 난수를 가져오거나 컬렉션에서 임의로 개체를 선택합니다. |
새 개체 | .NET Framework 또는 COM 개체의 인스턴스를 만듭니다. |
항목 이름 바꾸기 | Windows PowerShell 공급자 네임스페이스에서 항목의 이름을 바꿉니다. |
시작-수면 | 지정된 기간 동안 스크립트의 활동을 일시 중단합니다. |
쓰기 출력 | 지정된 개체를 파이프라인의 다음 명령으로 보냅니다. |
분할 경로 | 경로의 지정된 부분을 반환합니다. |
조인 경로 | 경로와 하위 경로를 단일 경로로 결합합니다. |
ForEach 객체 | 입력 개체 컬렉션의 각 항목에 대해 작업을 수행합니다. |
Where-객체 | 속성 값을 기반으로 컬렉션에서 개체를 선택합니다. |
시작 프로세스 | 로컬 컴퓨터에서 하나 이상의 프로세스를 시작합니다. |
형식 목록 | 각 속성이 별도의 줄에 표시되는 속성 목록으로 출력 형식을 지정합니다. |
형식 테이블 | 출력을 테이블 형식으로 지정합니다. |
내보내기-Clixml | 개체의 XML 기반 표현을 만들어 파일에 저장합니다. |
가져오기-Clixml | CliXML 파일을 가져오고 저장된 개체를 다시 만듭니다. |
ConvertFrom-Csv | CSV 문자열의 개체 속성을 원래 개체의 CSV 버전으로 변환합니다. |
ConvertTo-Csv | .NET 개체를 일련의 CSV 문자열로 변환합니다. |
선택 문자열 | 문자열과 파일에서 텍스트를 찾습니다. |
결론
이제 PowerShell 명령의 포괄적인 목록 과 그 가능성에 대한 명확한 아이디어가 있어야 합니다. 작업을 자동화 하든 , 네트워크 리소스를 관리하든, 문제를 해결하든 관계없이 PowerShell은 모든 Windows 사용자 또는 관리자에게 없어서는 안 될 도구입니다.
이러한 PowerShell cmdlet은 단지 가능한 것의 표면을 긁을 뿐입니다. 콘솔에 익숙해지면 새로운 명령을 발견하고 필요에 완벽하게 맞는 스크립트를 만들 수 있습니다.
Get-Help cmdlet은 특정 cmdlet에 대한 추가 정보가 필요할 때마다 PowerShell 명령 도움말을 제공하기 위해 항상 존재합니다. Get-Help 다음에 도움이 필요한 cmdlet을 입력하면 됩니다.
자주하는 질문
Windows PowerShell 명령을 어떻게 사용합니까?
Windows PowerShell 명령을 사용하는 것은 간단합니다. PowerShell 콘솔에 명령을 입력하고 Enter 키를 누릅니다. 특정 명령에 대한 도움이 필요하면 Get-Help를 입력한 다음 더 잘 이해하고 싶은 명령을 입력하십시오.
Windows 7에서 PowerShell 명령 목록을 얻으려면 어떻게 해야 합니까?
콘솔에 Get-Command를 입력하고 Enter 키를 눌러 Windows 7의 PowerShell에서 명령 목록을 가져올 수 있습니다. 사용 가능한 모든 cmdlet과 기능이 표시됩니다.
내 Windows PowerShell이 어떤 명령도 이해할 수 없는 이유는 무엇입니까?
PowerShell이 명령을 이해하지 못하는 경우 구문 오류 때문일 수 있습니다. 명령에 오타나 잘못된 매개변수가 있는지 확인하십시오. 또한 실행하려는 명령에 올바른 버전의 PowerShell을 사용하고 있는지 확인하세요.
비 Windows 시스템에서 PowerShell을 사용할 수 있습니까?
그래 넌 할수있어. PowerShell Core의 등장으로 Microsoft의 PowerShell은 더 이상 Windows에만 국한되지 않습니다. macOS 및 Linux에서도 사용할 수 있습니다.
PowerShell에서 스크립트를 작성할 수 있습니까?
전적으로! PowerShell은 명령줄 인터페이스일 뿐만 아니라 스크립팅 언어이기도 합니다. 반복 작업을 자동화하는 스크립트를 생성하여 많은 시간과 노력을 절약할 수 있습니다.
PowerShell을 사용하여 클라우드 기반 환경을 관리할 수 있습니까?
예, PowerShell은 클라우드 기반 환경을 관리하기 위한 강력한 도구입니다. Microsoft Azure 및 Amazon AWS를 비롯한 많은 클라우드 공급자는 서비스와 상호 작용할 수 있는 PowerShell 모듈을 제공합니다.