Câu trả lời:
Có một câu trả lời tuyệt vời từ Jeffrey Snover (nhà thiết kế PowerShell) trên StackOverflow:
Ưu điểm rõ ràng nhất: Miễn là không có đầu ra văn bản (hoặc lệnh kế thừa) có liên quan đến một đường ống, bạn không di chuyển văn bản qua các đường ống, mà là các phiên bản của các đối tượng khung .NET, với tất cả các thuộc tính và phương thức của chúng.
Điều này cho phép xử lý đường ống rõ ràng hơn và ít mơ hồ hơn, hoàn toàn không bị ảnh hưởng bởi cài đặt ngôn ngữ và ngôn ngữ (ví dụ: nghĩ về định dạng ngày hoặc số và cách bạn phải coi chúng là chuỗi thông thường).
Điều này cũng có nghĩa là bạn có quyền truy cập vào rất nhiều khả năng của .NET framework trong môi trường script.
Không đi sâu vào các đánh giá giá trị về mô hình, các ưu điểm chính của PowerShell là tích hợp và bảo hiểm .Net - từ máy chủ Windows 2008 trở đi, nó được gói theo mặc định và được tải trong các gói dịch vụ trên 2003 và 2003 R2.
Để công bằng, có một số lựa chọn khác cho kịch bản - ví dụ Perl và Python. Python cũng cung cấp cho bạn tùy chọn sử dụng IronPython nếu bạn muốn tích hợp .Net gốc. Trên thực tế, IronPython sẽ cài đặt thỏa đáng bằng cách chỉ cần thả nó vào một thư mục. Bạn có thể gói nó một cách tầm thường trong một ứng dụng mà không cần một bước cài đặt riêng.
Sức mạnh chính của Powershell là một con dao hai lưỡi. Mặc dù truyền phát các đối tượng .net khá hữu ích và có những ưu điểm của nó, nhưng nó đặt ra nhiều giả định hơn về khả năng của các thành phần để chơi độc đáo với khung. Để làm việc này thực sự hiệu quả, bạn cần phải bọc mọi thứ bằng lệnh ghép ngắn. Mặc dù đầu ra văn bản có phần thấp hơn và yêu cầu phân tích cú pháp, nó đặt ít gánh nặng hơn cho các thành phần để chơi độc đáo với khung.
Theo thời gian, tôi hy vọng sẽ thấy nhiều hơn nữa hệ sinh thái Windows (cả MS và các thành phần của bên thứ ba) đi kèm với các trình bao bọc cmdlet để chúng hoạt động với Powershell. Khi điều này xảy ra, trường hợp của Powershell sẽ trở nên mạnh mẽ hơn nhiều.
Trong lịch sử, một trong những điểm yếu truyền thống quan trọng của Windows từ góc độ quản trị là hỗ trợ kịch bản kém. MS đã nhận ra điều này một số năm trước và sau một vài nỗ lực khập khiễng (ví dụ WSH) Powershell là nỗ lực đáng tin cậy nhất của MS cho đến nay để khắc phục sự thiếu hụt đó.
Tôi nghĩ rằng chiến thắng lớn nhất cho powershell là bạn có thể chuyển mọi thứ sang bất cứ thứ gì mà không cần phải phân tích văn bản và / hoặc mò mẫm sed và awk. Không đưa những vật thể khó chịu đó vào thế giới, hãy nghĩ về powershell như có sed tự động và awk để liên kết các lệnh trong một đường ống.
Ưu điểm: -
Tự động hóa các tác vụ: - Các tác vụ như thêm người dùng vào 1000 máy là một công việc tẻ nhạt theo cách thủ công. Nhưng với sự trợ giúp của powershell, bạn chỉ cần viết một tập lệnh đơn giản và tập lệnh đó được chạy, nó sẽ tự động cấu hình tất cả các máy khách. Do đó, nó tiết kiệm thời gian bằng cách lặp lại các bước tự động. Các tập lệnh sao lưu \ khôi phục Windows PowerShell có thể được phát triển và lên lịch (với Bộ lập lịch tác vụ Windows), trong khi Quản trị trung tâm được sử dụng để sao lưu và khôi phục sử dụng một lần. Windows PowerShell có lợi thế là chạy với các ảnh chụp nhanh SQL thay vì cơ sở dữ liệu sản xuất. Một trong các tham số của lệnh Windows PowerShell sẽ khiến ảnh chụp nhanh SQL được tạo và sau đó Windows PowerShell sẽ chạy hành động đối với ảnh chụp nhanh thay vì cơ sở dữ liệu sản xuất. Điều này sẽ làm giảm tác động tài nguyên của hoạt động sao lưu trên môi trường sản xuất. Với Windows PowerShell, quản trị viên SharePoint sẽ có quyền kiểm soát chi tiết hơn các tùy chọn để sao lưu hoặc khôi phục.
Cải thiện khả năng từ xa: - Tầm quan trọng là gấp đôi, trước tiên, máy tính để bàn Windows 7 có thể giao tiếp với máy chủ bằng các lệnh PowerShell. Kết quả là các kỹ thuật viên với máy tính xách tay Windows 7 có thể định cấu hình máy chủ của họ từ xa bằng cách chạy các tập lệnh PowerShell. Thứ hai, các kịch bản đăng nhập của máy khách được viết bằng PowerShell, nằm trên máy chủ, có thể chạy trên Windows 7 dễ dàng hơn. Cũng sử dụng powershell, chúng ta có thể dễ dàng điều khiển các máy từ xa, có thể thực hiện các tác vụ quan trọng trên chúng và có thể dễ dàng áp dụng những thay đổi này trên quy mô lớn. Từ xa sử dụng tài nguyên mạng. Vì vậy, khi chúng tôi sẽ làm việc với powershell, chúng tôi không sử dụng GUI và do đó, băng thông cần thiết cho một tác vụ nhất định sẽ giảm và vấn đề quá tải mạng được giải quyết.
Tính nhất quán: - Nếu bạn có một quy trình được thiết lập để hoàn thành một tác vụ, sử dụng Windows Powershell sẽ đảm bảo bạn không bao giờ bỏ lỡ một bước nào, tự động hóa càng nhiều càng tốt và Powershell sẽ nhắc bạn về những thứ không thể tự động.
Hỗ trợ .NET: - Powershell hỗ trợ .NET framework. Do đó, tất cả các chức năng hệ thống có thể dễ dàng được thêm vào các tập lệnh powershell và do đó là một trợ giúp cho lập trình viên trong việc phát triển các tập lệnh. Do đó, tự động hóa các nhiệm vụ của VDI dễ dàng hơn, đơn giản và hiệu quả hơn nhiều.
Công việc thủ công ít hơn: - Quản trị viên giờ đây có thể tạo, xóa hoặc sửa đổi cài đặt của các máy ảo từ xa chỉ bằng cách viết các tập lệnh. Anh ta không có nhu cầu đi đến máy tính cá nhân và hoàn thành công việc. Ngoài ra các kịch bản được viết là chấp nhận được trên tất cả các máy tính. Vì vậy, quản trị viên không cần phải viết lại chúng nhiều lần.
Khả năng sử dụng lại: - Các tập lệnh một khi được viết để thực hiện một tác vụ cụ thể có thể được lưu trữ cho các mục đích sau này và cũng có thể được kết hợp với các tập lệnh khác để thực hiện các tác vụ khác nhau. Vì vậy, các tác vụ lặp đi lặp lại có thể được thực hiện theo cách đơn giản hơn nhiều chỉ bằng cách chạy các tập lệnh. Điều này giúp người quản trị tiết kiệm thời gian và tiền bạc trong việc cấu hình máy.
Hỗ trợ đường ống: - Chiến thắng lớn nhất cho powershell là bạn có thể đặt bất cứ thứ gì vào bất cứ thứ gì mà không phải phân tích văn bản. Bạn có thể cung cấp đầu ra của một lệnh làm đầu vào cho tập hợp mới và do đó có thể giải quyết các tác vụ phức tạp.
Cygwin không được đảm bảo có sẵn cho mọi phiên bản Windows. Lần cuối tôi kiểm tra nó là nghi vấn trên máy 64 bit. Powershell đang trở thành trình vỏ lệnh mặc định cho các cửa sổ và sẽ cung cấp quyền truy cập "gốc" cho tất cả các tài nguyên trên máy Windows.