PowerShell을 여는 방법, 모든 방법. Windows PowerShell: 그게 무엇인가요?

숙련된 Windows 10 운영 체제 사용자는 PowerShell 명령줄 유틸리티에 대해 들어본 적이 있을 것입니다. Windows 7 및 8.1을 사용해 본 경험이 있는 사용자도 익숙할 것입니다. 수년간 Windows 명령줄 응용 프로그램과 .bat 파일을 사용해 본 후에는 더욱 강력한 도구에 익숙해질 때입니다.

PowerShell은 Windows 도구 목록에 추가된 중요한 기능이므로 일부 사용자에게는 그 범위가 위협적일 수 있습니다. 그것은 무엇입니까? 스크립팅 언어입니까, 아니면 명령 셸입니까? 걱정하지 마세요. 광범위한 기능에도 불구하고 누구나 PowerShell을 마스터할 수 있습니다.

1단계: 설치

먼저 PowerShell 유틸리티 자체가 필요합니다. Windows 10을 실행하는 경우 이미 PowerShell 버전 5가 설치되어 있습니다. Windows 10 1주년 업데이트는 버전 5.1을 사용하지만 차이점은 눈에 띄지 않습니다. Windows 8 및 8.1은 PowerShell 4를 사용하는데, 이것으로도 충분합니다. Windows 7에 PowerShell을 설치하면 문제가 발생하지 않지만 몇 가지 추가 단계를 수행해야 합니다. 특히, .Net Framework를 추가로 설치해야 합니다. PowerShell이 ​​포함된 Windows 관리 프레임워크를 설치할 수 있습니다.

PowerShell에는 두 가지 인터페이스가 있습니다. 고급 사용자는 통합 스크립팅 환경(ISE)으로 알려진 전체 GUI 인터페이스를 선택할 수 있습니다. 초보자의 경우 PowerShell 콘솔, 간단한 텍스트 기반 Windows 명령줄 스타일 인터페이스 또는 DOS 3.2를 사용하는 것이 가장 좋습니다.

Windows 10에서 관리자로 PowerShell을 실행하려면 시작 버튼을 클릭하고 Windows PowerShell까지 아래로 스크롤합니다. Windows 8.1의 경우 Windows의 시스템 폴더에서 Windows PowerShell을 찾으세요. Windows 7에서는 셸이 액세서리 폴더에 있습니다. 일반 사용자는 오른쪽 버튼 대신 왼쪽 마우스 버튼을 사용하여 동일한 방식으로 PowerShell을 시작할 수 있습니다.

모든 Windows 버전에서 검색을 사용할 수 있습니다. 나중에 쉽게 사용할 수 있도록 PowerShell을 작업 표시줄에 고정할 수 있습니다.

2단계: 이전 Windows 명령

PowerShell의 Windows 명령 구문은 평소와 같이 작동합니다. 예를 들어, CD폴더를 변경하고, 디렉토리현재 폴더 내의 모든 파일 및 폴더 목록을 표시합니다.

PowerShell 콘솔을 시작하는 방법에 따라 다음 위치에서 시작할 수 있습니다. c:\Windows\system32아니면 c에서 :\사용자\ . 스크린샷의 예에서는 다음 명령을 사용합니다. CD..(공백 포함) 한 번에 한 레벨 위로 이동한 후 다음 명령을 실행하세요. 디렉토리디렉토리에 있는 파일 및 폴더 목록을 표시하려면 씨:\.

3단계: 도움말 파일 설치

같은 팀 CD그리고 디렉토리활성 PowerShell 명령이 아닙니다. 이는 실제 PowerShell 명령을 대체하는 소위 별칭입니다. 별칭은 명령줄에 대한 광범위한 경험이 있는 사람들에게 유용합니다. 그러나 PowerShell의 깊이는 건드리지 않습니다.

PowerShell을 시작하려면 다음을 입력하세요. 돕다그리고 필요한 명령. 스크린샷은 명령을 보여줍니다. .

돕다말한다 디렉토리 PowerShell 명령의 별칭입니다. Get-ChildItem. 당신이 입력하는 경우 get-childitem V PS C:\>, 명령을 사용할 때와 동일한 내용이 표시됩니다. 디렉토리.

스크린샷 하단에 명시된 것처럼 PowerShell용 도움말 파일은 자동으로 설치되지 않습니다. 이를 얻으려면 관리자 권한으로 PowerShell을 실행하고 다음을 입력하십시오. 업데이트 도움말. 도움말 파일을 설치하는 데는 몇 분이 소요됩니다. 여러 모듈이 누락될 수 있습니다. 예를 들어 이 경우 NetWNV 및 SecureBoot에 대한 도움말이 설치되지 않았습니다. 모든 것이 준비되면 전체 도움말 시스템이 항상 필요한 팁을 제공합니다.

이제 명령을 입력하십시오 도움 받기관심 있는 명령(PowerShell의 "cmdlet", 러시아어의 cmdlet)에 대한 설명이 표시됩니다. 예를 들어, get-help get-childitem옵션 목록을 표시합니다 get-childitem. 다양한 가능한 옵션을 표시할 수도 있습니다. 예를 들어

get-help get-childitem -예제

7가지 자세한 사용 예를 제공합니다. get-childitem. 팀

get-help get-childitem -detailed

cmdlet의 각 매개 변수에 대한 자세한 설명과 7가지 예가 포함되어 있습니다. get-childitem.

4단계: 설정에 대한 도움 받기

