Windows 관리자 기술을 향상시키는 Powershell Cmdlet

Windows 관리자 기술을 향상시키는 Powershell Cmdlet

Powershell은 새로운 코더가 Windows에서 시작하는 완벽한 방법입니다. Powershell은 동일한 부분의 명령줄 도구이자 스크립팅 언어입니다. 컴퓨터를 자동화할 수 있는 기능을 제공합니다. 관리하는 데 사용하는 것과 동일한 명령을 통해 . 최신 Windows 시스템이 있는 경우 이미 Powershell이 ​​있습니다. 대부분의 용도는 Windows 중심이지만 Mac 또는 Linux 시스템에도 Powershell을 설치할 수 있습니다.





파워쉘로 작업하기

Powershell을 사용하는 방법에는 두 가지가 있습니다. 명령을 실행하거나 미리 작성된 스크립트를 호출하는 데 사용되는 기본 명령줄 창이 있습니다. 그런 다음 CLI 창과 기본 개발 환경을 결합한 ISE가 있습니다. 이를 사용하여 스크립트를 작성하고 테스트할 수 있습니다.





ISE에는 검색 가능한 명령 목록이 있으며 파일을 열지 않고도 터미널 창을 사용할 수 있습니다. 명령 목록을 사용하면 명령을 구성하고 삽입할 수 있습니다. 고급 개발을 하고 있다면 마이크로소프트의 Visual Studio Code를 설치하세요. 코드에는 Git 버전 제어 및 기타 언어에 대한 지원이 포함됩니다.





Powershell은 전적으로 명령으로 구축된다는 점에서 독특하며 Microsoft에서는 이를 Cmdlet이라고 부릅니다. 이러한 명령은 명령줄을 통해 작업하거나 복잡한 스크립트를 작성하는 경우에도 동일합니다. 따라서 이러한 명령을 사용할 때 첫 번째 스크립트를 만들기 위해 함께 연결하는 방법에 대해 생각할 수 있습니다.

기본 사항: Get-Command, Get-Help, Get-Member

모든 Powershell 명령은 동사-명사 형태를 취합니다. 동사는 일반적으로 다음과 같습니다. 가져오기, 설정 및 새로 만들기 .



명령 가져오기 사용 가능한 모든 명령을 볼 수 있습니다. Get-Command를 실행하면 이것들로 시작하는 수많은 명령이 있음을 알 수 있습니다.

cmdlet의 이름을 자세히 살펴보면 모두 유사한 구조를 가지고 있음을 알 수 있습니다. Get-Command에서와 마찬가지로 이름으로 호출합니다. 매개변수를 사용하면 얻는 정보가 변경됩니다. 그러나 기본 옵션과 함께 명령만 사용한 적이 있다면 고급 매개변수를 사용하는 방법을 어떻게 알 수 있습니까?





사용 도움 받기 Get-Command가 포함된 cmdlet은 cmdlet에 대한 자세한 정보를 표시합니다. 다음 구문과 함께 cmdlet을 사용합니다.

Get-Help Get-Command

그러면 매개변수에 대한 기본 정보가 표시됩니다. 매개변수 세부정보 및 일부 사용 예를 보려면 -Full 매개변수를 추가하십시오.





예제만 보려면 다음을 실행할 수 있습니다.

Get-Help Get-Command -Examples

이 cmdlet은 도움말 파일의 예제만 반환합니다. 이러한 예는 설명이 포함되어 있기 때문에 매우 유용합니다. 이 도움말 텍스트는 cmdlet 및 매개 변수가 실행될 때 수행하는 작업을 설명합니다.

도움말 파일을 별도의 창으로 팝업하려면 다음을 사용할 수 있습니다. -쇼윈도우 . 따라서 다음을 실행하면:

Get-Help Get-Command -ShowWindow

Powershell은 전체 도움말 파일이 있는 창을 표시합니다. 창에서 전체 기사를 가져오기 때문에 여기에서 Full 매개변수를 사용할 필요가 없습니다.

Powershell을 더 많이 사용할수록 Get-Member를 더 자주 사용하게 됩니다. 반환된 데이터에서 사용할 수 있는 필드와 실행할 수 있는 다른 방법을 쉽게 확인할 수 있습니다. 종종 cmdlet에는 -재산 호출할 수 있도록 매개변수를 지정합니다.

파일 작업: Get-ChildItem, Remove-Item, Move-Item, Copy-Item

이제 cmdlet의 작동 방식과 도움을 받는 방법을 알았으므로 변경해 보겠습니다. 다음을 사용하여 모든 폴더의 내용을 가져올 수 있습니다. Get-ChildItem 명령. 예를 들어 드라이브 문자를 사용하여 전체 드라이브의 파일을 가져올 수 있습니다. 입력하다:

Get-ChildItem E:

약어:

Get-ChildItem -Path E:

