답변:
StackOverflow에 대한 Jeffrey Snover (PowerShell 디자이너)의 훌륭한 답변이 있습니다.
패러다임에 대한 가치 판단에 들어 가지 않고 PowerShell의 주요 장점은 .Net 통합 및 무능입니다. Windows 2008 서버부터 기본적으로 번들로 제공되며 2003 및 2003 R2의 서비스 팩에로드됩니다.
공정하게하기 위해 스크립팅을위한 몇 가지 다른 선택이 있습니다 (예 : Perl 및 Python). Python은 기본 .Net 통합을 원하는 경우 IronPython을 사용하는 옵션도 제공합니다. 실제로 IronPython은 디렉토리에 놓기 만하면 만족스럽게 설치됩니다. 별도의 설치 단계없이 응용 프로그램에 간단하게 번들로 묶을 수 있습니다.
Powershell의 주요 강점은 양날의 칼입니다. .net 객체를 스트리밍하는 것은 매우 유용하고 장점이 있지만 구성 요소가 프레임 워크에서 훌륭하게 작동하는 능력에 대해 더 많은 가정을합니다. 실제로 작동하려면 cmdlet으로 항목을 래핑해야합니다. 텍스트 출력은 다소 낮은 수준이며 구문 분석이 필요하지만 프레임 워크에서 훌륭하게 재생되는 구성 요소에 대한 부담이 줄어 듭니다.
시간이 지남에 따라 훨씬 더 많은 Windows 에코 시스템 (MS 및 타사 구성 요소 모두)이 cmdlet 래퍼와 함께 제공되므로 Powershell과 함께 작동합니다. 이런 일이 발생하면 Powershell의 사례가 훨씬 더 강력 해집니다.
역사적으로, 관리 측면에서 Windows의 주요 전통적 약점 중 하나는 스크립팅 지원이 부족하다는 것입니다. MS는 몇 년 전에 이것을 인식했으며 몇 번의 시도 (예 : WSH)를 거친 후 Powershell은 그 결함을 해결하기 위해 지금까지 MS의 가장 확실한 노력입니다.
장점 :-
작업 자동화 :-1000 대의 컴퓨터에 사용자를 추가하는 것과 같은 작업은 지루한 작업입니다. 그러나 powershell의 도움으로 간단한 스크립트를 작성해야하며 해당 스크립트가 실행되면 모든 클라이언트가 자동으로 구성됩니다. 따라서 단계를 자동으로 반복하여 시간을 절약합니다. 중앙 관리는 일회용 백업 및 복원에 사용되는 반면 Windows PowerShell 백업 / 복원 스크립트는 Windows 작업 스케줄러를 사용하여 개발 및 예약 할 수 있습니다. Windows PowerShell은 프로덕션 데이터베이스 대신 SQL 스냅 샷에 대해 실행할 수 있다는 이점이 있습니다. Windows PowerShell 명령의 매개 변수 중 하나를 사용하면 SQL 스냅 샷이 생성 된 다음 Windows PowerShell이 프로덕션 데이터베이스 대신 스냅 샷에 대해 작업을 실행합니다. 이렇게하면 백업 작업이 프로덕션 환경에 미치는 리소스 영향이 줄어 듭니다. Windows PowerShell을 사용하면 SharePoint 관리자는 백업 또는 복원 옵션을보다 세밀하게 제어 할 수 있습니다.
원격 기능 개선 :-중요성은 두 가지입니다. 첫째, Windows 7 데스크톱은 PowerShell 명령을 사용하여 서버와 통신 할 수 있습니다. 결과적으로 Windows 7 랩톱을 사용하는 기술자는 PowerShell 스크립트를 실행하여 서버를 원격으로 구성 할 수 있습니다. 둘째, 서버에있는 PowerShell로 작성된 클라이언트 로그온 스크립트는 Windows 7에서 더 쉽게 실행될 수 있습니다. 또한 Powershell을 사용하면 원격 시스템을 쉽게 제어하고 중요한 작업을 수행 할 수 있으며 이러한 변경 사항을 대규모로 쉽게 적용 할 수 있습니다. 원격은 네트워크 리소스를 사용합니다. 따라서 Powershell로 작업 할 때 GUI를 사용하지 않으므로 특정 작업에 필요한 대역폭이 줄어들고 네트워크 과부하 문제가 해결됩니다.
일관성 :-작업을 완료하기위한 정해진 절차가있는 경우, Windows Powershell을 사용하면 단계를 놓치지 않고 최대한 자동화 할 수 있으며 Powershell에서 자동화 할 수없는 내용을 묻는 메시지를 표시하게됩니다.
.NET 지원 :-Powershell은 .NET 프레임 워크를 지원합니다. 따라서 모든 시스템 기능을 powershell 스크립트에 쉽게 추가 할 수 있으므로 스크립트를 개발할 때 프로그래머에게 도움이됩니다. 따라서 VDI 작업을 자동화하는 것이 훨씬 쉽고 간단하며 효율적입니다.
수동 작업 감소 :-이제 관리자는 스크립트를 작성하여 가상 머신의 설정을 원격으로 생성, 삭제 또는 수정할 수 있습니다. 그는 개별 PC로 가서 작업을 수행 할 필요가 없습니다. 또한 모든 컴퓨터에서 작성된 스크립트를 사용할 수 있습니다. 따라서 관리자는 반복해서 다시 작성할 필요가 없습니다.
재사용 성 :-특정 작업을 수행하기 위해 작성된 스크립트는 나중에 사용하기 위해 저장 될 수 있으며 다른 스크립트와 결합하여 다른 작업을 수행 할 수도 있습니다. 따라서 스크립트를 실행하여 반복적 인 작업을 훨씬 간단한 방식으로 수행 할 수 있습니다. 이를 통해 관리자는 시스템 구성에 소요되는 시간과 비용을 절약 할 수 있습니다.
파이프 라이닝 지원 :-Powershell의 가장 큰 장점은 텍스트를 구문 분석하지 않고도 무엇이든 파이프 할 수 있다는 것입니다. 하나의 명령 출력을 새 세트에 대한 입력으로 제공 할 수 있으므로 복잡한 작업을 해결할 수 있습니다.