Computer >> Hướng Dẫn Máy Tính >  >> Xử Lý Sự Cố >> Bảo Trì Máy Tính

Tăng Năng Suất Với Windows PowerShell Scripts

Điều gì xảy ra nếu bạn có thể mang năng suất của Linux sang Windows? Một trong những khác biệt chính giữa Windows và Linux là hầu hết các distro Linux đi kèm với powerful Bash shell; so sánh lại, command prompt trong Windows là cơ bản. Điều gì xảy ra nếu Windows có một terminal mạnh ngang ngửa?

Với PowerShell, giấc mơ đó có thể thành hiện thực.

Lưu ý: PowerShell không phải là "Bash cho Windows" cũng không được thiết kế để như vậy. Có, cả hai là môi trường dòng lệnh có thể cải thiện năng suất lớn, nhưng sự tương đồng dừng lại ở đó. Bạn nên xem PowerShell như cách tiếp cận riêng biệt để tạo môi trường dòng lệnh mạnh mẽ.

PowerShell Là Gì?

PowerShell có thể coi như một bản nâng cấp lớn cho Windows command prompt. Nó có thể thực hiện nhiều tác vụ giống nhau (ví dụ: điều hướng hệ thống, tương tác file, sửa đổi thuộc tính), nhưng mở ra toàn bộ .NET framework cho sức mạnh tối đa. Để hiểu lợi ích của điều này, hãy đọc tiếp.

Có hai lợi ích cốt lõi làm PowerShell tốt hơn command prompt truyền thống: extensibility (khả năng mở rộng) và scriptability (khả năng scripting).

Tăng Năng Suất Với Windows PowerShell Scripts

Mặc dù PowerShell đi kèm bộ lệnh ban đầu, bạn có thể thêm lệnh riêng bằng cách tạo cmdlet. Cmdlet là các class được tạo bằng ngôn ngữ C# và khi được gọi, chúng được thực thi trong môi trường PowerShell. Vì chúng được viết bằng C#, cmdlet có quyền truy cập vào toàn bộ .NET framework.

.NET framework chứa thư viện mã khổng lồ do Microsoft cung cấp. Khi viết cmdlet riêng, bạn có quyền truy cập vào tất cả mã đó. Lấy thông tin tiến trình? Thuật toán mã hóa? Kết nối database? Giao tiếp mạng? Tất cả những đó – và hơn nữa – được cung cấp bởi .NET framework, nghĩa là hầu hết công việc đã được làm sẵn. Bạn chỉ cần ghép chúng lại bằng cách gọi đúng hàm.

Microsoft đã làm rõ PowerShell không đi đâu – thực tế, package manager sắp tới trong Windows 10 sẽ dựa trên PowerShell – nên mọi người nên cân nhắc học nó sớm hơn là muộn.

Tại Sao PowerShell Tuyệt Vời

PowerShell có nhiều tính năng nâng cao, phần lớn chỉ liên quan cho lập trình viên Windows và server admin, nhưng có vài tính năng cơ bản dễ hiểu, lại cực kỳ hữu ích cho mọi người.

Tăng Năng Suất Với Windows PowerShell Scripts

Đơn giản nhưng mạnh mẽ. Môi trường PowerShell đủ dễ để ai cũng có thể nắm bắt trong vài giờ đọc. Có đường cong học tập, nhưng nó tương đối nông và bạn không cần học tất cả để sử dụng.

Thông tin tiến trình chi tiết. Việc dùng alternative task manager là một chuyện, nhưng PowerShell cho phép bạn thực hiện vài trò hay ho về quản lý tiến trình. Bắt đầu với cmdlet gốc Get-Process và Stop-Process.

Tự động hóa và scripting dễ dàng. Windows cơ bản không cung cấp cách dễ dàng để tự động hóa tác vụ. Trước PowerShell, batch file chỉ có thể thực hiện scripting nguyên thủy trong khi giải pháp thứ ba cần thiết cho tự động hóa (ví dụ: Perl, AutoHotkey). Nhưng với PowerShell, bạn có thể lên lịch tác vụ chạy tại thời điểm hoặc khoảng thời gian cụ thể.