이 명령을 실행하면 마지막 쓰기 시간, 길이 속성 아래의 크기, 이름 및 모드가 포함된 파일 목록이 표시됩니다. 모드는 파일 또는 폴더의 속성입니다. 가능한 항목은 다음과 같습니다.

  • 읽기 전용
  • 숨겨진
  • 체계
  • 예배 규칙서
  • 보관소
  • 장치
  • 정상
  • 일시적인
  • 스파스 파일
  • 재분석점
  • 압축
  • 오프라인
  • NotContentIndexed
  • 암호화

경로에 있는 모든 하위 디렉토리의 내용을 가져오려면 -재귀 매개변수. 그런 다음 다음을 실행하십시오.

Get-ChildItem -Path E: -Recurse

그러면 파일이 경로의 각 폴더에 대해 별도의 목록으로 나타납니다.

반환되는 데이터를 제한하려면 몇 가지 다른 매개변수를 사용할 수 있습니다. -파일 , -숨겨진 , 그리고 -읽기 전용 . 파일 이름을 필터링하려는 경우 Path 매개변수에 와일드카드를 사용할 수 있습니다. 디렉토리의 모든 .doc 파일을 리턴하려면 다음을 입력하십시오.

Get-ChildItem -Path E:*.doc

다시 추가 -재귀 하위 폴더에서도 모든 것을 원했다면.

파일을 삭제하려면 다음을 사용하십시오.

Remove-Item -Path E:OldFile.txt

각 파일 확인을 건너뛰려면 매개변수를 추가하십시오. -$false 확인 (Powershell에는 부울 값에 대한 두 가지 상수가 있습니다: $true 및 $false). 읽기 전용 또는 숨겨진 파일을 강제로 제거하려면 다음을 사용하십시오. -힘 매개변수.

파일 이동도 간단합니다. 플래시 드라이브에서 폴더의 로컬 드라이브로 모든 것을 이동하려면 다음을 사용하십시오.

Move-Item -Path E:* -Destination C:FlashDriveArchive

-Path에서 단일 파일의 이름을 지정하여 해당 파일만 이동할 수도 있습니다. 파일을 이동하는 대신 복사하려면 다음과 동일한 구문을 사용합니다. 복사 항목 cmdlet.

프로세스 및 서비스 모니터링 및 작업

모든 Windows 사용자는 작업 관리자를 알고 있습니다. . 그러나 Powershell에서 현재 실행 중인 프로세스를 더 빠르게 볼 수 있는 방법이 있습니다. 프로세스 가져오기 . 이 테이블의 모든 항목이 무엇을 의미하는지 알고 싶다면 명령을 다음으로 파이프하십시오. 회원가입 . cmdlet을 입력합니다.

Get-Process | Get-Member

Get-member는 Get-Process와 연결된 메서드 및 속성 목록을 출력합니다. 맨 위에 있는 정보는 관심 있는 정보입니다. 다양한 유형의 메모리에 별칭이 있는 것을 볼 수 있습니다.

우리는 또한 우리가 얻을 수 있는 이 출력에서 ​​볼 수 있습니다 제품 속성을 사용하여 프로세스에 더 친숙한 이름을 가져옵니다. 작업에 더 나은 정보를 제공하도록 출력을 변경해 보겠습니다.

Windows 10을 위한 최고의 유료 소프트웨어
Get-Process | Select-Object Product, NPM, CPU, Name, ID | Sort-Object CPU -Descending

(다음 섹션에 Select-Object 및 Sort-Object에 대한 자세한 정보가 있습니다.)

이제 Get-Process 명령의 ID가 있으므로 Stop-Process cmdlet을 사용하여 중지할 수 있습니다. 따라서 Chrome 프로세스가 모든 리소스를 씹고 있다는 것을 발견하면 이전 명령에서 ID를 찾으십시오. 그런 다음 다음을 실행합니다.

Stop-Process -ID 45960

바꾸다 49560 리소스 돼지의 ID로.

파일 경로를 사용하여 Powershell을 사용하여 프로세스를 시작할 수 있습니다. Chrome을 시작하려면 다음 명령을 실행하십시오.

Start-Process -Filepath 'C:Program Files (x86) GoogleChromeApplicationchrome.exe'

(공백 때문에 파일 경로를 따옴표로 묶어야 합니다.) -인수 목록 매개변수를 사용하면 명령줄 옵션을 응용 프로그램에 전달할 수 있습니다. Chrome의 경우 다음을 사용하여 시크릿 모드에서 강제로 시작할 수 있습니다. --가명 깃발. 전체 cmdlet은 다음과 같습니다.

Start-Process -Filepath 'C:Program Files (x86) GoogleChromeApplicationchrome.exe' -ArgumentList '--incognito'

서비스를 사용하여 이와 동일한 작업을 대부분 수행할 수 있습니다. 서비스 받기 컴퓨터에서 실행 중인 모든 서비스의 목록을 보여줍니다. 서비스 시작 및 중지와 동일하게 사용할 수 있습니다. 서비스 시작 그리고 서비스 중지 .

