파워셸이란 무엇입니까? PowerShell을 여는 방법, 모든 방법 Windows PowerShell이란 무엇입니까?

💖 마음에 드시나요?친구들과 링크를 공유하세요
73095

메뉴도 공부하고 윈도우 시작 7 또는 초기 윈도우 화면 8 1, 초보 사용자는 목적을 이해하지 못하는 애플리케이션을 발견하는 경우가 많습니다. 그러한 응용 프로그램 중 하나가 PowerShell입니다. 이 PowerShell은 무엇이며 어떤 용도로 사용됩니까? 글쎄요, 누군가가 그것을 생각해 내고 Windows에 통합했기 때문에 결국 어느 정도 의미가 있다는 것을 의미합니다. 그건 그렇고, PowerShell을 발명한 사람은 마이크로소프트 회사.


그래서, . 이 응용 프로그램은 주로 다음을 위한 것입니다. 시스템 관리자, 그리고 여기 일반 사용자, 특히 초보자는 거의 이점을 얻지 못할 것입니다. PowerShell은 최신 표준화된 셸입니다. 명령줄, 컴퓨터 기반 관리에 더 큰 유연성을 제공합니다. 운영 체제윈도우. 기본적으로 PowerShell은 동일합니다. 명령줄, 그러나 훨씬 더 기능적입니다.

이 관리 도구는 무엇을 할 수 있나요?많은 것들. 도움을 받아 시스템 관리자와 고급 사용자는 프로세스, 서비스, 파일 저장소, 계정 및 서버까지 관리할 수 있습니다. 쉘을 사용하면 다음을 실행할 수도 있습니다. 외부 명령, 개체 작업 .그물, COM그리고 XML, 다양한 트릭 등을 수행하고 자신 만의 시나리오를 만들고 수행하십시오. 그건 그렇고, Windows에서 스크립트를 작성하기 위해 특별한 그래픽 콘솔이 있습니다 I.S.E., 이는 기본 PowerShell 셸에 추가된 것입니다.

콘솔과 마찬가지로 명령, PowerShell에는 cmdlet이라는 자체 명령 세트가 있습니다. 이 유틸리티는 많은 CMD 명령을 인식하지만 일반적으로 언어 구문, cmdlet 정의 및 해당 매개 변수는 사용자가 일반 명령줄에서 보던 것과 다릅니다. 또한 다음과 같은 친숙한 명령도 있습니다. 디렉토리 , CD , 복사 PowerShell에서 완벽하게 이해되는 등은 실제로 별칭입니다. 예를 들어 다음 명령은 디렉토리 , 보기에 사용됨 파일 시스템기본 cmdlet과 일치 Get-ChildItem. 가명 또는 별칭은 순전히 편의를 위한 것입니다.

초보 사용자가 PowerShell을 이해하는 것은 특히 일반 명령줄의 기본 사항에 익숙하지 않은 경우 쉽지 않습니다. 하지만 충분히 명확하고 이해하기 쉬운 매뉴얼이나 참고서는 그리 많지 않습니다. Frank Koch가 작성한 훌륭한 가이드가 있습니다. PowerShell 스크립팅 언어를 배우기로 결정했다면 읽어 보는 것이 좋습니다. 물론, 쉘 자체의 도움말 시스템도 있습니다.

이는 많은 구체적인 예를 포함하여 강력하고 포괄적입니다. 사용하는 것은 매우 간단합니다. 도움말 시스템에 대한 기본 정보는 cmdlet에 의해 표시됩니다. 도움말 얻기. cmdlet은 사용 가능한 모든 명령 목록을 표시합니다.

PowerShell에는 실행이 허용되는 코드 유형을 결정하는 다양한 실행 모드가 있습니다. 이는 모두 HKLM에 있는 레지스트리 키에 의해 제어됩니다. 4 개가 있습니다 다른 모드처형:

제한된(제한됨): 기본 실행 정책은 스크립트 실행을 허용하지 않고 대화형 명령 실행만 허용합니다.

모두 서명됨(모두 서명됨): 모든 스크립트를 실행할 수 있습니다. 사실, 모든 스크립트와 구성 파일은 신뢰할 수 있는 게시자의 서명을 받아야 합니다. 이 모드에서는 게시자의 신뢰 확인을 받은 후 서명된(그러나 악의적인) 스크립트를 실행할 위험에 노출됩니다.

삭제됨 서명됨(원격 서명): 로컬 스크립트는 서명 없이 작동합니다. 다운로드한 모든 스크립트는 디지털 서명이 되어야 합니다.