Ví dụ, với module ScheduledTasks, bạn có thể khiến một chương trình hoặc tiến trình cụ thể thực thi theo trigger (ví dụ: tại thời điểm cụ thể, khi sự kiện hệ thống xảy ra, v.v.) và bạn có thể định nghĩa ngữ cảnh cho tác vụ đó (ví dụ: giới hạn bảo mật).

Command piping và logic. Trong Bash (Linux), lệnh có thể được pipe (ống dẫn) với nhau sao cho output của lệnh này làm input cho lệnh khác. Ví dụ, cmdlet Get-Process cơ bản xuất thông tin cho tất cả tiến trình đang chạy. Điều gì nếu bạn chỉ muốn info từ một tập con tiến trình? Bạn có thể pipe nó với cmdlet Where-Object, đóng vai bộ lọc tiến trình, để chỉ thực thi Get-Process trên tiến trình được Where-Object trả về.

PowerShell cũng cung cấp vài lệnh gốc cho logic điều kiện (ví dụ: If, Else, For, Switch) có thể dùng để kiểm soát luồng thực thi cmdlet. Ví dụ, bạn có thể tạo script PowerShell chỉ thực thi cmdlet nhất định khi điều kiện nhất định được đáp ứng (ví dụ: dọn dẹp tiến trình khi RAM gần đầy).

Remote và background jobs. Không chỉ cmdlet có thể thực thi như background process (để bạn chạy nhiều tác vụ cùng lúc bất đồng bộ), nhiều cmdlet cũng có thể thực thi trên máy từ xa trên mạng miễn là chúng đã được cấu hình để làm vậy. Cmdlet có khả năng remote thường cung cấp tham số ComputerName mà bạn có thể chỉ định khi thực thi cmdlet đó.

Để biết thêm, xem trang TechNet về chạy lệnh remote với PowerShell.

Tải script thứ ba. Bạn không thực sự phải mở rộng PowerShell mình. Một vài repository trực tuyến cho phép bạn tải và sử dụng script và cmdlet công khai mà người khác đã tạo.

Tăng Năng Suất Với Windows PowerShell Scripts

Học PowerShell Ở Đâu

Sẵn sàng làm bẩn tay với PowerShell? Đây là vài nguồn thường được khuyến nghị cho người mới muốn bắt đầu học càng sớm càng tốt:

PowerShell Tutorial by Don Jones. Series video YouTube này tập trung vào PowerShell 2.0 (phiên bản đi kèm Windows 7), hơi cũ rồi, nhưng cung cấp giới thiệu tốt cho những người hoàn toàn không có kinh nghiệm scripting. Mỗi video chỉ vài phút, nhưng có 99 video, nên khá toàn diện.

Microsoft Virtual Academy. MVA cung cấp nhiều khóa học Microsoft miễn phí, bao gồm hai khóa về PowerShell 3.0. Có khóa Getting Started và Advanced Tools & Scripting. Cả hai khóa chứa 9 bài học mỗi khóa, mỗi bài khoảng 1 tiếng.

Tăng Năng Suất Với Windows PowerShell Scripts

TechNet Script Center. Phần TechNet của trang web Microsoft bao gồm nhiều link hay đến hướng dẫn và tutorial PowerShell. Thêm vào đó, nếu bạn điều hướng đến phần Repository, bạn có thể duyệt và tải các script PowerShell khác nhau.

Hey, Scripting Guy! Blog [URL hỏng đã xóa]. Đây là blog "tất tần tật về PowerShell" với RẤT NHIỀU thông tin tuyệt vời kéo dài gần một thập kỷ. Bài mới đăng hàng ngày và được phân loại bằng tag để dễ duyệt. Nếu không biết bắt đầu đâu, hãy duyệt tag Getting Started [URL hỏng đã xóa].

PowerShell Có Phải Cho Bạn?

Bạn nghĩ sao? PowerShell có giúp năng suất Windows của bạn? Hay nó quá overkill cho nhu cầu của bạn? Chia sẻ suy nghĩ với chúng tôi trong bình luận!