스크린샷에서 아래에 두 개의 목록이 있음을 눈치챘을 것입니다. 통사론을 위한 get-childitem. 두 가지 구문이 있다는 것은 cmdlet을 실행하는 두 가지 방법이 있다는 것을 의미합니다. 구문을 서로 분리하는 방법과 매개변수의 의미는 무엇입니까? 요령을 알면 답은 간단합니다.

cmdlet 매개변수에 대한 자세한 내용은 get-childitem또는 다른 사용 매개변수 -가득한:

get-help get-childitem -full

그러면 cmdlet으로 수행할 수 있는 작업과 앞으로 발생하는 작업에 대한 목록이 제공됩니다. 스크린샷을 보세요.

매개변수 설명을 검토하면 다음을 알 수 있습니다. get-childitem객체를 얻을 수 있게 해준다 어린이(하위 폴더 이름이나 파일 이름 등)을 특정 문자와 일치하거나 일치하지 않는 지정된 위치에 저장합니다. 예를 들어:

get-childItem "*.txt" -recurse

현재 폴더와 모든 하위 폴더에 있는 "*.txt" 파일 목록을 반환합니다(매개변수로 인해). -재귀). 반면

get-childitem “HKLM:\Software”

모든 최상위 레지스트리 키 목록을 반환합니다. HKEY_LOCAL_MACHINE\소프트웨어.

Windows 명령줄이나 .bat 파일을 사용하여 레지스트리에 들어가려고 시도한 적이 있다면 이 액세스 옵션의 기능을 높이 평가할 것입니다.

5단계: 이름 학습

지금까지 표시된 cmdlet이 비슷하게 보이는 이유는 다음과 같습니다. get-childitem, 업데이트-도움말, get-help단일 동사-명사 패턴을 사용하세요. 모든 PowerShell cmdlet은 이 규칙을 사용합니다. 단일 명사 앞에 동사를 사용합니다. 이는 한때 VB 및 VBA 언어에서 명령 이름이 일관되지 않아 어려움을 겪은 사람들에게 매력적일 것입니다.

가장 일반적인 cmdlet을 살펴보십시오.

설정된 위치: 현재 작업 위치를 특정 위치로 설정합니다.

콘텐츠 얻기: 파일의 내용을 가져옵니다.

항목 가져오기: 파일 및 폴더 수신

복사항목: 한 위치에서 다른 위치로 객체를 복사합니다.

항목 제거: 파일 및 폴더를 삭제합니다.

: 로컬 또는 원격 컴퓨터에서 실행 중인 프로세스를 가져옵니다.

서비스 받기: 로컬 또는 원격 컴퓨터에서 실행되는 서비스를 가져옵니다.

호출-웹 요청: 인터넷의 웹페이지에서 콘텐츠를 검색합니다.

특정 cmdlet의 작동 방식을 보려면 다음을 사용하세요. 도움 받기경우와 같이

get-help 복사 항목 -full

도움말의 설명을 바탕으로 cmdlet에 필요한 것이 무엇인지 이해할 수 있습니다. 예를 들어, 다음 위치의 모든 파일과 폴더를 복사하려는 경우 서류 V c:\임시, 사용

복사 항목 c:\users\ \documents\* c:\temp

이 명령을 입력하면 PowerShell 환경의 몇 가지 흥미로운 기능을 볼 수 있습니다. 예를 들어 다음을 입력하면 카피아이 Tab 버튼을 누르면 PowerShell이 ​​채워집니다. 복사 항목. cmdlet을 잘못 입력했는데 PowerShell이 ​​이를 인식할 수 없는 경우 무엇이 잘못되었는지에 대한 전체 설명이 제공됩니다.

다음 cmdlet을 사용해 보세요.

호출-웹 요청 Askwoody.com

웹페이지 제목, 이미지, 링크 및 기타 콘텐츠의 짧은 목록이 표시됩니다. 주의하시기 바랍니다 도움 받기목록에 호출-웹 요청는 "양식, 링크, 이미지 및 기타 중요한 HTML 요소의 모음을 반환"합니다. 이는 정확히 화면에 표시되어야 하는 내용입니다.

일부 cmdlet은 PowerShell 자체를 관리하는 데 도움이 됩니다.

get 명령: 사용 가능한 모든 cmdlet 목록

get 동사: 사용 가능한 모든 동사 목록

명확한 호스트: 호스트 프로그램 화면 지우기

다양한 매개변수를 사용하면 명령을 줄이고 유용한 옵션의 범위를 좁힐 수 있습니다. 예를 들어 Windows 서비스에서 작동하는 모든 cmdlet 목록을 보려면 다음을 입력합니다.

get-명령 *-서비스

명사와 함께 사용할 수 있는 모든 동사가 표시됩니다. 서비스. 목록은 다음과 같습니다.

서비스 받기

신규 서비스

서비스 재시작

이력서 서비스

세트 서비스

시작 서비스

정지 서비스

서비스 중단

이러한 cmdlet을 다른 cmdlet과 결합할 수 있습니다.

6단계: 파이프 사용

Windows 명령줄이나 배치 파일에 익숙하다면 리디렉션과 파이프에 대해서도 알고 있을 것입니다. 리디렉션(> 기호) 및 파이프(| 기호)는 작업의 결과를 가져와 다른 위치에 연결합니다. 예를 들어 명령 결과를 리디렉션할 수 있습니다. 디렉토리텍스트 파일로 전송하거나 명령 결과를 전달합니다. 팀에 찾다다음과 같은 흥미로운 결과를 필터링하려면

디렉토리 > 임시.txt