제한 없는(제한 없음): 다음과 같은 통신 애플리케이션에서 수신된 모든 스크립트 및 구성 파일 마이크로소프트 아웃룩, 인터넷 익스플로러, 아웃룩 익스프레스 및 윈도우 메신저파일이 인터넷에서 온 것임을 이해했는지 확인한 후 작업하십시오. 없음 디지털 서명필수는 아닙니다. 이 모드는 서명되지 않은 악성 스크립트를 실행할 위험에 노출됩니다.

기본적으로 PowerShell은 제한 모드를 사용합니다. 이 모드에서 PowerShell은 대화형 셸로만 작동합니다. 스크립트 실행을 허용하지 않으며 신뢰하는 게시자가 서명한 구성 파일만 로드합니다.

성가신 빨간색 오류가 발생하는 경우 대부분의 경우 서명되지 않은 스크립트를 실행하려고 하기 때문입니다. 이 문제를 해결하는 가장 안전한 방법은 실행 정책을 무제한으로 변경하고 스크립트를 실행한 다음 다시 제한된 정책으로 변경하는 것입니다.

실행 정책을 무제한으로 변경하려면 관리 PowerShell에서 다음 명령을 실행합니다.

Set-ExecutionPolicy 무제한

확인 요청이 표시됩니다. 엔터 키를 치시오.

이제 다운로드한 스크립트를 실행할 수 있습니다. 그러나 심각한 위험에 처하게 되므로 스크립트 실행이 완료되면 실행 정책을 다시 제한 모드로 되돌리십시오. 다음 명령을 사용하여 이 작업을 수행할 수 있습니다.

Set-ExecutionPolicy 제한됨

다시 한 번 확인 요청이 표시됩니다. 엔터 키를 치시오.

그게 다야! 행운을 빕니다!

몇 가지가 있습니다 다양한 방법으로스크립트를 실행하면 다음과 같은 주요 내용이 있습니다.

  1. 파워셸 실행그 안에 스크립트를 실행합니다(예: C:\Scripts\test.ps1과 같이 파일 경로와 파일 이름을 입력하거나 cd C:\Scripts 명령을 사용하여 스크립트 폴더로 이동하여 실행합니다). 명령을 사용하여.\test.ps1) 쉘은 다양한 방법으로 찾고 실행할 수 있습니다. 한 가지 방법은 시작 메뉴를 이용하는 것입니다. Windows 7의 경우 - "모든 프로그램" - "액세서리" - "로 이동해야 합니다. 윈도우 파워셸"를 클릭하고 "Windows PowerShell" 셸을 시작합니다. Windows 10의 경우 문자 "W"가 있는 그룹을 찾아야 하며 그 안에 "Windows PowerShell"이 있습니다.
  2. "Windows PowerShell ISE" 실행프로그램은 PowerShell 자체와 함께 기본적으로 사용할 수 있는 PowerShell 스크립트를 편집하고 디버그할 수 있는 개발 환경입니다. Windows PowerShell ISE를 시작한 후에는 "열기" 버튼을 클릭하거나 파일 - 열기 메뉴로 이동하여 원하는 스크립트를 선택한 다음 F5 또는 "스크립트 실행" 버튼을 누르기만 하면 됩니다. Windows PowerShell ISE는 다음과 같은 위치에서 찾을 수 있습니다. PowerShell 셸 - 시작 메뉴에 있습니다.
  3. 표준 명령줄 실행그리고 거기에 적어주세요:
    파워셸 -파일<имя_скрипта> (예: powershell -file myscript.ps1)

이전에 PowerShell 스크립트를 실행한 적이 없다면 다음 메시지가 표시될 가능성이 높습니다. 파일을 다운로드할 수 없습니다<имя_скрипта>, 이 시스템에서는 스크립트 실행이 금지되어 있기 때문입니다. 자세한 내용을 보려면 "get-help about_signing"을 입력하세요. 이는 보안상의 이유와 우발적인 실행을 방지하기 위한 것입니다. 악성코드, 모든 스크립트는 디지털 서명되어야 합니다.

서명되지 않은 PowerShell 스크립트 실행을 허용하는 방법은 무엇입니까?

1. 파워셸에서, 스크립트를 실행하기 전에 현재 셸 세션에 대해 서명되지 않은 스크립트의 실행을 허용하는 명령을 실행합니다.

Set-ExecutionPolicy RemoteSigned -Scope 프로세스

2. 시작 시 표준 명령줄에서-executionpolicy 매개변수를 사용합니다. 즉, 다음과 같이 스크립트를 실행하십시오.

<имя_скрипта>