데이터 작업: Sort-Object, Select-Object, Where-Object

cmdlet의 데이터로 작업할 때 항상 원하는 순서가 아닐 수 있습니다. 이러한 경우 사용하려는 정렬 개체 . 생성한 변수에 대해 Sort-Object를 호출할 수 있지만 주로 다른 cmdlet을 파이프하는 데 사용됩니다. 위의 예에서와 같이 한 개체의 출력을 다른 개체로 파이프하고 정렬합니다. 세 개의 난수로 구성된 배열을 만들어 Sort-Object에 파이프해 보겠습니다.

괄호 안의 항목이 먼저 실행됩니다. 다음을 사용하여 간단한 배열을 만듭니다.

$(Get-Random), $(Get-Random), $(Get-Random)

값을 구분하는 쉼표에 유의하십시오. 따라서 정렬된 난수를 보려면 다음을 실행합니다.

$(Get-Random), $(Get-Random), $(Get-Random) | Sort-Object

cmdlet은 숫자를 가장 작은 것에서 가장 큰 것으로 출력합니다. 역전하려면 추가하십시오. -내림차순 .

cmdlet을 Get-Member로 파이프하면 기본 출력보다 더 많은 속성이 있습니다. 다음을 사용하여 특정 속성을 선택합니다. 개체 선택 .

Sort-Object와 마찬가지로 파이프된 cmdlet을 통해 Select-Object를 사용합니다. 예를 들어 서비스 및 해당 상태 테이블을 생성하려면 다음을 사용하십시오.

Get-Service | Select-Object DisplayName, Status

이 모든 데이터를 출력하는 것도 좋지만 특정 데이터만 보고 싶다면? Get-ChildItem에는 몇 가지 기본 제공 필터링이 있지만 대부분의 명령에는 없습니다. 이러한 경우에 사용합니다. Where-객체 .

서비스로 다시 돌아가면 이번에는 실행 중인 서비스만 받게 됩니다. cmdlet을 입력합니다.

Get-Service | Where-Object Status -eq 'Running'

저것 -eq 비교에서 Powershell은 = . Powershell에서는 문자 조합으로 비교를 수행합니다.

  • eq: 같음
  • ne: 같지 않음
  • lt: 미만
  • gt: 보다 큼
  • ge: 크거나 같음
  • le: 이하
  • like: 와일드카드 비교에서 like 사용

서식 도움말: 서식-표 및 서식-목록.

이러한 다양한 cmdlet의 경우 대부분의 출력이 테이블 형식이었습니다. 이렇게 하면 머리글이 있는 행과 열에 데이터가 표시됩니다. 속성과 함께 나열된 항목을 개별적으로 표시하려면 cmdlet을 파이프 형식 목록 .

때로는 Powershell 창에 비해 너무 넓어지는 출력이 있습니다. 그런 일이 발생하면 Powershell은 이를 목록 출력으로 강제 실행합니다. 테이블 형식으로 유지하려면 출력을 다음으로 파이프하십시오. 형식-표 .

명령줄에서 스크립팅까지: 다음 단계

익숙해지면 스크립팅은 cmdlet을 텍스트 파일에 입력하고 저장하는 문제입니다. 스크립팅을 시도하는 것이 두렵다면 그렇게 하지 마십시오. Microsoft는 모든 cmdlet에 대해 엄청난 양의 문서를 보유하고 있습니다. 이것은 이미 긴 도움말 문서를 능가하므로 Technet [더 이상 사용할 수 없음]을 확인하십시오.

Powershell을 배우고 있다면 가장 기대되는 것이 무엇인지 댓글로 알려주십시오. 경험이 조금 더 많으면 다루기를 원하는 고급 주제에 대해 듣고 싶습니다.

공유하다 공유하다 트위터 이메일 디스크 공간을 확보하려면 이러한 Windows 파일 및 폴더를 삭제하십시오.

Windows 컴퓨터에서 디스크 공간을 비워야 합니까? 다음은 디스크 공간을 확보하기 위해 안전하게 삭제할 수 있는 Windows 파일 및 폴더입니다.

다음 읽기
관련 항목
  • 프로그램 작성
  • 파워쉘
  • 스크립팅
저자 소개 마이클 맥코넬(44건의 기사 게재)

Michael은 위기에 처했을 때 Mac을 사용하지 않았지만 Applescript로 코딩할 수 있습니다. 그는 컴퓨터 과학 및 영어 학위를 보유하고 있습니다. 그는 한동안 Mac, iOS 및 비디오 게임에 대해 글을 쓰고 있습니다. 그는 10년 이상 스크립팅 및 가상화를 전문으로 하는 주간 IT 원숭이였습니다.

마이클 맥코넬이 참여한 작품 더보기

뉴스레터 구독

기술 팁, 리뷰, 무료 전자책 및 독점 거래에 대한 뉴스레터에 가입하십시오!

구독하려면 여기를 클릭하세요.