Quản Trị Mạng - PowerShell là một công cụ khá mạnh, nó giúp người dùng dễ dàng thực hiện thay đổi cấu hình. Nhưng lưu ý sau khi hoàn thành cấu hình bạn nên sử dụng biến số -confirm để kiểm tra những cài đặt này.
1. Thông báo mọi thiết bị USB được cài đặt
PowerShell là một công cụ điều khiển Windows Management Instruments (WMI). Bạn có thể sử dụng PowerShell để yêu cầu WMI truy tìm các thiết bị kết nối USB được cài đặt vào một hệ thống cục bộ hay từ xa, sử dụng lệnh sau:
2. Thực hiện những tác vụ của CMD
Nhờ có cả giao diện lệnh nên PowerShell có thể giúp bạn thực hiện mọi tác vụ mà trước đây bạn thường thực hiện trên DOS. Đây là lí do vì sao PowerShell rất dễ sử dụng.
3. Sử dụng PowerShell để tắt tiến trình
Khi một dịch vụ Windows đang vận hành thì câu lệnh stop sẽ không có tác dụng với nó, và thông thường chúng ta luôn sử dụng Task Manager để tắt dịch vụ. Tuy nhiên bạn cũng có thể sử dụng PowerShell để tắt một dịch vụ đang chạy. Ví dụ, để tắt BadThread.exe bạn thực hiện như sau:
Trước tiên nhập lệnh:
4. Sử dụng lệnh PSDrive để kiểm tra thông tin hệ thống
Lệnh PSDrive cho phép người dùng xem nhiều đối tượng trong môi trường Windows trên mạng truyền thống, trên hệ thống hay trên ổ đĩa di động. Một lệnh thường được sử dụng là HKLM PSDrive để xem nhóm Registry cấp cao nhất của HKEY_LOCAL_MACHINE. Để xem nhóm Registry này sử dụng lệnh sau:
5. Cấp phép cho folder định dạng NTFS
Việc quản lý cấp phép NTFS là một tác vụ hoàn toàn riêng biệt, nhưng với PowerShell bạn có thể cấp phép phân quyền truy cập hay kiểm tra danh sách kiểm soát truy cập (ACL) giúp thực hiện cấu hình bảo mật. Đây có thể là một cơ chế giải trình để lên lịch chạy trong một định dạng lệnh hay bạn có thể chạy nó để kiểm tra sự cố cụ thể nào đó. Ví dụ khi chạy lệnh:
Nếu muốn nén những thông tin này thành một tài liệu biến số tách biệt nhau bởi dấu phẩy (CVS), bạn chỉ cần thêm |export-csv c:\filename.csv vào đoạn cuối của lệnh cmdlet. Bạn cũng có thể bổ sung >c:\filename.txt vào cuối lệnh trên để xuất ra một file văn bản. Chú ý, khi sử dụng tùy chọn –recurse nó chỉ thực hiện lại chính xác những thao tác trên và sẽ kiểm tra toàn bộ đường dẫn mà bạn đã chỉ định. Vì vậy bạn cần lưu ý khi sử dụng tùy chọn này với file dung lượng lớn hoặc đường dẫn mạng.
6. Thao tác với PowerShell 2.0
Powershell 2.0 nằm trong Community Technology Preview (CTP). Nó bao gồm một giao diện đồ họa có tên Graphical PowerShell. Các tập lệnh trong PowerShell được lưu trữ dưới những file có định dạng .ps1 giúp người dùng dễ dàng hiệu chỉnh, nhập và truyền các tập lệnh này qua nhiều máy khác nhau.
Chú ý: Khi sử dụng PowerShell 2.0 bạn phải thực hiện cấu hình Execution Plolicies (chính sách thực thi) trong phiên bản không có giao diện đồ họa của PowerShell trước khi sử dụng công cụ này. Thực hiện cấu hình một trong những Execution Policies như sau:
7. Một số phím tắt trong giao giao diện đồ họa của PowerShell
Nếu đã từng làm việc trong môi trường Microsoft SQL Analyzer bạn mới hiểu được tầm quan trọng của phím tắt. Trong giao diện đồ họa của PowerShell, bạn có thể lựa chọn một dòng duy nhất hay nhiều dòng và nhấn phím F5 để chạy chúng. Trong khi hiệu chỉnh tập lệnh bạn có thể nhấn tổ hợp phím Ctrl+S (lưu), Ctrl+Z (làm lại), Ctrl+C (copy) và Ctrl+V (dán) để tiết kiệm thời gian chỉnh sửa và kiểm thử.
8 Lên lịch thực hiện tác vụ
Nếu thường xuyên phải sử dụng đến một lệnh cmdlet nào đó bạn có thể sử dụng PowerShell để đưa nó ra hình nền. Và bạn cũng có thể chạy nhiều lệnh cùng một lúc và lên lịch hoàn thành cho chúng. Lệnh khởi chạy một tác vụ cơ sở bắt đầu với tham số start-psjob –command. Bạn có thể sử dụng PowerShell để truy vấn trạng thái của mọi tác vụ với lệnh sau:
Bạn cũng có thể chạy lệnh sau để gỡ bỏ những tác vụ không thực hiện được:
Với những tác vụ của PowerShell bạn có thể nhập nhiều Timestamp (nhãn thời gian) để xác định một tác vụ đơn lẻ xảy ra trong bao lâu, hay sử dụng Timestamp này như một công cụ ghi nhớ cho những tập lệnh. Để chèn Timestamp bạn chỉ cần bổ sung một trong các lệnh sau vào file .ps1:
Còn nhiều định dạng khác nữa cho lệnh Get-Date, nhưng ba định dạng trên phù hợp nhất với nhiều ứng dụng.
10. Tạo EasyView
Trong PowerShell, một số lệnh làm cho màn hình di chuyển rất nhanh. Nếu không xuất kết quả ra một file, có thể bạn sẽ không xem lại được kết quả đó trên màn hình. Khi đó hãy dùng lại lệnh Get-Childterm trong ví dụ trên. Lệnh này sẽ trả về nhiều kết quả tùy thuộc vào nội dung đường dẫn. Ngoài ra, bạn cũng có thể tạo một chức năng EasyView để xem những kết quả trên màn hình bằng cách hiển thị một dòng sau mỗi ½ giây. Chức năng này được tạo như sau:
1. Thông báo mọi thiết bị USB được cài đặt
PowerShell là một công cụ điều khiển Windows Management Instruments (WMI). Bạn có thể sử dụng PowerShell để yêu cầu WMI truy tìm các thiết bị kết nối USB được cài đặt vào một hệ thống cục bộ hay từ xa, sử dụng lệnh sau:
gwmi Win32_USBControllerDevice -computername SERVER1 |fl Antecedent,DependentLệnh này sẽ sử dụng một bộ lọc để hiển thị trường Antecedent (thiết bị gốc) và Dependent (thiết bị phụ thuộc) từ máy tính có tên SERVER1. Nếu muốn kết xuất đầy đủ thông tin bạn nên bỏ qua mục Filter và Pipe để xuất ra đầy đủ thông tin về thiết bị kết nối USB vào hệ thống. Nếu có một thiết bị nào đó được cài đặt cùng với giấy phép bạn nên thông báo lên máy chủ để máy chủ có thể duy trì kết nối với thiết bị này.
2. Thực hiện những tác vụ của CMD
Nhờ có cả giao diện lệnh nên PowerShell có thể giúp bạn thực hiện mọi tác vụ mà trước đây bạn thường thực hiện trên DOS. Đây là lí do vì sao PowerShell rất dễ sử dụng.
3. Sử dụng PowerShell để tắt tiến trình
Khi một dịch vụ Windows đang vận hành thì câu lệnh stop sẽ không có tác dụng với nó, và thông thường chúng ta luôn sử dụng Task Manager để tắt dịch vụ. Tuy nhiên bạn cũng có thể sử dụng PowerShell để tắt một dịch vụ đang chạy. Ví dụ, để tắt BadThread.exe bạn thực hiện như sau:
Trước tiên nhập lệnh:
get-process BadTh*Giá trị trả về có dạng:
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessNameKhi ID của tiến trình đã được xác định bạn có thể kết thúc tiến trình này bằng lệnh:
------- ------ ----- ----- ----- ------ -- -----------
28 4 -210844 -201128 -163 25.67 2792 BadThread
stop-process -id 2792Khi đó, BadThread.exe sẽ bị chặn. Sau đó bạn cũng có thể sử dụng PowerShell để khởi động lại dịch vụ.
4. Sử dụng lệnh PSDrive để kiểm tra thông tin hệ thống
Lệnh PSDrive cho phép người dùng xem nhiều đối tượng trong môi trường Windows trên mạng truyền thống, trên hệ thống hay trên ổ đĩa di động. Một lệnh thường được sử dụng là HKLM PSDrive để xem nhóm Registry cấp cao nhất của HKEY_LOCAL_MACHINE. Để xem nhóm Registry này sử dụng lệnh sau:
PS C:> cd HKLM:
PS HKLM:/>Sau đó bạn sẽ được chuyển sang cửa sổ hiển thị Reggistry để xem và thậm chí là xóa một số mục nếu muốn.
5. Cấp phép cho folder định dạng NTFS
Việc quản lý cấp phép NTFS là một tác vụ hoàn toàn riêng biệt, nhưng với PowerShell bạn có thể cấp phép phân quyền truy cập hay kiểm tra danh sách kiểm soát truy cập (ACL) giúp thực hiện cấu hình bảo mật. Đây có thể là một cơ chế giải trình để lên lịch chạy trong một định dạng lệnh hay bạn có thể chạy nó để kiểm tra sự cố cụ thể nào đó. Ví dụ khi chạy lệnh:
PS E:>Get-Acl N:DataLệnh này sẽ thông báo quyền bảo mật của bạn tới một đường dẫn cụ thể (nó sẽ không chia sẻ quyền truy cập). Tuy nhiên nó chỉ gửi đến một đường dẫn cụ thể duy nhất nhưng nếu muốn nhận lại toàn bộ đường dẫn bạn có thể sử dụng một cách khác. Với đường dẫn trên (N:\Data) bạn hãy dùng lệnh Get-Childterm (cmdlet) trong Powershell kết hợp với lệnh Get-Acl như ví dụ dưới đây:
PS E:>Get-ChildItem N:Data -recurse | Get-AclLệnh này sẽ bao hàm toàn bộ đường dẫn N:\Data và hiển thị ACL trong nội dung của đường dẫn. Đó là do lệnh Get-Childterm cung cấp một bảng kê các đối tượng của file hệ thống, và bảng kê này được chuyển qua cho lệnh Get-Acl, sau đó Get-Acl sẽ bổ sung kết quả cho từng đối tượng.
Nếu muốn nén những thông tin này thành một tài liệu biến số tách biệt nhau bởi dấu phẩy (CVS), bạn chỉ cần thêm |export-csv c:\filename.csv vào đoạn cuối của lệnh cmdlet. Bạn cũng có thể bổ sung >c:\filename.txt vào cuối lệnh trên để xuất ra một file văn bản. Chú ý, khi sử dụng tùy chọn –recurse nó chỉ thực hiện lại chính xác những thao tác trên và sẽ kiểm tra toàn bộ đường dẫn mà bạn đã chỉ định. Vì vậy bạn cần lưu ý khi sử dụng tùy chọn này với file dung lượng lớn hoặc đường dẫn mạng.
6. Thao tác với PowerShell 2.0
Powershell 2.0 nằm trong Community Technology Preview (CTP). Nó bao gồm một giao diện đồ họa có tên Graphical PowerShell. Các tập lệnh trong PowerShell được lưu trữ dưới những file có định dạng .ps1 giúp người dùng dễ dàng hiệu chỉnh, nhập và truyền các tập lệnh này qua nhiều máy khác nhau.
Cấp phép NTFS khi chạy trong chế độ đồ họa. |
Chú ý: Khi sử dụng PowerShell 2.0 bạn phải thực hiện cấu hình Execution Plolicies (chính sách thực thi) trong phiên bản không có giao diện đồ họa của PowerShell trước khi sử dụng công cụ này. Thực hiện cấu hình một trong những Execution Policies như sau:
PS C:>Set-ExecutionPolicy Restricted (Chỉ kiểm tra)
PS C:>Set-ExecutionPolicy AllSigned (Bảo mật tối ưu)
PS C:>Set-ExecutionPolicy RemoteSigned (Bảo mật trung bình)
PS C:>Set-ExecutionPolicy Unrestricted (Ít bảo mật)Bạn phải sử dụng phần mềm WS-MAN v1.1 để đánh giá PowerShell 2.0, và chỉ sử dụng được giao diện đồ họa khi có Microsoft .NET Framework 3.0 hỗ trợ.
7. Một số phím tắt trong giao giao diện đồ họa của PowerShell
Nếu đã từng làm việc trong môi trường Microsoft SQL Analyzer bạn mới hiểu được tầm quan trọng của phím tắt. Trong giao diện đồ họa của PowerShell, bạn có thể lựa chọn một dòng duy nhất hay nhiều dòng và nhấn phím F5 để chạy chúng. Trong khi hiệu chỉnh tập lệnh bạn có thể nhấn tổ hợp phím Ctrl+S (lưu), Ctrl+Z (làm lại), Ctrl+C (copy) và Ctrl+V (dán) để tiết kiệm thời gian chỉnh sửa và kiểm thử.
8 Lên lịch thực hiện tác vụ
Nếu thường xuyên phải sử dụng đến một lệnh cmdlet nào đó bạn có thể sử dụng PowerShell để đưa nó ra hình nền. Và bạn cũng có thể chạy nhiều lệnh cùng một lúc và lên lịch hoàn thành cho chúng. Lệnh khởi chạy một tác vụ cơ sở bắt đầu với tham số start-psjob –command. Bạn có thể sử dụng PowerShell để truy vấn trạng thái của mọi tác vụ với lệnh sau:
PS C:>get-psjobSau đó bạn sẽ thấy một bảng kết quả hiển thị trạng thái hiện thời của những tác vụ cùng với một bản mô tả cho mỗi tác vụ.
Bạn cũng có thể chạy lệnh sau để gỡ bỏ những tác vụ không thực hiện được:
PS C:>remove-psjob 99. Chèn Timestamp vào dữ liệu kết xuất của PowerShell
Với những tác vụ của PowerShell bạn có thể nhập nhiều Timestamp (nhãn thời gian) để xác định một tác vụ đơn lẻ xảy ra trong bao lâu, hay sử dụng Timestamp này như một công cụ ghi nhớ cho những tập lệnh. Để chèn Timestamp bạn chỉ cần bổ sung một trong các lệnh sau vào file .ps1:
Lệnh | Định dạng Timestamp |
“$(Get-Date -format g) Start logging” | 2/5/2008 9:15 PM |
“$(Get-Date -format F) Start logging” | Tuesday, February 05, 2008 9:15:13 PM |
“$(Get-Date -format o) Start logging” | 2008-02-05T21:15:13.0368750-05:00 |
Còn nhiều định dạng khác nữa cho lệnh Get-Date, nhưng ba định dạng trên phù hợp nhất với nhiều ứng dụng.
10. Tạo EasyView
Trong PowerShell, một số lệnh làm cho màn hình di chuyển rất nhanh. Nếu không xuất kết quả ra một file, có thể bạn sẽ không xem lại được kết quả đó trên màn hình. Khi đó hãy dùng lại lệnh Get-Childterm trong ví dụ trên. Lệnh này sẽ trả về nhiều kết quả tùy thuộc vào nội dung đường dẫn. Ngoài ra, bạn cũng có thể tạo một chức năng EasyView để xem những kết quả trên màn hình bằng cách hiển thị một dòng sau mỗi ½ giây. Chức năng này được tạo như sau:
function EasyView { process { $_; Start-Sleep -seconds .5}}Dể chắc chắn một lệnh PowerShell sử dụng được chức năng EasyView, chỉ cần gọi nó với một đường dẫn cuối dòng lệnh. Nếu lệnh này sử dụng được với EasyView bạn sẽ thấy hiện ra lệnh có dạng sau:
Get-ChildItem N:Data | EasyViewChức năng EasyView được cấu hình hiển thị nhiều dòng sau mỗi ½ giây. Bạn cũng có thể cài đặt giá trị thời gian là ms (mili giây).