두 방법 모두 현재 세션에 대해서만 정책을 설정하는 반면, 레지스트리에 작성된 PowerShell 스크립트를 실행하기 위한 보안 정책은 변경되지 않고 동일하게 유지됩니다. 스크립트 실행 보안 정책을 "영구"로 변경하려면 다음 방법을 사용하십시오.

3. 영원히 출시 허용: 관리자 권한으로 PowerShell을 시작한 후 다음 명령을 실행합니다.

Set-ExecutionPolicy RemoteSigned

메모:인터넷에서 스크립트를 다운로드한 경우 실행 확인 요청을 피하려면 RemoteSigned 대신 Bypass를 사용해야 합니다. 완전 종료모든 요청 및 경고.

백그라운드에서 PowerShell 스크립트를 어떻게 실행하나요?

이렇게 하려면 Normal, Minimized, Maximized 및 Hidden 값을 사용할 수 있는 시작 매개변수 -WindowStyle을 사용하면 됩니다. 따라서 서명되지 않은 스크립트를 실행하려면 배경, 다음 명령을 실행해야 합니다.

powershell -executionpolicy RemoteSigned -WindowStyle Hidden -file<имя_скрипта>

원하는 경우 -NonInteractive를 추가하여 스크립트에서 질문을 하지 않도록 할 수도 있습니다. 따라서 스크립트는 사용자가 눈치 채지 못한 채 실행됩니다. 이 방법을 사용할 때는 주의하세요.

매개변수를 사용하여 PowerShell 스크립트 실행

실제 실행은 마치 실행하는 것처럼 이루어져야 합니다. 정규 프로그램또는 매개변수가 있는 bat 파일. 예를 들어, 명령줄에서 매개변수를 사용하여 스크립트를 실행하려면 다음 명령을 작성할 수 있습니다.

powershell -executionpolicy RemoteSigned -파일<имя_скрипта>param1 param2 "다른 텍스트 매개변수"

스크립트 자체에서 다음과 같은 매개변수를 얻을 수 있습니다.

매개변수($var1, $var2, $var3) 에코 $var1, $var2, $var3

PowerShell ISE에서는 명령 창을 사용하여 동일한 방식으로 매개 변수가 포함된 스크립트를 실행할 수 있습니다.

바로가기를 사용하여 PowerShell 스크립트를 어떻게 실행하나요?

이 작업은 두 가지 방법으로 수행할 수 있습니다.

  1. 스크립트를 실행하기 위한 명령을 작성할 bat/cmd 파일을 만듭니다(위의 매개변수를 읽었습니다).
  2. c:\Windows\System32\WindowsPowerShell\v 폴더에서 찾을 수 있는 PowerShell에 대한 바로 가기를 만듭니다.<версия>\ 그리고 "개체" 필드의 바로가기 속성에 필요한 매개변수를 추가합니다.

예를 들어 다음을 실행하려면 파워셸 스크립트사용자가 로그인하면 단락 2에 설명된 대로 바로가기를 만들어 시작 화면에 배치할 수 있습니다. 또한 위의 방법 중 하나를 사용하여 바로가기를 만들면 관리자 또는 다른 사용자로서 스크립트를 일반 프로그램으로 쉽게 실행할 수 있습니다.

PowerShell 스크립팅 언어는 다양한 문제를 해결하는 데 매우 강력한 도구이지만 좋은 일뿐만 아니라 나쁜 일에도 사용될 수 있으므로 현명하게 사용하십시오 ;)

이 기사에서는 다음과 같은 Microsoft의 기술을 살펴보겠습니다. 윈도우 파워셸에서는 PowerShell이 ​​무엇인지, cmdlet과 파이프라인이 무엇인지, 스크립트와 모듈을 작성하는 방법에 대해 설명하고 Windows PowerShell의 다른 중요하고 유용한 기능도 다루겠습니다.

PowerShell 이전에는 ( 그리고 거기에) 서비스 자동화 및 관리를 위한 다음 도구: Windows 명령줄 및 Windows 스크립트 호스트. 그러나 이러한 기술에는 단점이 있습니다.

팀에서 Windows 문자열또한 일부 관리 작업을 수행할 수 있는 기회와 작업 알고리즘을 기록하여 이를 스크립트(bat 파일)로 저장하는 동시에 특정 프로그래밍 요소(예: 변수 사용)를 사용할 수 있습니다. 조건부심지어 사이클 같은 것도요.

