Windows PowerShell là một hệ thống dòng lệnh "Command executive" và ngôn ngữ kịch bản "Script" mà bạn có thể sử dụng để quản lý hệ thống của mình. Trong bài viết dưới đây Quản trị mạng sẽ giới thiệu cho bạn 10 lệnh PowerShell để quản lý máy tính của bạn từ xa một cách hiệu quả.
Yêu cầu:
- Máy tính của bạn chạy hệ điều hành Windows Vista (hoặc cao hơn).
- Server chạy trên Windows Server 2008 (hoặc cao hơn).
- PowerShell 5.0.
- Truy cập quyền Admin.
1. Tạo một PowerShell session
Lệnh: Enter-PSSession
Ví dụ:
Enter-PSSession -ComputerName REMOTE_COMPUTER_NAME -Credential USERNAME
Việc tạo một PSSession cho phép một Admin có thể kết nối từ xa với một máy tính khác trên mạng lưới và chạy bao nhiêu lệnh PS trên máy tính đó cũng được.
Trong quá trình tương tác, nhiều câu lệnh có thể được thực hiện từ xa, lí do là bởi vì Admin có giao diện truy cập giống như họ đang ngồi trước máy tính của bạn vậy.
2. Thực thi các câu lệnh
Lệnh: Invoke-Command
Ví dụ:
Invoke-Command -Computer REMOTE_COMPUTER_NAME -ScriptBlock {PowerShell Command}
Sử dụng lệnh Invoke-Command trên PS sẽ cho kết quả tương tự như thực hiện một session trong câu lệnh 1 ở trên, tuy nhiên khi sử dụng Invoke để gọi 1 lệnh từ xa, chỉ có duy nhất 1 lệnh được thực thi tại thời điểm đó.
Điều này để ngăn cản việc chạy nhiều lệnh cùng một lúc, trừ khi các lệnh này được lưu thành một tập tin .PS1 và Script của các lệnh này được gọi.
3. Khởi động lại máy tính
Lệnh: Restart-Computer
Ví dụ:
Restart-Computer -ComputerName REMOTE_COMPUTER_NAME –Force
Đôi khi trong một số trường hợp khi bạn cài đặt hoặc cấu hình lại hệ thống để hoạt động đúng cách, khi đó bạn sẽ được yêu cầu khởi động lại máy tính của mình. Hay trong một số trường hợp khác, chỉ đơn giản là khởi động lại máy tính của bạn để áp dụng các thay đổi, refresh lại máy tính. Khi đó bạn chỉ cần sử dụng một câu lệnh PS duy nhất để thực hiện mà thôi.
4. Ping máy tính
Lệnh: Test-Connection
Ví dụ:
Test-Connection -ComputerName DESTINATION_COMPUTER_NAME -Source SOURCE_COMPUTER_NAME
PING là một trong những lệnh hữu ích nhất trong “kho vũ khí” của Sysadmin (Systems Admin). Rất đơn giản, bạn chỉ cần nhập lệnh PING và lệnh sẽ kiểm tra kết nối trên trạm hiện tại (current station) trên máy tính của bạn và trên hệ thống từ xa khác.
Test-Connection sẽ “nâng tầm” lệnh PING lên một mức độ mới bằng cách “nhét” nó vào PS cmdlet.
Giả sử trong trường hợp bạn cần phải kiểm tra thông tin kết nối giữa máy chủ và thiết bị từ xa. Các yêu cầu ICMP sẽ được gửi từ máy chủ đến các thiết bị từ xa, nhưng báo cáo được gửi trở lại trạm admin của bạn.
5. Xem và chỉnh sửa các services
Lệnh: Set-Service
Ví dụ:
Set-Service -ComputerName REMOTE_COMPUTER_NAME -Name SERVICE_NAME -Status SERVICE_STATUS
Các Services đôi khi rất “khó tính”. Tùy thuộc vào những gì đang xảy ra trên một máy tính cụ thể, các service có thể “dừng lại” ở thời điểm tồi tệ nhất có thể. Việc xác định các services đang chạy bằng lệnh Get-Service cmdlet giúp bạn nắm bắt được trạng thái các service hiện tại.
Sau khi đã “nắm bắt” được đầy đủ thông có sẵn, bạn có thể thiết lập trạng thái cho service – có thể là một service bắt đầu bằng chữ cái W hoặc có thể thiết lập tất cả các service cùng một lúc.
6. Chạy background tasks (nhiệm vụ phụ)
Lệnh: Start-Job
Ví dụ:
Start-Job -FilePath PATH_TO_SCRIPT.PS1
Sử dụng lệnh này để thực thi script hoặc các ứng dụng chạy trên nền background mà không cần phải đăng nhập hoặc thực hiện các nhiệm vụ khác. Ngoài ra câu lệnh này sẽ được thực thi ngay cả khi lệnh bị lỗi và không làm gián đoạn đăng nhập cục bộ của người dùng trên hệ thống.
7. Tắt máy tính
Lệnh: Stop-Computer
Ví dụ:
Stop-Computer -ComputerName REMOTE_COMPUTER_NAME –Force
Cũng giống như các thiết bị khác, sau khi sử dụng máy tính của bạn cũng cần phải "nghỉ ngơi". Khi thực hiện quá trình tắt máy, bạn có thể sử dụng lệnh cmdlet này để chắc chắc rằng máy tính của bạn sẽ được "tắt" đúng cách.
8. Gia nhập máy tính vào một miền (domain)
Lệnh: Add-Computer
Ví dụ:
Add-Computer -ComputerName COMPUTER_NAMES_TO_BE_JOINED -DomainName DOMAIN.COM -Credential DOMAIN\USER -Restart
Quá trình gia nhập một máy tính vào một miền khá đơn giản, bạn chỉ cần click chuột 3 lần, sau đó nhập các thông tin Admin đầy đủ là xong. Tuy nhiên nếu sử dụng cách truyền thống này để gia nhập hàng trăm miền thì vô cùng tốn thời gian.
Trong trường hợp này bạn có thể nghĩ đến giải pháp là sử dụng PowerShell. Lệnh cmdlet cho phép gia nhập nhiều máy tính vào một miền (domain) cùng một lúc, và chỉ yêu cầu nhập thông tin Admin đúng 1 lần duy nhất.
9. Quản lý các ứng dụng và service
Lệnh: Import-Module
Ví dụ:
Import-Module -Name NAME_OF_POWERSHELL_MODULE
Một trong những tính năng nổi bật nhất của PowerShell là quản lý các ứng dụng, chương trình,… một cách linh hoạt, từ hệ thống máy tính đến các ứng dụng như Microsoft Exchange. Một số ứng dụng và dịch vụ chỉ cho phép quản lý ở một mức độ nhất định thông qua giao diện đồ họa. Phần còn lại được mặc định để PS quản lý.
Điều này được thực hiện thông qua việc sử dụng các module có chứa các codebase cần thiết để chạy thêm bất kỳ các lệnh PowerShell của một dịch vụ hay ứng dụng cụ thể. Modules được sử dụng chỉ khi cần thiết, và lúc chúng sẽ mở rộng chức năng PS đến một dịch vụ hoặc ứng dụng cụ thể. Sau khi hoàn tất, bạn có thể loại bỏ các module hoàn toàn từ các phiên hoạt động mà không phải tắt nó đi.
10. Đổi tên máy tính
Lệnh: Rename-Computer
Ví dụ:
Rename-Computer -NewName NEW_COMPUTER_NAME -LocalCredential COMPUTERNAME\USER –Restart
Tùy thuộc vào nhiều yếu tố, bao gồm bảo mật, chính sách củ công ty,... mà bạn có thể đổi tên được máy tính hoặc không. Dù bằng cách nào thì lệnh Rename cũng hữu ích trong quá trình làm việc trên một hoặc nhiều hệ thống - nhóm hoặc trên một miền (domain).
Lệnh sẽ đổi tên một thiết bị và khởi động lại để áp dụng các thay đổi có hiệu lực. Đối với một miền (domain), nếu Schema Active Directory hỗ trợ, các máy tính mới cũng sẽ được đổi tên trong AD. Các đối tượng sẽ giữ lại tất cả các thiết lập của nó và tình trạng miền tham gia nhưng sẽ hiển thị tên mới.
Tham khảo thêm một số bài viết dưới đây:
Chúc các bạn thành công!