핑 Askwoody.com | "패킷" > temp2.txt 찾기

여기 두 번째 팀에서 찾다문자열을 검색합니다 패킷, 팀에서 Askwoody.com 주소에서 가져옴 일치하는 모든 줄을 다음과 같은 파일로 연결합니다. 임시2.txt.

이러한 명령 중 첫 번째 명령은 PowerShell에서 제대로 작동합니다. 두 번째 명령을 실행하려면 다음과 같은 것이 필요합니다.

핑 Askwoody.com | 선택 문자열 패킷 | 외부 파일 temp2.txt

리디렉션과 파이프를 사용하면 Windows 명령줄의 기능이 크게 확장됩니다. 텍스트 문자열을 검색하기 위해 화면을 끝없이 아래로 스크롤하는 대신 필요한 Windows 명령을 필터링할 수 있습니다.

Powershell이 ​​지원합니다 파이프, 텍스트에만 국한되지 않습니다. PowerShell을 사용하면 한 cmdlet에서 다른 cmdlet으로 전체 개체를 전달할 수 있습니다. 여기서 개체는 데이터(속성이라고 함)와 해당 데이터를 사용할 수 있는 작업(메서드)의 조합입니다.

까다로운 부분은 물체를 정렬할 때 발생합니다. 한 cmdlet에서 제공하는 개체는 수신 cmdlet에서 허용하는 개체 유형과 일치해야 합니다. 텍스트는 매우 간단한 개체 유형이므로 텍스트로 작업하는 경우 개체를 정렬하는 것은 간단한 작업입니다. 나머지 개체는 그렇게 기본적이지 않습니다.

이것을 이해하는 방법? cmdlet 사용 회원가입. cmdlet이 처리하는 개체 유형을 알고 싶다면 다음을 통해 실행하세요. 회원가입. 예를 들어, 컴퓨터에서 실행 중인 프로세스를 이해하려고 하고 옵션을 cmdlet으로 좁힌 경우 , cmdlet의 결과를 확인하는 방법은 다음과 같습니다.

프로세스 가져오기 | 회원가입

이 cmdlet을 실행하면 다음에 대한 긴 속성 및 메서드 목록이 생성됩니다. , 그러나 목록 맨 처음에는 생성하는 객체의 유형을 볼 수 있습니다. :

유형 이름: System.Diagnostics.Process

아래 스크린샷에는 속성도 나와 있습니다. 자격이 있는 get-process 핸들, 이름, NPM, PM, SI, VM그리고 W.S..

결과를 조작하고 싶다면 이 cmdlet을 사용하려면(모니터에 활성 프로세스의 긴 목록을 표시하는 대신) 입력으로 사용하는 다른 명령을 찾아야 합니다. 시스템.진단.프로세스. 필요한 cmdlet을 찾으려면 PowerShell을 다시 사용하세요.

get-command -Parametertype System.Diagnostics.Process

이 cmdlet은 처리할 수 있는 cmdlet 목록을 제공합니다. 시스템.진단.프로세스.

일부 cmdlet은 거의 모든 종류의 데이터를 허용하는 것으로 알려져 있습니다. 그 중 최고는 . 이 cmdlet은 파이프를 통해 전송된 각 개체를 하나씩 통과하고 지정된 선택 기준을 해당 개체에 적용합니다. 라는 특별한 마커가 있습니다. $_ , 파이프의 각 항목을 한 번에 하나씩 사용할 수 있습니다.

"svchost"라는 이름을 가진 컴퓨터에서 실행 중인 모든 프로세스의 목록을 얻고 싶다고 가정해 보겠습니다. 즉, 속성과 일치시키려고 한다고 가정해 보겠습니다. 이름프로세스 서비스 호스트. 다음 명령을 사용하십시오.

프로세스 가져오기 | where-object ($_.Name -eq “svchost”)

cmdlet 모든 사물을 본다 시스템.진단.프로세스, 비교하다 .이름이 개체에는 "svchost"가 있습니다. 일치하는 항목이 있으면 모니터에 표시됩니다. 스크린샷을 보세요.

7단계: 유용한 PowerShell 명령 분석

지금쯤이면 컴퓨터가 손상될 수 있다는 사실을 이미 충분히 알고 있으므로 주의하십시오. 예를 들어 자주 요청되는 PowerShell 명령을 살펴보겠습니다.

이 명령은 Windows 10에서만 작동하며 PowerShell을 관리자로 실행하는 경우에만 작동합니다. 이는 사전 설치된 Windows 10 응용 프로그램을 다시 설치하도록 설계되었으며 이러한 프로그램을 처음 제거한 후 반환하기로 결정한 사용자에게 유용할 수 있습니다. 명령은 다음과 같습니다.

Get-AppXPackage | Foreach(추가-AppxPackage -DisableDevelopmentMode -등록 "$($_.InstallLocation)\AppXManifest.xml")

이 명령을 실행하는 경우 빨간색 경고를 무시하고 명령이 완료되면 컴퓨터를 다시 시작하십시오. Windows 10에 사전 설치된 모든 프로그램이 해당 위치에 나타납니다.

이 명령의 작동 방식은 다음과 같습니다. Get-AppXPackage사용자 프로필의 모든 애플리케이션 패키지를 확인합니다. 해당 애플리케이션을 삭제하더라도 사용자 프로필 목록에는 남아 있습니다.