대부분의 소프트웨어 제품에는 콘솔 인터페이스가 있습니다. 그래픽 인터페이스를 실행하는 데 드는 비용이 없기 때문에 리소스를 절약하면서 명령줄을 사용하여 프로그램을 제어할 수 있습니다. 서버 운영 체제용 Microsoft 윈도우 서버그래픽 인터페이스가 없는 버전도 출시됩니다( Server Core, Windows Server 2016에는 Nano Server도 있습니다.), 그러나 명령줄 기능이 제한되어 있기 때문에 이 모든 것만으로는 충분하지 않습니다. 무언가를 자동화하기 위한 복잡한 논리를 작성할 수는 없으며, 가능하더라도 시간과 지식이 필요합니다.

또한 명령줄의 단점은 서버를 완벽하게 관리하기 위해 소프트웨어 제품의 다양한 콘솔 유틸리티를 사용하므로 이러한 모든 유틸리티가 서로 다르다는 점에서 관리에 명령줄을 사용하는 것이 실제로 어렵다는 것입니다. 구문, 매개변수, 사용 방법 및 이를 충족하기 위해 일반적인 작업, 즉. 매일 이 모든 것을 메모리에 보관해야 하며, 비정형 작업을 수행하려면 먼저 도움말이나 문서를 읽어야 합니다.

Windows 스크립트 호스트 기술을 사용하면 WSH 스크립트를 작성하여 자동화하는 것을 포함하여 모든 관리 작업을 명령줄로 수행할 수 있지만 여기서는 이미 본격적인 프로그래밍 언어를 사용할 수 있습니다( VBScript 및 JScript), 즉. 복잡한 논리와 알고리즘을 구현할 수 있습니다. 또한 WSH의 도움으로 개체 인터페이스를 통해 소프트웨어 제품을 관리합니다. 즉, Windows Script Host는 훨씬 더 많은 기능을 제공합니다. 냉각기» 명령줄보다 하지만 이 기술또한 Windows Script Host에는 위의 프로그래밍 언어에 대한 지식이 필요했는데 이는 실제로 시스템 관리자에게 불필요했기 때문에 시스템 관리자를 위한 관리 및 자동화를 위한 이상적인 도구가 되지 못했습니다. 관리자에게는 일부 작업을 프로그래밍할 수 있는 간단한 관리 도구만 필요하며 VBScript 및 JScript 프로그래밍 언어로 된 소프트웨어 제품의 개체 모델을 자세히 조사하고 싶지 않습니다.

이에 마이크로소프트는 관리와 자동화 기능은 물론 편의성과 사용 편의성 측면에서 시스템 관리자의 모든 요구를 100% 만족시킬 수 있는 시스템 관리자용 관리 도구를 개발해야 했고, 이에 따라 윈도우 파워셸(Windows PowerShell)이 등장하게 됐다.

Windows PowerShell이란 무엇입니까?

윈도우 파워셸 Windows 운영 체제를 관리하고 구성하기 위해 설계된 Windows 스크립팅 언어이자 명령 셸입니다. PowerShell은 CRL 프레임워크 및 .NET Framework를 기반으로 구축되었으며, 텍스트를 받아들이고 반환하는 명령줄과 달리 Windows PowerShell은 개체와 함께 작동합니다. PowerShell의 각 개체에는 해당 개체를 조작하는 데 사용할 수 있는 속성과 메서드가 있습니다.

Windows PowerShell에서 Microsoft는 cmdlet( cmdlet), 이는 명령 명명 시스템입니다. 동사 명사». 이 시스템시스템 관리자는 PowerShell을 사용하여 작업을 빠르게 익히고 단순화할 수 있습니다.

와 함께 Windows 사용 PowerShell은 다음을 수행할 수 있습니다.

  • 파일 시스템에 액세스합니다.
  • 레지스트리를 관리합니다.
  • 서비스 관리
  • 프로세스 관리
  • 운영 체제를 구성합니다.
  • 소프트웨어 설치;
  • 서버 역할 및 구성 요소를 설치합니다.
  • 서버 역할과 구성 요소를 관리하고 구성합니다.
  • 스크립트를 작성하고 사용하여 관리를 자동화합니다.
  • 기타 시스템 관리자 작업을 수행합니다.

Windows PowerShell에는 ipconfig, ping 등과 같이 명령줄에서 실행할 수 있는 일반적으로 사용되는 유틸리티와 명령이 많이 포함되어 있습니다. 이는 시스템 관리자가 명령줄에서 PowerShell로 쉽게 전환할 수 있도록 하기 위해 수행되었습니다.

또한 편의상 PowerShell에서 자주 사용되는 많은 명령과 유틸리티에는 동의어( 별명), 예를 들어 cls는 Clear-Host cmdlet의 동의어이고 dir은 Get-ChildItem의 동의어입니다( 전체 목록동의어는 Get-Alias ​​cmdlet을 실행하여 볼 수 있습니다.).

