Microsoft PowerShell là một tiện ích dòng lệnh và ngôn ngữ kịch bản, là công cụ mạnh mẽ dành cho các quản trị viên, giúp người dùng có thể tự động hóa hàng loạt nhiệm vụ cho máy tính và mạng. PowerShell chứa các thành phần của Command Prompt và được xây dựng trên framework .NET. Nếu bạn đang tìm hiểu về Windows Server, thì bạn cần biết rằng PowerShell chính là công cụ được sử dụng phổ biến trong Windows

Học cách sử dụng PowerShell sẽ giúp đơn giản hóa nhiều công việc tẻ nhạt hàng ngày. Bạn cũng có thể thực hiện các thay đổi toàn hệ thống thông qua mạng mà không phải điều chỉnh riêng lẻ cho từng máy chủ. PowerShell đang trở thành một phần thiết yếu trong việc vận hành môi trường đám mây lai.

PowerShell có rất nhiều cách sử dụng khác nhau giúp làm việc tối ưu hơn và giữ cho mạng hoạt động hiệu quả. Những cách sử dụng cơ bản nhất bao gồm: lên lịch cập nhật hàng ngày trên các hệ thống, tạo báo cáo cho những tiến trình hiện tại, dịch vụ theo chu kỳ và nhiều thứ khác. Đúng là nhiều tác vụ trong số này có thể được thực hiện thông qua GUI, tuy nhiên quan điểm của PowerShell là thực hiện chúng nhanh hơn.

1. Công cụ PowerShell

PowerShell được cài đặt theo mặc định trong Windows 10, Windows 7, Windows Server 2008 R2 và các phiên bản Windows mới hơn. Những bản PowerShell mới được bổ sung thêm nhiều tính năng mới và “cmdlets” (thuật ngữ của Microsoft cho các lệnh PowerShell “) và được cài đặt bằng phiên bản tương ứng của Windows Management Framework (WMF). Hiện tại WMF 5.1 là phiên bản mới nhất được khuyến nghị sử dụng. Trong một số trường hợp, một số tính năng mới phụ thuộc vào hệ điều hành bên cạnh phiên bản WMF. Chẳng hạn, Windows 8 và Windows Server 2012 hỗ trợ cmdlet Test-NetConnection, cho phép bạn kiểm tra kết nối với một cổng TCP/IP cụ thể, nhưng cmdlet này không khả dụng trong Windows 7 ngay cả khi chạy phiên bản WMF mới nhất.

Hình 1: Giao diện PowerShell

2. Các câu lệnh trên PowerShell

a. Get-Help

Đầu tiên và trước tiên, tất cả mọi người cần tìm hiểu về bất cứ câu lệnh, cú pháp nào là Get-Help. Ví dụ nếu muốn kiểm tra về Get-Process thì gõ lệnh như sau:

Get-Help -Name Get-Process

và Windows sẽ hiển thị đầy đủ cú pháp. Bên cạnh đó, Get-Help còn được sử dụng đi kèm với danh từ và động từ riêng rẽ, ví dụ với lệnh động từ Get:

Get-Help -Name Get-*

b. Set-ExecutionPolicy

Mặc dù bạn có thể tạo và thực thi các đoạn mã PowerShell khác nhau, nhưng ở chế độ mặc định Microsoft đã tắt bỏ tính năng này để phòng tránh các loại mã độc khác nhau khi xâm nhập vào hệ thống có thể tự kích hoạt và khởi động trong môi trường PowerShell. Người sử dụng có thể áp dụng lệnh Set-ExecutionPolicy để thiết lập các mức bảo mật khác nhau, cụ thể có 4 lựa chọn phù hợp:

– Restricted: đây là chính sách mặc định của hệ thống, các câu lệnh PowerShell đều bị khóa, người sử dụng chỉ có thể nhập lệnh nhưng không thực thi được.

– All Signed: nếu bạn hoặc người quản trị thiết lập mức All Signed thì các đoạn mã sẽ được thực thi, nhưng chỉ áp dụng với những thành phần được chỉ định rõ ràng.

– Remote Signed: chính sách bảo mật khi ở mức này, bất cứ đoạn mã PowerShell được tạo bên trong hệ thống local sẽ được phép hoạt động. Còn những mã tạo qua remote thì chỉ được phép chạy khi gán thuộc tính đầy đủ.

– Unrestricted: không áp dụng bất cứ hình thức ngăn cấm nào trong hệ thống.

Cú pháp chung của lệnh này bao gồm tên của lệnh Set-ExecutionPolicy đứng sau chính sách. Ví dụ như sau:

Set-ExecutionPolicy Unrestricted

c. Get-ExecutionPolicy

Nếu bạn phải làm việc trên hệ thống server không quen thuộc, thì cần phải biết chính sách mức chính sách bảo mật nào đang được áp dụng trên đó trước khi thực thi bất cứ câu lệnh hoặc đoạn mã nào đó. Để làm việc này, các bạn sử dụng lệnh

Get-ExecutionPolicy

d. Get-Service

Câu lệnh này sẽ liệt kê tất cả các dịch vụ đã được cài đặt trên hệ thống. Nếu cần tìm hiểu kỹ hơn về 1 dịch vụ bất kỳ nào đó, hãy thêm -Name và tên của dịch vụ đó, Windows sẽ hiển thị đầy đủ chi tiết, tình trạng liên quan

e. Export-CSV

Sau khi tạo báo cáo bằng HTML dựa trên dữ liệu của PowerShell, bạn cũng có thể trích xuất dữ liệu PowerShell thành file CSV để sử dụng với Microsoft Excel. Cú pháp câu lệnh như sau

Get-Service | Export-CSV c:\service.csv

f. Get-EventLog

Người sử dụng hoàn toàn có thể dùng PowerShell để phân tích các sự kiện xảy ra trong hệ thống qua file log. Có 1 vài tham số cụ thể đối với các dịch vụ khác nhau, nhưng hãy thử nghiệm bằng cách thêm -Log ở phía trước tên file log. Ví dụ, để xem file log Application thì các bạn sử dụng lệnh sau:

Get-EventLog -Log “Application”

g. Get-Process

Đi kèm với lệnh Get-Service để hiển thị danh sách các dịch vụ hiện thời của hệ thống, cú pháp Get-Process được dùng để liệt kê toàn bộ các tiến trình đang hoạt động