cmdlet Get-AppXPackage객체를 반환합니다 유형이름 Microsoft.Windows.Appx.PackageManager.Commands.AppxPackage, 여기에는 애플리케이션 패키지의 정규화된 이름과 해당 XML 매니페스트 파일의 위치가 포함됩니다. cmdlet을 실행하면 get-appx패키지을 클릭하면 긴 애플리케이션 패키지 목록이 표시됩니다. 스크린샷은 Xbox 앱에 대한 설명을 보여줍니다.

cmdlet 각각각 객체를 반복합니다. AppX패키지 cmdlet으로 보내서 추가 AppxPackage. 에 따르면 도움 받기을 위한 추가 AppxPackage, 두 개의 키 스위치가 있습니다:

  • 스위치 -등록하다기존 애플리케이션 패키지 설치를 등록하는 데 사용되며 매개변수를 설정할 수 있습니다. 개발 모드 비활성화그리고 등록하다
  • 스위치 -DisableDevelopmentMode비활성화되었거나, 등록 취소되었거나, 손상된 기존 응용 프로그램 패키지를 다시 등록하도록 Windows에 지시합니다.

선 " $($_.InstallLocation)\AppXManifest.x ml"은 파일이 있는 위치를 설명합니다. 매니페스트.xml. 파일을 보면 AppXManifest.xml를 사용하면 애플리케이션 ID, 실행 파일 및 애플리케이션과 관련된 수많은 시각적 요소의 복잡한 목록이 표시됩니다.

재부팅 후에는 추가된 모든 애플리케이션 패키지가 Windows 스토어에서 다운로드되어 설치됩니다.

Windows 7과 Server 2008이 출시된 지 1년 이상이 지났습니다.

프로그래머, 시스템 관리자 및 고급 사용자는 명령줄과 유사한 파란색 창을 여러 용도로 사용했습니다.

대부분의 초보 사용자는 PowerShell(PS)이 무엇인지조차 모릅니다.

그러나 PowerShell용 스크립트를 사용하면 명령줄과 그래픽 인터페이스를 통해 운영 체제에서 수행되는 작업과 스크립트를 거의 100% 자동화할 수 있습니다.

스크립트(펌웨어) 생성 및 실행 기능에 더 주의하면서 이 프로그램의 주요 기능에 대해 알아봅시다.

러시아어를 포함하여 프로그램에 대한 수많은 매뉴얼과 문서가 있습니다. 기사의 목적– 사용자에게 개념적 지식을 제공합니다. 최신 정보를 가져오다, 그러나 통역사와 그 안의 스크립트 실행을 더 자세히 알아볼 가치가 있는지 여부는 모두가 스스로 결정할 것입니다.

Windows PowerShell이란 무엇입니까?

파워셸– 자체 스크립팅 언어를 갖춘 .NET Framework 기반의 인터프리터입니다.

첫 번째는 텍스트 모드에서 작동한다는 의미입니다. 명령을 입력하고 실행하면 화면에 실행 결과가 표시됩니다.

MS-DOS와 이전 버전의 UNIX에서도 그랬습니다.

두 번째는 관리자와 일반 사용자의 시스템, 애플리케이션, 프로세스 및 관련 서비스의 관리 및 유지 관리를 크게 단순화하고 속도를 높이며 자동화합니다.

다른 통역사에 비해 PS는 다릅니다.

  • 와의 통합 – 프로그램 코드를 도입하여 강력한 스크립트를 만들 수 있습니다.
  • 반환된 모든 데이터는 텍스트/문자열 데이터가 아닌 개체입니다. 즉, 다른 스크립트로 전달되어 어떤 방식으로든 처리됩니다.

파워셸 버전 2다음과 같은 기능을 가지고 있습니다. 그 중 일부를 더 자세히 살펴보겠습니다.

  • 명령을 cmdlet으로 표현하는 기능– 인터프리터 내부에서 실행됩니다. 그렇지 않으면 명령이 별도의 프로세스에서 실행됩니다.
  • 컨베이어 사용– 구조와 유형을 유지하면서 한 명령에서 다른 명령으로 데이터를 전송하도록 설계되었습니다.
  • 통합 멀티스트림 데이터 전송우선 순위 지정 및 연결 재개를 통해 네트워크를 통해.
  • 위치 및 명명된 매개변수를 지원합니다.
  • 배경 작업– 원격 시스템에서 명령을 비동기적으로 호출하고 스크립트를 시작합니다.
  • 원격 클라이언트와의 제한된 세션 설정그리고 그들에 대해 스크립트를 실행합니다.
  • 모듈– 스크립트가 자급자족하고 모듈 환경에 영향을 주지 않고 자체 컨테이너에서 실행될 때 스크립트를 구성하는 방법입니다.
  • 오류 처리기의 가용성.
  • 언어의 그래픽 환경: 구문, 디버거, 강조 표시, 유니코드 및 북마크 지원을 통한 자동 명령 완성.
  • 줄에 중단점 추가, 스크립트 디버깅을 위한 명령, 작업 및 변수.
  • 블록 및 행간 주석.
  • 일부 cmdlet에 대한 별칭 생성 지원, 실행 시 일반 명령으로 변환됩니다.
  • 제한된 세션을 생성하고,엄격하게 지정된 명령 목록 등을 실행할 수 있습니다.

누구나 사용할 수 있는 PowerShell 소스 코드: 모든 커뮤니티 구성원은 명령줄 해석기의 기능을 향상시키기 위해 자신만의 확장을 자유롭게 만들 수 있습니다.

프로그래밍 기술 없이도 통합 스크립팅 언어를 마스터할 수 있습니다.

복잡한 시나리오를 만들 가능성은 거의 없지만 거의 모든 사람이 일련의 기본 작업을 수행할 수 있습니다.