원하는 명령 검색을 단순화하기 위해 PowerShell에는 동사와 명사로 검색할 수 있는 특수 cmdlet Get-Command가 있습니다. Windows PowerShell의 모든 명령은 모듈( 예: Hyper-V, NetTCPIP)을 사용하면 올바른 명령을 더 쉽게 찾을 수 있습니다.

필요한 명령을 찾으면 이 명령을 사용하기 위한 지침을 볼 수 있습니다. help에는 이러한 목적을 위한 특별한 Get-Help cmdlet이 있습니다. 예를 들어 다음 명령은 Get-Command cmdlet에 대한 도움말을 표시합니다.

Get-Help Get-명령

Windows PowerShell의 도움말은 짧고 자세할 수 있습니다( 매개변수 -상세), 가득한 ( 매개변수 -전체), 예시( 매개변수 - 예). 다음 명령은 Get-Command cmdlet 사용 예만 보여줍니다.

Get-Help Get-Command -예

PowerShell 도움말은 업데이트 가능합니다. Update-Help 명령을 사용하여 업데이트할 수 있습니다.

Windows PowerShell 버전

PowerShell 1.0의 첫 번째 버전은 2006년 11월 14일에 출시되었으며 Windows XP 서비스 팩 2, Windows Server 2003 서비스 팩 1 및 Windows Vista 버전의 Windows 운영 체제에 설치할 수 있는 별도의 배포판으로 출시되었습니다.

Windows Server 2008에서는 PowerShell 1.0도 설치해야 하는 구성 요소로 제공되었습니다.

Windows 7 및 Windows Server 2008 R2부터 PowerShell은 시스템의 필수 구성 요소로 제공됩니다( 저것들. 사전 설치되어 있으므로 설치할 필요가 없습니다.). 다음은 PowerShell 버전과 Windows 운영 체제 버전 간의 대응 표입니다( 저것들. 어떤 Windows 버전에 기본적으로 설치되어 있는 PowerShell 버전이 무엇인가요?):

파워셸 버전 윈도우 버전
파워셸 2.0 윈도우 7, 윈도우 서버 2008 R2
파워셸 3.0 윈도우 8, 윈도우 서버 2012
파워셸 4.0 윈도우 8.1, 윈도우 서버 2012 R2
파워셸 5.0 윈도우 10, 윈도우 서버 2016

각각 새로운 버전 PowerShell은 점점 더 강력한 관리 도구로 거듭나고 있습니다. 이에 비해 첫 번째 PowerShell에는 약 130개의 cmdlet이 있었지만 이제 PowerShell 5.0에는 600개가 넘습니다!

알기 위해 현재 버전 PowerShell은 $PSVersionTable 기본 제공 변수의 PSVersion 속성을 사용할 수 있습니다. 예를 들어 다음 명령을 실행합니다.

$PSVersionTable.PSVersion

또는 cmdlet을 실행하십시오.

변수 가져오기 - 이름 PSVersionTable –ValueOnly

여기서 PSVersion 값은 PowerShell 버전이 됩니다.

파워셸 언어

파워셸객체 지향 스크립팅 프로그래밍 언어입니다. Windows PowerShell에서 Windows 운영 체제의 모든 구성 요소를 제어하는 ​​명령을 작성하고 Windows PowerShell ISE(통합 스크립팅 환경)에서 관리 작업을 자동화하는 스크립트를 작성하는 데 사용됩니다. PowerShell 언어는 관리 작업을 위해 만들어졌지만 조건, 루프, 오류 처리, 변수 작업, 개체 작업 등 모든 프로그래밍 언어에 존재하는 프로그램 구성을 포함하므로 본격적인 스크립팅 프로그래밍 언어입니다. 배열.

PowerShell 언어에는 명령 작성을 위한 통일된 구문과 "원칙에 따라 이러한 명령에 대한 명명 구조가 있습니다. 동사 명사"는 프로그래머와 시스템 관리자 모두에게 이 언어를 직관적으로 만듭니다.

윈도우 파워셸

