Windows PowerShell은 시스템 관리자를 위해 특별히 설계된 Windows 명령줄 셸로, 대화형 DOS 스타일 명령줄 창과 스크립팅 환경을 포함하고 있으며 독립적으로 또는 함께 사용할 수 있습니다. 텍스트 메시지를 받고 보내는 대부분의 셸과 달리 Windows PowerShell은 .NET 공용 언어 런타임과 .NET Framework를 기반으로 구축되어 .NET 개체를 받고 응답합니다. 이러한 기능은 Windows 관리 및 구성을 위한 새로운 도구와 방법을 제공합니다.
파워셸
Windows PowerShell의 중요한 개념은 셸에 내장된 간단한 단일 기능 명령줄 도구인 "cmdlet"입니다. 사용자는 명령을 독립적으로 사용할 수 있지만 그 효과는 응용 프로그램의 작업과 환경에 따라 달라집니다. Windows PowerShell에는 100개 이상의 기본 명령줄이 포함되어 있으며 사용자는 자신만의 명령줄을 작성하고 이를 다른 사용자와 공유할 수 있습니다.
대부분의 셸과 마찬가지로 Windows PowerShell은 컴퓨터의 파일 시스템에 대한 액세스를 제공합니다. 또한 Windows PowerShell을 사용하면 파일 시스템에 액세스하는 것처럼 쉽게 레지스트리 및 디지털 서명 인증서와 같은 다른 저장된 데이터에 액세스할 수 있습니다.
Windows Server 2008 R2의 PowerShell은 2.0으로 업그레이드되어 원격 관리, 완전한 스크립팅 환경, 디버그 도구 등과 같은 많은 새로운 기능이 도입되었습니다. 이제 ISE의 새로운 기능과 PowerShell V2의 향상된 원격 기능을 자세히 살펴보겠습니다. .
1. 통합 스크립트 환경 ISE(통합 스크립트 환경)
PowerShell의 기본 요구 사항은 PowerShell 스크립트를 쉽게 작성하고 디버그할 수 있어야 한다는 것입니다. PowerShell v2는 통합 스크립트 환경 ISE(Integrated Script Environment)와 함께 번들로 제공되므로 ISE에는 스크립트 패널, 출력 패널 및 기타 기능이 포함되어 있습니다. 명령줄 패널.
ISE 패널
ISE 명령줄 패널은 PowerShell 명령줄 패널과 매우 유사합니다. 사용자는 여기에 명령을 입력하고 Enter 키를 눌러 명령을 실행할 수 있습니다. 명령의 실행 결과는 출력 패널에 표시되며 이전의 모든 명령 실행 결과를 명확하게 추적할 수 있습니다. 상단에 있는 스크립트 패널은 스크립트를 작성하고 디버그하는 데 사용할 수 있습니다. 스크립트 패널은 여러 스크립트를 함께 작동할 수 있도록 지원하므로 작동이 쉽습니다.
사용자가 스크립트를 디버깅하는 데 도움이 되도록 ISE에서는 사용자가 다양한 방법으로 디버깅 중단점을 설정할 수 있습니다. 특정 조건에서는 수동으로 또는 자동으로 설정할 수 있으며 후자는 더 나은 운영 환경을 제공합니다. 중단점을 설정하는 명령에서 사용자는 디버그 스크립트의 이름과 좌표를 지정해야 합니다.
Set-PSBreakpoint .[스크립트-파일-이름].ps1 -line X
브레이크 포인트를 여러 개 설정하려면 좌표 지정 시 쉼표로 구분해야 합니다.
Set-PSBreakpoint .[스크립트-파일-이름].ps1 -line X,Y,Z
특정 함수를 호출할 때 중단점을 설정하려면 Set-PSBreakpoint 명령, -Command 매개 변수 및 함수 이름을 사용해야 합니다.
Set-PSBreakPoint -Command [기능 이름]
ISE 디버거는 특정 변수를 읽거나 쓸 때 중단점을 설정할 수도 있습니다. 다음은 변수를 읽거나 쓸 때 중단점을 설정하는 명령입니다.
Set-PSBreakpoint -변수 [변수 이름] -모드 읽기
Set-PSBreakpoint -변수 [변수 이름] -모드 쓰기
중단점이 설정된 후에는 고유한 식별자를 갖게 됩니다. 비활성화-PSBreakpoint 명령을 통해 식별자를 삭제하면 중단점을 삭제할 수 있습니다.
비활성화-PSBreakpointX
2. PowerShell v2의 원격 기능 강화
PowerShell v2의 또 다른 중요한 기능은 새로운 명령줄 Invoke-Command를 추가하여 원격 작업 기능(PowerSell remoting)이 향상되었다는 것입니다. PowerSell Remoting은 현재 Vista SP1, Windows Server 2008 및 Windows 7을 실행하는 컴퓨터만 지원하며 해당 버전의 원격 관리 도구 WinRM을 설치해야 합니다. 즉, 사용자는 PowerShell 원격을 통해 설치된 PowerShell v2 및 WinRM이 있는 Vista SP1/Win 2008 컴퓨터에만 연결할 수 있으며 Vista(PowerShell만 설치 가능)가 설치된 컴퓨터와 WinXP 시스템은 지원되지 않습니다.
PowerShell v2 시스템 요구 사항 및 개선 사항
PowerShell 2.0의 CTP 시험판 버전에서는 Invoke-Expression 명령을 사용하여 원격 컴퓨터에 연결합니다.
호출 표현식 –computerName atl-fs-001 –command Get-Process
사용자가 원격 컴퓨터 atl-fs-001에서 Get-Process 명령을 실행하려는 경우 새로운 Invoke-Command 명령을 사용할 수 있습니다.
Invoke-Command –computerName atl-fs-001 –scriptblock
두 명령의 기본 매개 변수가 동일한 것을 볼 수 있습니다. PowerShell 팀은 Invoke-Expression 명령을 Invoke-Command로 교체하고, 명령에는 많은 변경 사항이 없지만 –command를 –scriptblock 매개 변수로 교체했습니다. , 작동 안정성, 안전성 및 성능이 향상되었습니다.
물론 이 명령은 여러 원격 컴퓨터를 지원할 수도 있습니다. 원격 컴퓨터 atl-fs-001, atl-fs-002 및 atl-fs-003에서 프로세스 정보를 얻으려면 다음 명령을 사용할 수 있습니다.
호출 명령 –computerName atl-fs-001, atl-fs-002, atl-fs-003 –scriptblock
여러 원격 컴퓨터 지원
Invoke-Expression 명령과 마찬가지로 Invoke-Command는 원격 컴퓨터에 연결하여 명령을 실행할 수 있지만 연결이 즉시 끊어집니다. 원격 컴퓨터에 대한 지속적인 연결이 필요한 경우 다음 명령을 사용하여 PowerShell 세션을 만들 수 있습니다.
$objRunspace = New-Runspace atl-fs-001, atl-fs-002, atl-fs-003
Invoke-Command 명령에 대한 추가 정보가 필요한 경우 다음 명령을 통해 지침과 예제를 얻을 수 있습니다.
Get-Help 호출 명령 –full |