하지만 PowerShell의 기본 개념에 대한 지식이 없으면 명령 해석기 창에서 어떤 작업도 수행할 수 없을 것입니다. 그들부터 시작합시다.

cmdlet

cmdlet– 다양한 기능이 숨겨져 있는 독특한 PS 명령. 인터프리터에 내장된 명령은 동사-명사 원칙에 따라 구현됩니다(예: Get-Process(프로세스 목록 가져오기)). 이 솔루션을 사용하면 이름(영문)만으로 명령의 본질을 이해할 수 있습니다.

일부 cmdlet은 구조와 유형을 유지하면서 데이터 및 정보 배열 수신/전송을 지원합니다. 이는 컨베이어 원리에 따라 작동합니다(이에 대해서는 다음 섹션에서 설명합니다). 그럼에도 불구하고 cmdlet은 개체를 순서대로 실행하고 처리합니다.

cmdlet을 구현하려면 모든 .NET 언어로 생성된 지원되는 .NET API를 사용할 수 있습니다.

따라서 사용자는 프로그램의 특정 기능에 액세스할 수 있습니다.

Cmdlet은 직접 또는 고유 경로(드라이브 문자 및 디렉터리 경로)를 통해 필요한 정보에 액세스할 수 있습니다.

cmdlet을 사용하면 파일 시스템 및 인증서 저장소 개체, 설치된 애플리케이션 및 서비스에 대한 작업을 수행할 수 있습니다.

컨베이어

매우 원시적이지 않은 스크립트를 생성하거나 스크립트의 결과로 얻은 데이터로 작업을 수행하려면 때로는 일부 작업도 수행해야 합니다.

이를 위한 컨베이어가 있습니다. UNIX에서와 마찬가지로 한 cmdlet의 출력을 변경되지 않은 상태로 다른 cmdlet의 입력에 전달하여 해당 유형을 유지함으로써 명령을 결합합니다.

이 경우 정보의 컨테이너 또는 문자별 구문 분석이 필요하지 않습니다.

전송되는 정보에는 기능이 포함될 수도 있습니다.결합된 명령의 작업이 끝나면 텍스트 서식을 사용하여 정보를 텍스트 형식으로 변환(데이터를 문자열로 변환)하는 기능을 호출합니다.

스크립트

셸을 사용하면 많은 작업을 자동화할 수 있음에도 불구하고 명령을 수동으로 입력해야 하는데 이는 그리 편리하지 않습니다.

특히 동일한 작업을 반복해서 수행해야 하는 경우에는 더욱 그렇습니다.

그리고 인적 요소 없이는 할 수 없습니다: 오타, 오류, 코드 작성 시 실수로 키를 누르는 경우, 줄을 수정하거나 다시 입력하는 경우에는 보다 사용자 친화적인 태도가 필요합니다.

단조로운 작업 체인을 수행하기 위해 PS는 스크립트(통역사가 이해할 수 있는 일련의 명령이 포함된 텍스트 파일)를 구현했습니다.

PowerShell의 스크립트는 특히 스크립트에 분기, 조건, 논리 연산 및 루프가 포함된 경우 PC 작업과 유지 관리를 더욱 단순화하고 자동화합니다.

그러나 여기서 "반짝이는 것이 모두 금은 아닙니다": 자신만의 스크립트를 작성하거나 이미 만들어진 스크립트를 업로드하는 것(자신의 목표에 맞게 약간 조정하더라도)은 그렇게 쉽게 이루어지지 않습니다.

만약에마이크로소프트그것은 허용되었다 아무리 어려움을 겪더라도 위해 스크립트를 만들었습니다파워셸 , 이기적이거나 훌리건적인 목적을 위해 사기꾼과 악의를 품은 사람이 작성했습니다.

Windows PS에서 실행하려면 실행 제어를 전달해야 합니다.

실패하고 스크립트를 실행해야 하는 경우 매크로 보안을 담당하는 개체의 구성을 변경해야 합니다.

스크립트를 사용하기 전에

VBS를 사용할 때 많은 문제가 발생하는데, 사용자 스크립트 요청을 충족하거나 운영 체제 보안 수준과 관련된 문제를 해결하기 위해 스크립트 보안을 낮추지 않으면 PowerShell 개발자가 완전히 제거했습니다.

다운로드한 스크립트를 사용자 컴퓨터에서 실행하는 것은 악성 소프트웨어를 유포하거나 공격자가 개인 정보를 도용하기 위한 간단하고 효과적인 옵션입니다.

모든 일은 스크립트 파일(ps1)의 내용에 대한 기본적인 무지로 인해 발생합니다.다른 사람의 작업을 희생하여 문제를 신속하게 해결하려는 욕구. 스크립트 실행의 보안 수준을 제어하는 ​​개체는 스크립트 실행이 불가능한 환경을 만듭니다.

의도적인 매크로 실행은 보안 수준을 변경한 후 사용자가 진행을 허용하고 자신이 수행 중인 작업을 인식하고 *.ps1 파일에 무엇이 있는지 확실히 아는 경우 발생합니다.

보안 구성은 자체 스크립트를 구현하고 실행해야 하는 사람들에게는 불편하기 때문에 구성 변경이 가능합니다.

여기서 보호를 최소한으로 줄이거나 침투를 위해 구멍을 여는 기능과 PowerShell 작업의 용이성 사이를 현명하게 조작할 수 있습니다.