윈도우 파워셸 PowerShell에서 명령과 스크립트를 실행하기 위한 환경입니다. 이 셸에는 명령 실행 기록 저장, 설정 등 명령줄과 동일한 기능이 있습니다. 모습셸, Ctrl+C 키 조합으로 명령 완성 및 명령줄 셸에서 사용할 수 없는 다른 많은 기능(예: " 구문 강조» ( PowerShell 5.0에 도입됨).

PowerShell을 시작하는 방법에는 여러 가지가 있습니다. 예를 들면 다음과 같습니다.

  • 명령줄에서 PowerShell을 입력하세요.
  • 대화 상자를 통해 " 실행하다» ( 키보드 단축키 Win+R), 또한 PowerShell을 입력합니다.
  • Windows 7 - 시작 -> 모든 프로그램 -> 보조프로그램 -> Windows PowerShell -> Windows PowerShell;
  • Windows 8.1 또는 Windows Server 2012 R2 - 시작 -> 모든 프로그램 -> 시스템 도구 -> Windows PowerShell;
  • Windows 10 또는 Windows Server 2016 - 시작 -> 모든 프로그램 -> Windows PowerShell 디렉터리( 그룹 W에서) -> Windows PowerShell.

Windows Server 2016에서 PowerShell을 실행하는 예

Windows Server 2016의 PowerShell 스크린샷

PowerShell의 cmdlet

cmdlet (cmdlet) - 이것 윈도우 명령운영 체제 개체를 관리하기 위해 운영 체제 개체와 상호 작용할 수 있는 PowerShell입니다. 이러한 명령은 PowerShell 언어의 일부입니다. cmdlet은 "라는 원칙에 따라 구축됩니다. 동사 명사", 하이픈(-)으로 구분; 즉, 먼저 수행할 작업을 표시하고 하이픈을 사용하여 수행할 작업을 표시합니다. 예를 들어 Get-Help cmdlet에서 Get은 "를 의미하는 동사입니다. 얻다", 도움말은 명사 " 돕다" PowerShell의 맥락에서 " 표시 – 도움말" PowerShell cmdlet은 결과를 개체로 반환합니다. 이는 명령이 화면에 텍스트만 반환하는 Windows 명령 프롬프트와의 주요 차이점 중 하나입니다.

데이터 가져오기(Get)를 위한 cmdlet 외에도 다음과 같은 유형의 cmdlet도 있습니다.

  • 추가 - 데이터를 추가합니다.
  • 클리어 – 클리어;
  • 활성화 – 활성화;
  • 비활성화 – 끄십시오.
  • 신규 – 생성;
  • 제거 – 제거;
  • 설정 – 설정;
  • 시작 - 시작;
  • 중지 – 중지;
  • 수출 – 수출;
  • 수입 – 수입;
  • 그리고 더 많은.

Windows PowerShell의 전체 cmdlet 목록은 특별한 Get-Command cmdlet을 사용하여 볼 수 있습니다. 예를 들어 -CommandType cmdlet 매개변수를 사용하여 실행하면 cmdlet 목록이 화면에 표시됩니다.

Get-Command -CommandType cmdlet

이미 알고 있듯이 cmdlet에는 cmdlet의 작업을 지정할 수 있는 매개 변수가 있습니다. 매개 변수는 필수이거나 선택 사항일 수 있습니다. 예를 들어 Get-Command cmdlet에는 필수 매개 변수가 없습니다.

아래 그림은 동사()로 cmdlet을 검색하는 방법을 보여줍니다. 동사 매개변수). 이 경우에는 무언가를 다시 시작할 수 있는 cmdlet 목록이 표시되었습니다.

Get-Command -동사 다시 시작

명사로 cmdlet을 검색하려면 Noun 매개 변수를 사용해야 합니다. 예를 들어 아래에는 서비스와 함께 작동하는 cmdlet 목록이 있습니다.

Get-Command -명사 서비스

전체 이름으로 원하는 cmdlet을 찾을 수 없는 경우 *텍스트* 형식의 마스크를 사용할 수 있습니다.

PowerShell의 파이프라인

주요 내용 중 하나 윈도우 기능 PowerShell은 명령을 실행할 때 파이프라인을 사용할 수 있습니다.

컨베이어– 이는 세로 막대(|)를 통해 cmdlet의 결과를 다른 cmdlet으로 전송하는 것입니다. 동시에 PowerShell에서 cmdlet은 개체와 함께 작동하고 개체를 반환하므로 개체도 파이프라인을 따라 전송됩니다.

컨베이어를 이용하면 복잡한 작업도 간단하고 쉽게 수행할 수 있습니다. 편리한 방법으로굳이 쓰지 않고도 복잡한 알고리즘그리고 스크립트.

예를 들어 "C:\Windows\System32" 디렉터리에서 가장 큰 파일의 이름을 알아봅시다( 파이프라인의 간단한 예).

