Trong khi loạt bài này không có cấu trúc xung quanh bài kiểm tra, việc học PowerShell là một trong những điều quan trọng nhất bạn có thể làm với tư cách là quản trị viên mạng, vì vậy nếu bạn muốn tìm hiểu về sự nghiệp CNTT của mình thì đây chính là nó. Thêm vào đó, nó rất vui.
Giới thiệu
PowerShell là công cụ tự động hóa mạnh mẽ nhất mà Microsoft cung cấp, cũng như cả ngôn ngữ trình bao và ngôn ngữ kịch bản.
Xin lưu ý rằng loạt bài này dựa trên PowerShell 3, được phát hành với Windows 8 và Server 2012. Nếu bạn đang chạy Windows 7, hãy tải xuống bản cập nhật PowerShell 3 trước khi tiếp tục.
Gặp gỡ Console và ISE
Có hai cách tương tác với PowerShell ngoài hộp, Bảng điều khiển và Môi trường kịch bản tích hợp - còn được gọi là ISE. ISE đã được cải thiện rất nhiều từ phiên bản ghê gớm đi kèm với PowerShell 2 và có thể được mở bằng cách nhấn tổ hợp phím Win + R để đưa ra một hộp chạy, sau đó gõ powershell_ise và nhấn Enter.
Sử dụng hệ thống trợ giúp
Trong các phiên bản trước của PowerShell, các tệp trợ giúp được bao gồm khi bạn cài đặt Windows. Đây là một giải pháp tốt cho hầu hết các phần nhưng lại cho chúng tôi với một vấn đề đáng kể. Khi nhóm trợ giúp PowerShell phải ngừng làm việc trên các tệp trợ giúp, các nhà phát triển PowerShell vẫn bận rộn mã hóa và thực hiện các thay đổi. Điều này có nghĩa là khi PowerShell được gửi, tệp trợ giúp không chính xác vì chúng không chứa các thay đổi mới hơn đã được thực hiện đối với mã. Để giải quyết vấn đề này, PowerShell 3 đi kèm với không có tập tin trợ giúp ra khỏi hộp và bao gồm một hệ thống trợ giúp cập nhật. Điều này có nghĩa là trước khi bạn làm bất cứ điều gì bạn sẽ muốn tải về các tập tin trợ giúp mới nhất. Bạn có thể làm điều đó bằng cách mở một Bảng điều khiển PowerShell và chạy:
Update-Help
Get-Help –Name Update-Help
Để trả lời câu hỏi thứ hai, có một cú pháp nhất định giúp các tệp theo dõi và ở đây là:
- Dấu ngoặc vuông xung quanh tên tham số và loại của nó có nghĩa là nó là một tham số tùy chọn và lệnh sẽ hoạt động tốt mà không có nó.
- Dấu ngoặc vuông quanh tên tham số có nghĩa là tham số là tham số vị trí.
- Điều ở bên phải của một tham số trong các dấu ngoặc nhọn cho bạn biết kiểu dữ liệu mà tham số đang mong đợi.
Trong khi bạn nên tìm hiểu để đọc cú pháp tệp trợ giúp, nếu bạn không chắc chắn về một tham số cụ thể chỉ cần nối thêm –Toàn toàn đến cuối lệnh get help của bạn và cuộn xuống phần tham số, nơi nó sẽ cho bạn biết thêm một chút về từng tham số tham số.
Get-Help –Name Update-Help –Full
Get-Help –Name *service*
Bảo vệ
Đây không phải là phần giới thiệu thích hợp mà không đề cập đến vấn đề bảo mật. Nỗi lo lớn nhất đối với nhóm PowerShell là PowerShell trở thành điểm tấn công mới nhất và lớn nhất đối với các kịch bản lệnh. Họ đã đặt một vài biện pháp an ninh để đảm bảo rằng điều này không xảy ra, vì vậy, hãy xem chúng.
Hình thức bảo vệ cơ bản nhất xuất phát từ thực tế là phần mở rộng tệp PS1 (phần mở rộng được sử dụng để biểu thị tập lệnh PowerShell) không được đăng ký với máy chủ PowerShell, nó thực sự được đăng ký với Notepad. Điều đó có nghĩa là nếu bạn nhấp đúp vào một tệp, nó sẽ mở bằng notepad thay vì chạy.
Thứ hai, bạn không thể chạy tập lệnh từ trình bao bằng cách chỉ cần nhập tên của tập lệnh, bạn phải chỉ định đường dẫn đầy đủ cho tập lệnh. Vì vậy, nếu bạn muốn chạy một kịch bản trên ổ đĩa C của bạn, bạn sẽ phải gõ:
C:
unme.ps1
Hoặc nếu bạn đã ở gốc của ổ đĩa C, bạn có thể sử dụng như sau:
unme.ps1
Cuối cùng, PowerShell có một cái gì đó gọi là Execution Policies, nó ngăn bạn khỏi việc chạy bất kỳ kịch bản cũ nào. Thực tế, theo mặc định, bạn không thể chạy bất kỳ tập lệnh nào và cần thay đổi chính sách thực thi của mình nếu bạn muốn được phép chạy chúng. Có 4 chính sách thực hiện đáng chú ý:
- Bị giới hạn: Đây là cấu hình mặc định trong PowerShell. Cài đặt này có nghĩa là không có tập lệnh nào có thể chạy, bất kể chữ ký của nó. Điều duy nhất có thể chạy trong PowerShell với cài đặt này là một lệnh riêng lẻ.
- AllSigned: Cài đặt này cho phép các tập lệnh chạy trong PowerShell. Tập lệnh phải có chữ ký số được liên kết từ nhà xuất bản đáng tin cậy. Sẽ có lời nhắc trước khi bạn chạy tập lệnh từ nhà xuất bản đáng tin cậy.
- RemoteSigned: Cài đặt này cho phép các tập lệnh được chạy, nhưng yêu cầu tập lệnh cấu hình và tập lệnh được tải xuống từ Internet có chữ ký số được liên kết từ nhà xuất bản đáng tin cậy. Các tập lệnh chạy từ máy tính cục bộ không cần phải được ký. Không có lời nhắc nào trước khi chạy tập lệnh.
- Không hạn chế: Điều này cho phép các tập lệnh chưa được ký chạy, bao gồm tất cả các tập lệnh và tệp cấu hình được tải xuống từ Internet. Điều này sẽ bao gồm các tệp từ Outlook và Messenger. Nguy cơ ở đây là chạy tập lệnh mà không có bất kỳ chữ ký hoặc bảo mật nào. Chúng tôi đã đề xuất rằng bạn không bao giờ sử dụng cài đặt này.
Để xem Chính sách thực hiện hiện tại của bạn được đặt là gì, hãy mở một Bảng điều khiển PowerShell và gõ:
Get-ExecutionPolicy
Lưu ý: Điều này sẽ cần phải được thực hiện từ Bảng điều khiển PowerShell nâng cao.
Set-ExecutionPolicy RemoteSigned
Disclaimer: Thuật ngữ thích hợp cho lệnh PowerShell là một lệnh ghép ngắn, và từ giờ trở đi chúng ta sẽ sử dụng thuật ngữ chính xác này. Nó chỉ cảm thấy thích hợp hơn khi gọi chúng là lệnh cho phần giới thiệu này.
Nếu bạn có bất kỳ câu hỏi nào, bạn có thể tweet tôi @taybgibb hoặc chỉ để lại nhận xét.