셸에는 세 가지 보안 수준이 있습니다.

  • ps1 확장자를 가진 파일은 시스템에서 식별되지 않습니다.실행 파일이며 알 수 없음 또는 텍스트로 지정됩니다(두 번 클릭하면 컴퓨터에서 사용되는 기본 텍스트 편집기에서 열립니다).
  • 셸을 사용하면 전체 경로를 지정한 후 스크립트를 실행할 수 있습니다., 현재 디렉토리에 있는 스크립트 파일은 검색되지 않으므로 현재 디렉토리에 있는 매크로를 실행할 수 없습니다.
  • 내장된 실행 정책 스크립트 실행, 허용된 스크립트 목록에 필요한 스크립트를 추가하는 일을 담당합니다.

구성을 변경할 생각조차 하지 마세요., 기본 사항을 숙지하지 않고 최소한 두 번째 수준으로 낮추십시오.파워셸*의 내용을 최소한 표면적으로 이해하기 시작할 때까지.추신1.

스크립트가 실수로 실행되는 것을 방지하기 위해 만들어진 실행 정책이라는 개념도 있습니다. 다섯 가지 시작 정책 설정이 있습니다.

  • 제한적 –기본적으로 설치되면 Microsoft에서 서명한 스크립트만 실행되어 컴퓨터의 하드웨어 및 소프트웨어 셸에 대한 정보를 얻을 수 있습니다.
  • 삭제된 파일 서명이 있는 경우– 모든 매크로를 실행할 수 있지만 메일로 보낸 파일에는 서명이 필요합니다.
  • 신뢰할 수 있는 소스에 의해 디지털 서명됨– 서명된 모든 스크립트가 실행됩니다.
  • 제한 없는– 매크로를 실행합니다.
  • 우회로– 셸에서 제공되는 보안 시스템을 사용하지 않고 자체 보안 시스템을 만드는 프로그래머를 위한 것입니다.

“Get-ExecutionPolicy” 명령을 사용하면 현재 실행 정책 상태를 확인할 수 있습니다.보안 정책이 무엇이든 사용자는 실행하기에 충분한 권한이 없는 명령이 포함된 스크립트를 실행할 수 없습니다.

파워셸 실행

이제 이론에서 실습으로 이동할 때입니다. 따라서 스크립트를 실행하려면 디지털 서명을 받아야 합니다. 또는 두 번째 옵션이 더 간단합니다.

PowerShell 창을 여는 방법에는 여러 가지가 있습니다.

이는 두 가지 형태로 제공됩니다.

  • 클래식 콘솔;

  • 파워셸 ISE - 탭, 구문, 상황별 도움말, 상황별 및 기본 메뉴에 대한 지원을 추가하여 인터프리터 작업을 크게 촉진합니다.

시작

PS에 전화하는 가장 쉬운 방법은 시작을 이용하는 것입니다.

  1. 메뉴 열기(Windows 7에서는 “모든 프로그램”을 클릭하세요.)
  2. Windows PowerShell 디렉터리로 이동그리고 원하는 아이콘을 클릭하세요.

쌀. 4 – 시작을 통해 PS 실행

다음을 통해 PS에 전화할 수도 있습니다. 통합 검색 시스템.

명령 해석기

비표준 및 빠른 실행 방법을 선호하는 경우 실행 창을 사용하십시오. 시작에서 동일한 이름의 버튼과 Win + R 키 조합으로 열립니다.

대화 상자에서 우리는 다음과 같이 씁니다. "파워쉘"그리고 “Enter”를 누르세요.

Win+X

Windows 10에서는 WinX 메뉴에서 PS를 불러올 수 있습니다. 사실은 기본적으로 명령을 클릭하면 "명령줄" CMD를 엽니다. PowerShell로 대체할 수 있습니다.

작업 표시줄의 "속성"을 열고 "탐색" 탭에서 유일한 옵션 옆에 확인 표시를 하고 설정을 저장합니다.

명령줄에 "powershell"을 쓰거나 %WINDIR%\ 경로를 따라 실행 파일을 실행하여 PowerShell을 호출할 수 있습니다. 시스템32\ 32비트 시스템용 WindowsPowerShell\v1.0 및 %WINDIR%\ syswow64\모든 버전의 64비트 Windows용 WindowsPowerShell\v1.0.

쌀. 8 – 실행 파일이 저장된 디렉터리에서 PS를 실행합니다.

보안 정책 설정

조금 남았다– PowerShell이 ​​스크립트를 실행하도록 허용합니다. "Set-ExecutionPolicy RemoteSigned" 명령을 입력하고 "Y"를 누릅니다.

그게 다야. 이제 모든 cmdlet과 스크립트를 실행할 수 있습니다. 예를 들어 "Get-Process"를 실행하여 활성 프로세스 목록을 표시해 보겠습니다.

스크립트 실행

어떤 프로그램(Win 또는 구문이나 유효성 검사 지원이 포함된 유사한 프로그램을 사용하는 것이 더 좋음)이나 PowerShell ISE 프로그램에서 스크립트를 생성할 수 있습니다.

후자는 cmdlet에 대한 편리한 액세스, 스크립트 실행, 디버그 및 저장 기능을 제공합니다.

첫 번째 스크립트(실행 중인 프로세스 목록을 얻기 위한 것)를 작성하고 "파일" 메뉴를 통해 저장했으며 이를 실행해야 한다고 가정해 보겠습니다. 이는 세 가지 방법으로 수행됩니다.

1 PowerShell(또는 ISE)에서 스크립트의 전체 경로를 작성합니다.);

쌀. 13 – PowerShell ISE 창에서 스크립트 실행