Get-ChildItem -경로 "C:\Windows\System32" -파일 | 정렬 개체 길이 - 내림차순 | 선택 개체 -첫 번째 1

  • Get-ChildItem - 지정된 디렉터리의 개체를 가져오기 위한 cmdlet입니다.
  • Sort-Object는 개체 정렬을 위한 cmdlet입니다. 이 경우에는 파일 크기( 길이 - 내림차순);
  • Select-Object는 원하는 개체 속성을 선택하기 위한 cmdlet입니다. 이 경우 표준 필드와 첫 번째 개체만 표시합니다. 큰 파일 (매개변수 -첫 번째 1).

모든 cmdlet은 서로 별개입니다. 수직선. 각 cmdlet의 결과는 다른 cmdlet에 입력으로 전달됩니다. 먼저 지정된 디렉터리의 모든 개체를 가져온 다음 결과를 정렬하고 마지막으로 첫 번째 개체를 선택합니다.

작업의 백그라운드 실행

Windows PowerShell에는 백그라운드에서 작업을 실행할 수 있는 기능이 있습니다. 이는 명령( 예를 들어 완료하는 데 시간이 오래 걸립니다.) 백그라운드에서, 즉 실행 후에는 현재 세션으로 돌아가서 명령이 완료될 때까지 기다리지 않고 작업을 계속할 수 있습니다. 이 기회완료하는 데 꽤 오랜 시간이 걸리는 명령을 실행해야 할 때 필요하며, 아시다시피 이 시간 동안 명령이 완료될 때까지 PowerShell 세션이 차단되므로 작업을 계속해야 합니다.

예를 들어 작업 목록 보기, 작업 중지, 작업 삭제, 작업 결과 보기 등 백그라운드에서 실행 중인 모든 작업을 관리할 수 있습니다.

Windows PowerShell에는 백그라운드 작업 작업을 위한 다음 cmdlet이 있습니다.

  • Start-Job – 백그라운드 작업을 시작합니다.
  • Stop-Job – 백그라운드 작업 중지
  • Get-Job – 백그라운드 작업 목록을 봅니다.
  • Receiver-Job – 백그라운드 작업의 결과를 봅니다.
  • Remove-Job – 백그라운드 작업을 제거합니다.
  • Wait-Job – 작업이 완료될 때까지 기다리기 위해 백그라운드 작업을 전경으로 이동합니다.

백그라운드에서 실행하려면 Start-Job 명령을 작성해야 하며 중괄호() 백그라운드에서 실행될 명령 또는 명령 집합입니다.

예를 들어, 몇 가지 작업을 실행해 보겠습니다( 서비스 목록 표시) 백그라운드에서 목록을 살펴보세요. 백그라운드 작업작업 결과를 화면에 표시합니다( 저것들. 서비스 목록).

백그라운드에서 작업 실행

시작 작업(Get-Service)

백그라운드에서 실행 중인 작업 목록을 살펴봅니다.

Job1의 결과 표시

작업 수신 Job1

보시다시피 이제 '상태의 작업이 있습니다. 완전한", 즉. 이미 완료되었습니다( Get-Service는 빠르게 작동합니다.).

백그라운드 작업의 결과를 보려면 다음과 같습니다. Get-Service cmdlet을 사용하여 receive-Job 명령을 실행하고 작업 이름( 식별자 값도 가능합니다). 결과적으로 서비스 목록이 표시되었습니다.

PowerShell을 사용한 원격 제어

Windows PowerShell은 로컬 사용뿐만 아니라 원격 명령 실행용으로도 설계되었습니다. 이 기능은 직장에서 원격 컴퓨터를 제어할 수 있도록 하기 위해 필요합니다. PowerShell 명령을 실행합니다.

원격 제어에는 여러 가지 방법이 있습니다.

  • 매개변수 사용 –컴퓨터 이름 (많은 팀이 갖고 있어요). 즉, 명령을 실행하려는 컴퓨터의 이름을 매개변수로 전달합니다. 이 방법은 하나의 명령 실행으로 제한된다는 단점이 있습니다.
  • 세션을 사용합니다. cmdlet Enter-PSSession (대화형 세션). 이런 식으로 연결하면 원격 컴퓨터 PowerShell에 입력하는 모든 명령은 원격 컴퓨터에 직접 명령을 입력한 것과 동일한 방식으로 원격 컴퓨터에서 실행됩니다. 이 방법에는 세션이 한 대의 컴퓨터로 제한된다는 단점도 있습니다.
  • cmdlet 사용 호출 명령. 사용하여 이 방법한 컴퓨터 또는 여러 컴퓨터에서 명령이나 스크립트를 실행할 수 있습니다.

예를 들어, 원격 컴퓨터( 아래 예에서는 ServerName) 대화형 세션에서 다음 명령을 실행합니다.

