Geek School PowerShell을 사용하여 Windows를 자동화하는 방법 배우기
Geek School의이 버전에서는 Windows 환경에 구축 된 강력한 PowerShell 스크립팅 언어를 이해하고 IT 환경에서 알면 매우 유용합니다..
이 시리즈는 시험을 통해 구성되지는 않지만 PowerShell을 배우는 것은 네트워크 관리자로서 할 수있는 가장 중요한 일 중 하나이므로 IT 경력을 쌓는 데 도움이되는 것이 하나 있다면 바로 그 것입니다. 게다가, 그것은 아주 재미 있습니다..
소개
PowerShell은 Microsoft에서 제공해야하는 가장 강력한 자동화 도구이며, 셸 및 스크립팅 언어입니다..
이 시리즈는 Windows 8 및 Server 2012와 함께 제공되는 PowerShell 3을 기반으로합니다. Windows 7을 실행중인 경우 계속하기 전에 PowerShell 3 업데이트를 다운로드하십시오..
콘솔 및 ISE 만나기
PowerShell과 대화식으로 대화 할 수있는 두 가지 방법 인 Console과 ISE라고하는 통합 스크립팅 환경이 있습니다. ISE는 PowerShell 2와 함께 제공되는 무시 무시한 버전으로 크게 개선되었으며 Win + R 키보드 조합을 눌러 실행 상자를 표시 한 다음 powershell_ise를 입력하고 Enter 키를 눌러 열 수 있습니다.
보시다시피 ISE는 분할보기를 제공하므로 ISE의 하단에서 결과를 볼 수있는 동시에 신속하게 스크립트를 작성할 수 있습니다. 스크립트의 결과가 인쇄되는 ISE의 아래쪽 절반은 명령 프롬프트와 마찬가지로 REPL 프롬프트로 사용할 수도 있습니다. v3 ISE는 마침내 스크립트 창과 대화 형 콘솔에서 intellisense에 대한 지원을 추가했습니다..
또는 PowerShell Console을 사용하여 PowerShell과 상호 작용할 수 있습니다. PowerShell Console은이 시리즈의 대부분에서 사용할 것입니다. PowerShell Console은 명령 프롬프트와 매우 유사하게 작동합니다. 명령을 입력하면 결과가 누출됩니다. Windows PowerShell 콘솔을 열려면 다시 Win + R 키보드 조합을 눌러 실행 상자를 열고 powershell을 입력 한 다음 Enter 키를 누릅니다..
REPL은 즉각적인 만족을 위해 매우 좋습니다 : 명령을 입력하면 결과를 얻을 수 있습니다. 콘솔이 인텔리 센스를 제공하지는 않지만 거의 동일한 기능을 수행하는 탭 완성이라는 기능을 제공합니다. 간단히 명령을 입력하고 탭을 눌러 가능한 일치 항목을 순환합니다.
도움말 시스템 사용
이전 버전의 PowerShell에서는 Windows를 설치할 때 도움말 파일이 포함되었습니다. 이것은 대부분 좋은 해결책 이었지만 중요한 문제로 남았습니다. PowerShell 도움말 팀이 도움말 파일 작업을 중단해야 할 때 PowerShell 개발자는 여전히 코딩 및 변경 작업을 수행하고있었습니다. 즉, PowerShell이 제공 될 때 도움말 파일은 코드에 대한 새로운 변경 내용이 포함되어 있지 않기 때문에 올바르지 않습니다. 이 문제를 해결하기 위해 PowerShell 3에는 상자 밖의 도움말 파일이 없으며 업데이트 가능한 도움말 시스템이 포함되어 있습니다. 즉, 무엇보다 먼저 최신 도움말 파일을 다운로드해야합니다. PowerShell Console을 열고 다음을 실행하면됩니다.
업데이트 도움말
첫 번째 PowerShell 명령을 실행하신 것을 축하드립니다! 진실은 Update-Help 명령이 단순히 명령을 실행하는 것보다 훨씬 더 많은 옵션을 가지고 있으며 명령을 보려면 도움말을 보려합니다. 명령에 대한 도움말을 보려면 Get-Help 명령의 Name 매개 변수에 도움이 필요한 명령의 이름을 전달하면됩니다. 예를 들면 다음과 같습니다.
Get-Help -Name 업데이트 도움말
어쨌든이 모든 텍스트를 해석하는 방법에 대해 궁금해 할 것입니다. 왜 구문 섹션 아래에 두 가지 정보가 있으며 왜 그곳에 많은 괄호가 있습니까? 가장 먼저해야 할 일 : 구문 섹션에서 두 가지 정보 블록이있는 이유는 명령을 실행하는 여러 가지 방법을 나타 내기 때문입니다. 이들은 기술적으로 매개 변수 집합이라고하며 한 번에 하나씩 만 사용할 수 있습니다 (다른 집합의 매개 변수는 혼합 할 수 없음). 위의 스크린 샷에서 상단 매개 변수 집합에는 SourcePath 매개 변수가 있고 하단에는 매개 변수가 없음을 볼 수 있습니다. 소스 파일을 이미 다운로드 한 다른 컴퓨터에서 도움말 파일을 업데이트하는 경우 최상위 매개 변수 집합 (SourcePath가 포함 된 집합)을 사용해야하는 이유는 원본 경로를 지정할 필요가 없지만 Microsoft의 최신 파일을 얻고 싶었습니다..
두 번째 질문에 대답하려면 도움말 파일을 따르는 특정 구문이 있습니다. 여기서는 다음과 같습니다.
- 매개 변수 이름과 그 유형을 나타내는 대괄호는 선택적 매개 변수임을 나타내며 명령은 매개 변수 이름 없이도 올바르게 작동합니다..
- 매개 변수 이름 주위의 대괄호는 매개 변수가 위치 매개 변수임을 의미합니다..
- 각괄호 안의 매개 변수 오른쪽에있는 매개 변수가 예상하는 데이터 유형을 알 수 있습니다..
도움말 파일 구문을 읽는 방법을 배우는 동안 특정 매개 변수에 대해 확신이 없으면 도움말을 추가하고 매개 변수 섹션으로 스크롤하여 각 매개 변수에 대해 자세히 알려줍니다 매개 변수.
Get-Help -Name 업데이트 도움말 -Full
도움말 시스템에 대해 알아야 할 마지막 사항은 명령을 탐색하는 데 사용하는 방법입니다. 실제로는 매우 쉽습니다. PowerShell은 거의 모든 곳에서 와일드 카드를 사용할 수 있으므로 Get-Help 명령과 함께 사용하면 명령을 쉽게 찾을 수 있습니다. 예를 들어 Windows 서비스를 처리하는 명령을 찾고 있습니다.
Get-Help -Name * service *
물론,이 모든 정보는 박쥐에게 유용하지는 않지만, 나를 믿고, 시간을내어 도움말 시스템을 사용하는 방법을 배웁니다. 수년간 이것을 해왔 던 고급 스크립터에게도 항상 유용합니다..
보안
이것은 보안을 언급하지 않고 적절한 소개가되지 않을 것입니다. PowerShell 팀의 가장 큰 걱정은 PowerShell이 스크립트 키디에 대한 최신의 가장 큰 공격 지점이된다는 것입니다. 그들은 이런 일이 발생하지 않도록 몇 가지 보안 조치를 취하고 있습니다. 그래서 살펴 봅시다..
가장 기본적인 보호 형태는 PS1 파일 확장명 (PowerShell 스크립트를 나타내는 데 사용되는 확장명)이 실제로 메모장에 등록 된 PowerShell 호스트에 등록되어 있지 않다는 사실에서 비롯됩니다. 즉, 파일을 두 번 클릭하면 실행 대신 메모장에서 열립니다..
둘째, 스크립트의 이름을 입력하기 만하면 쉘에서 스크립트를 실행할 수 없으므로 스크립트의 전체 경로를 지정해야합니다. 따라서 C 드라이브에서 스크립트를 실행하려면 다음과 같이 입력해야합니다.
C : \ runme.ps1
또는 이미 C 드라이브의 루트에있는 경우 다음을 사용할 수 있습니다.
.\ runme.ps1
마지막으로 PowerShell에는 실행 정책이라고하는 무언가가 있습니다.이 스크립트는 이전 스크립트를 실행하지 못하도록합니다. 사실, 기본적으로 스크립트를 실행할 수 없으며 실행할 수 있도록하려면 실행 정책을 변경해야합니다. 4 가지 주목할만한 실행 정책이 있습니다.
- 한정된PowerShell의 기본 구성입니다. 이 설정은 서명에 관계없이 스크립트를 실행할 수 없음을 의미합니다. 이 설정으로 PowerShell에서 실행할 수있는 유일한 방법은 개별 명령입니다.
- AllSigned : 이 설정을 사용하면 PowerShell에서 스크립트를 실행할 수 있습니다. 스크립트에는 신뢰할 수있는 게시자의 디지털 서명이 있어야합니다. 신뢰할 수있는 게시자의 스크립트를 실행하기 전에 프롬프트가 표시됩니다..
- RemoteSigned:이 설정을 사용하면 스크립트를 실행할 수 있지만 인터넷에서 다운로드 한 스크립트 및 구성 파일에는 신뢰할 수있는 게시자의 디지털 서명이 있어야합니다. 로컬 컴퓨터에서 실행되는 스크립트는 서명 할 필요가 없습니다. 스크립트를 실행하기 전에 프롬프트가 표시되지 않습니다..
- 제한되지 않음: 인터넷에서 다운로드 한 모든 스크립트 및 구성 파일을 포함하여 서명되지 않은 스크립트를 실행할 수 있습니다. 여기에는 Outlook 및 Messenger의 파일이 포함됩니다. 여기서 위험은 서명이나 보안없이 스크립트를 실행하는 것입니다. 우리는 당신이 우리에게 결코이 설정을하지 않기를 재촉했다..
현재 실행 정책이 무엇인지 확인하려면 PowerShell 콘솔을 열고 다음을 입력하십시오.
Get-ExecutionPolicy
이 과정과 다른 대부분의 상황에서 RemoteSigned 정책이 가장 좋습니다. 따라서 다음을 사용하여 정책을 변경하십시오..
참고 :이 작업은 높은 PowerShell 콘솔에서 수행해야합니다..
Set-ExecutionPolicy RemoteSigned
그게이시기의 모든 사람들입니다. 내일 PowerShell 재미를 좀 보시고.
면책 조항 : PowerShell 명령의 적절한 용어는 cmdlet이며 지금부터는이 올바른 용어를 사용합니다. 이 소개를 위해 명령이라고 부르는 것이 더 적절하다고 느꼈습니다..
질문이 있으시면 @taybgibb에 트위터를 올리거나 댓글을 남길 수 있습니다..