중요한파일 경로에 공백이 없도록 하세요!

파워셸– Server 2008 이상에서 일상적인 작업을 단순화하기 위한 강력한 도구입니다. PowerShell의 중요한 장점은 스크립트와 가용성입니다. 그래픽 인터페이스 PS ISE를 갖춘 프로그램 버전. 여기에 포함된 명령은 cmdlet 형식으로 제공되므로 셸에 익숙해지고 각 명령의 의미를 이해할 수 있습니다. 보안 정책은 초보자가 자신의 컴퓨터에 해를 끼치는 것을 허용하지 않습니다.알 수 없는 소스에서 받은 스크립트, 디버깅 모드, 고유한 cmdlet 만들기, 기능 및 오류 처리 메커니즘은 프로그래머와 관리자에게 무한한 가능성을 열어줍니다.

스크립트를 실행하는 방법에는 여러 가지가 있으며 주요 방법은 다음과 같습니다.

  1. 파워셸 실행그 안에 스크립트를 실행합니다(예: C:\Scripts\test.ps1과 같이 파일 경로와 파일 이름을 입력하거나 cd C:\Scripts 명령을 사용하여 스크립트 폴더로 이동하여 실행합니다). 명령을 사용하여.\test.ps1) 쉘은 다양한 방법으로 찾고 실행할 수 있습니다. 한 가지 방법은 시작 메뉴를 이용하는 것입니다. Windows 7의 경우 - "모든 프로그램" - "보조프로그램" - "Windows PowerShell"로 이동하여 "Windows PowerShell" 셸을 실행해야 합니다. Windows 10의 경우 문자 "W"가 있는 그룹을 찾아야 하며 그 안에 "Windows PowerShell"이 있습니다.
  2. "Windows PowerShell ISE" 실행프로그램은 PowerShell 자체와 함께 기본적으로 사용할 수 있는 PowerShell 스크립트를 편집하고 디버그할 수 있는 개발 환경입니다. 실행한 후에는 "열기" 버튼을 클릭하거나 파일 - 열기 메뉴로 이동하여 원하는 스크립트를 선택한 다음 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) echo $var1, $var2, $var3

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

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

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

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

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

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

PowerShell은 광범위한 기능을 갖춘 대체 명령줄입니다. 시스템 프로세스에 정통한 많은 컴퓨터 소유자는 특정 프로세스와 PC 설정을 스스로 변경하기 위해 Windows 10 및 이 소프트웨어의 이전 버전에서 이를 사용할 수 있는 가능성에 관심이 있습니다.

PowerShell을 사용하는 데 복잡한 것은 없습니다. 이 글의 모든 지침을 따르기만 하면 성공할 것입니다.

이 주제의 전문가가 아니고 명령줄과 명령줄에서 수행할 수 있는 작업을 이제 막 연구하기 시작한 경우 해당 응용 프로그램 사용에 대한 주요 질문에 대한 답을 아는 것이 유용할 것입니다. 예를 들어 Windows PowerShell ISE Windows 10을 실행하고 스크립트를 작성하고 작업하는 방법이 있습니다.

PowerShell을 어떻게 여나요?

이 작업은 다음 중 여러 가지 방법으로 수행할 수 있습니다.

  • - 일반 구성 요소 목록에서 문자 W 아래에 있는 응용 프로그램을 찾을 수 있습니다.
  • 작업 표시줄에서 검색 사용 - 작업 표시줄을 열고 PowerShell이라는 단어를 입력하여 검색합니다.
  • "실행" 메뉴를 사용하여 Win + R 조합을 통해 실행하고 유틸리티 이름을 쓰면 시스템에서 찾을 수 있습니다.
  • Commander에서 PowerShell 작업을 설정합니다. 단, 별도의 창이 아닌 이미 실행 중인 라인을 통해 애플리케이션으로 작업한다는 점을 알아야 합니다.
  • Windows 설정에서 작업 표시줄 속성 및 시작 메뉴를 선택합니다. "탐색" 탭에서 "명령줄을 PowerShell로 바꾸기..." 옆의 확인란을 선택합니다. 이제 Win+X 조합을 사용하여 유틸리티를 활성화할 수 있습니다.

스크립트를 작성하고 실행하는 방법은 무엇입니까?

PowerShell 스크립트를 만들고 실행하는 방법은 무엇입니까? 이 작업은 메모장에서 간단히 수행할 수 있습니다. 이를 사용하여 새 문서에 필요한 명령을 표시하십시오. 그런 다음 저장하고 형식을 .ps1로 변경합니다. 이는 이 시스템 유틸리티 파일의 확장자입니다.

다음과 같이 애플리케이션 자체에서 스크립트를 작성할 수 있습니다.

  • 그것을 실행하십시오.
  • "만들기" 항목을 클릭하세요.
  • 또는 "파일"을 클릭하고 나타나는 목록에서 "만들기"를 선택하십시오.
  • 실행해야 하는 모든 명령을 작성하고 파일을 저장합니다.

FAR Manager에서 스크립트를 계속 작성하고 편집할 수 있지만 표준 cmd 라인을 통해 이러한 유형의 파일을 표시하므로 이러한 애플리케이션에서 직접 사용할 수는 없습니다. 그러나 다른 작업은 "기본" 유틸리티와 동일한 방식으로 수행됩니다.