Enter-PSSession 서버 이름

Windows PowerShell의 스크립트, 함수 및 모듈

알고리즘을 작성했다면 나중에 사용하기 위해 저장하고 싶을 가능성이 높습니다. Windows PowerShell에는 이러한 목적을 위한 스크립팅 메커니즘이 있습니다.

이 메커니즘의 본질은 다음과 같습니다. 필요한 명령 세트를 작성하고 이를 스크립트로 저장합니다. 간단합니다. 텍스트 파일확장자가 .PS1입니다.

그런 다음 이 스크립트를 실행하려면 PowerShell에서 실행하기만 하면 됩니다. 이 경우 스크립트 파일의 전체 경로를 지정하거나 스크립트가 있는 디렉터리로 이동하여 이름으로 호출해야 합니다.

중요한!

기본적으로 Windows에서 스크립트를 실행하는 것은 금지되어 있습니다! 스크립트 실행 정책을 보려면 cmdlet을 실행하세요. Get-ExecutionPolicy. 결과적으로 현재 정책이 반환됩니다. 예를 들면 다음과 같습니다.

  • 제한됨 - 모든 스크립트 실행이 차단됩니다( 기본값);
  • AllSigned – 디지털 서명이 있는 스크립트 실행이 허용됩니다.
  • RemoteSigned – 로컬 스크립트 실행이 허용되며, 다운로드한 모든 스크립트에는 디지털 서명이 있어야 합니다.
  • 제한 없음 - 모든 스크립트 실행이 허용됩니다( 안전하지 않으므로 권장하지 않습니다!).

스크립트를 실행할 수 있도록 하려면 cmdlet을 사용해야 합니다. 실행 정책 설정위의 매개변수 중 하나를 사용합니다.

예를 들어 로컬 스크립트 실행을 허용하려면 다음 명령을 실행하고 Y를 눌러 변경 사항을 적용합니다.

Set-ExecutionPolicy RemoteSigned

매개변수를 스크립트에 전달하거나 필수로 설정하거나 기본값을 설정할 수 있습니다.

Windows PowerShell은 기본 제공 cmdlet과 같이 PowerShell 셸에서 사용할 수 있는 고유한 함수를 생성하기 위한 메커니즘을 제공합니다.

이렇게 하려면 다음을 지정해야 합니다. 예어함수를 입력하고 중괄호() 안에 이 함수에 대한 알고리즘을 작성합니다. 명령 세트( 예를 들어, 자주 사용되는 절차(특정 권한을 가진 사용자 생성, 특정 디렉터리 정리 등)). 그런 다음 이 모든 파일을 스크립트에 저장해야 합니다. 단, 이 파일은 이미 모듈이므로 확장자는 .psm1이어야 합니다.

그게 전부는 아닙니다. 이 파일은 PowerShell이 ​​모듈을 찾는 디렉터리에 있어야 합니다. 그러한 디렉토리가 여러 개 있습니다( 사용자 프로필의 특수 디렉터리, PowerShell이 ​​설치된 디렉터리), 다음에서 볼 수 있습니다. 환경 변수파워셸. 이렇게 하려면 다음 명령을 실행하세요.

Get-ChildItem Env:\PSModulePath | 형식-테이블 -AutoSize

작성한 모듈을 특수 디렉터리에 배치하면 일반 PowerShell 명령으로 기능에 액세스할 수 있습니다.

Windows PowerShell ISE(통합 스크립팅 환경)

스크립트, 함수 및 그에 따른 모듈을 편리하게 작성하기 위해 Microsoft는 특별한 그래픽 프로그램 통합 스크립팅 환경(ISE) - 통합 스크립팅 환경. 이 프로그램으로 작업하는 것은 매우 편리하며 강력한 기능도 갖추고 있습니다( 스크립트, 출력 영역, 내장 디버거 등을 포함하는 여러 탭 생성).

다음과 같이 실행할 수 있습니다.

  • Windows 7 - 시작 -> 모든 프로그램 -> 보조 프로그램 -> Windows PowerShell -> Windows PowerShell ISE;
  • Windows 10 또는 Windows Server 2016 - 시작 -> 모든 프로그램 -> Windows PowerShell 디렉터리( 그룹 W에서) -> Windows PowerShell ISE.

메모! ISE는 작동하지 않습니다 윈도우 시스템 Server Core 버전에 설치된 서버.

Windows Server 2016의 PowerShell ISE(통합 스크립팅 환경) 스크린샷

그게 전부입니다. 자료가 도움이 되었기를 바랍니다. 행운을 빌어요!



친구에게 말하다