다음과 같은 방법으로 스크립트를 실행할 수 있습니다.

  1. PowerShell에 관리자로 로그인합니다.
  2. cd 명령을 사용하여 필요한 파일의 위치를 ​​지정합니다. 예를 들어, e: cd\ cd work .\ filename. Ps1 또는 e: \work\filename.ps1
  3. 이 경우 e:는 파일이 있는 하드 드라이브의 이름입니다.
  4. 엔터 키를 치시오.

명령을 처음 실행할 때 프로그램은 "이 시스템에서 스크립트 실행이 금지되어 있기 때문에 ___ .Ps1 파일을 로드할 수 없습니다..."라는 텍스트가 포함된 메시지를 확실히 표시합니다. 사실 Windows에는 개발자 덕분에 간섭 방지 기능이 탑재되어 있으므로 기본적으로 사용자 중 누구도 이러한 작업을 수행할 수 있는 권한이 없습니다. 그러나 이 제한은 매우 쉽게 피할 수 있습니다.

어떻게? 오류와 함께 표시되는 텍스트에서는 자세한 정보를 얻으려면 get-help about_signing 명령을 입력하는 것이 좋습니다. 다음 지침을 따르거나 Set-ExecutionPolicy 원격 서명 조합을 사용할 수 있습니다. 입력 후 확인이 필요하며 제한이 제거됩니다.

사용에 관한 기타 질문

많은 사람들이 다음과 같은 질문을 가지고 있습니다. PowerShell 버전을 확인하는 방법은 무엇입니까? 이렇게 하려면 다음을 수행하십시오.

  1. $PSVersionTable을 입력합니다.
  2. 이것이 아무 것도 발생하지 않으면 버전 1.0이 있는 것입니다. 이에 대한 $host.version 명령이 있습니다.
  3. 그렇지 않으면 PC에 설치된 애플리케이션 버전에 대한 자세한 정보가 표시됩니다.

1. 스크립트 작성

버전에 관계없이 PowerShell 스크립트는 *.ps1 확장자를 가진 텍스트 파일입니다.

다음은 간단한 Power Shell 스크립트(파일 systemInfo.ps1)의 예입니다.

# 운영 체제에 대한 WMI 개체를 검색합니다.

Get-WmiObject Win32_OperatingSystem

이 파일은 예를 들어 FAR Manager에서 생성하고 편집할 수 있습니다.

메모해당 FAR Manager는 Power Shell 콘솔에서 작동할 수 있지만 일반 Windows 콘솔 환경에서 자체적으로 스크립트를 실행합니다. cmd . 즉, FAR Manager는 PowerShell 스크립트를 생성하고 편집하는 데만 사용할 수 있으며 실행에는 사용할 수 없습니다. 하지만 실망하기 전에 3번 항목을 읽어보세요.

2. 스크립트 실행

스크립트는 일반 Windows 콘솔이 아닌 Power Shell 콘솔에서 실행되어야 합니다. Power Shell 콘솔에서 다음 명령을 사용하여 스크립트가 있는 디렉터리로 이동해야 합니다. CD ) 그런 다음 스크립트 자체를 실행하고 앞에 문자가 포함되었는지 확인합니다.".\" . 예를 들어 스크립트 파일의 경로가 있습니다. d:\work\systemInfo.ps1 . 그러면 시작 명령은 다음과 같습니다.

CD\

CD 작업

.\systemInfo.ps1

또는 다음과 같습니다(스크립트의 전체 경로를 지정하기만 하면 됩니다).

d:\work\systemInfo.ps1

대부분의 경우 스크립트를 실행할 때 다음 오류가 나타날 수 있습니다.

이 시스템에서는 스크립트 실행이 허용되지 않으므로 D:\work\systemInfo.ps1 파일을 로드할 수 없습니다. 자세한 내용을 보려면 "get-help about_signing"을 입력하세요.

줄:1 문자: 18

CategoryInfo: 지정되지 않음: (:), PSSecurityException

FullyQualifiedErrorId: RuntimeException

기본적으로 Power Shell에는 명령줄에서 PowerShell 명령을 실행할 수 있는 최대 보안 정책이 활성화되어 있지만 동일한 명령줄에서 PowerShell 명령을 사용하여 스크립트를 실행할 수 없기 때문에 오류가 나타납니다.

PowerShell 스크립트 실행을 활성화하려면 *.bat 파일(예: 다음 콘텐츠가 포함된 활성화Script.bat)을 생성해야 합니다.

powershell -Command Set-ExecutionPolicy RemoteSigned

이 *.bat 파일은 PowerShell 또는 일반 콘솔 등 모든 콘솔에서 실행될 수 있습니다. cmd . 이 파일을 실행하면 PowerShell 스크립트가 PowerShell 콘솔에서 실행됩니다.

3. 일반 Windows cmd 콘솔에서 PowerShell 스크립트 실행

PowerShell 스크립트는 일반 Windows 콘솔에서도 실행할 수 있습니다. 이렇게 하려면 다음 명령을 사용할 수 있습니다.

Powershell -파일 ./systemInfo.ps1

이렇게 하면 FAR Manager에서 직접 스크립트를 실행할 수 있으며 작동합니다.

그러나 여기에는 약간의 미묘함이 있습니다. 매개변수-파일 경로가 상대 경로인 경우에도 로컬 경로에서만 실행됩니다."./" . 즉, *.ps1인 경우 - 파일이 로컬 디스크에 있습니다. C: 또는 D: , 그런 호출이 작동합니다. 그러나 도메인 리소스에 있는 스크립트를 실행하려고 하면 해당 스크립트를 찾을 수 없습니다. 아마도 이 문제는 PowerShell의 향후 버전에서 수정될 것입니다.