08/02/2018, 15:22

Windows powershell là gì? Hướng dẫn sử dụng Powershell hiệu quả

Để bạn đọc biết rõ về thì đầu tiên chúng ta cần xác định một Shell nghĩa là gì. Vâng đây chắc chắn không phải là 1 con rùa mà trong khoa học máy tính thì 1 Shell ở đây là một dòng lệnh hoặc một giao diện người dùng đồ họa (GUI) cho phép bạn truy cập vào các dịch vụ khác trong hệ điều ...

Để bạn đọc biết rõ về thì đầu tiên chúng ta cần xác định một Shell nghĩa là gì. Vâng đây chắc chắn không phải là 1 con rùa mà trong khoa học máy tính thì 1 Shell ở đây là một dòng lệnh hoặc một giao diện người dùng đồ họa (GUI) cho phép bạn truy cập vào các dịch vụ khác trong hệ điều hành.

Windows PowerShell là gì?

Windows PowerShell cũng chỉ là 1 Shell được Microsoft phát triển với mục địch quản lý tự động và định cấu hình các nhiệm vụ. Shell này hoạt động dựa trên .NET framework và kèm theo đó là một Shell dòng lệnh và ngôn ngữ mã hóa. Trên đầu của một shell dòng lệnh chuẩn, bạn cũng có thể tìm thấy Windows PowerShell ISE. ISE là viết tắt của Môi trường mã hóa tích hợp, và nó là một giao diện người dùng đậm tính đồ họa cho phép bạn dễ dàng tạo ra các đoạn mã khác nhau mà không cần phải nhập tất cả các lệnh trong dòng lệnh.

window powershell là gì

window powershell là gì

Không có bất kỳ nghi ngờ gì nữa, PowerShell là vũ khí cho nhiều quản trị viên CNTT. Và vì lý do tốt nào đó, bởi vì nó có thể đơn giản hóa hoạt động quản lý rất nhiều và đơn giản hóa các nỗ lực trong các mạng doanh nghiệp lớn.

Ví dụ, giả sử bạn đang quản lý một mạng lưới rộng lớn chứa hơn 500 máy chủ và bạn cần phải thực hiện một giải pháp bảo mật mới mà phụ thuộc vào một dịch vụ nào đó mà có thể chạy trên các máy chủ. Tất nhiên, bạn có thể, đăng nhập vào mỗi máy chủ và xem liệu họ đã có dịch vụ đó được cài đặt và chạy chưa, cũng có khả năng như thế. Nhưng cũng có thể là người quản lý của bạn sẽ phàn nàn rằng nó tốn quá nhiều thời gian để hoàn thành nhiệm vụ.




Nếu bạn sử dụng PowerShell, bạn có thể hoàn thành nhiệm vụ đó chỉ trong một vài phút, vì toàn bộ hoạt động có thể được thực hiện chỉ với một đoạn mã mà giúp tập hợp thông tin về các dịch vụ đang chạy trên máy chủ bạn chỉ định và nén chúng vào một tập tin văn bản. Ngày nay, đó chính là năng suất cần có!

Cách khởi động PowerShell

Các bạn bấm tổ hợp phím Windows + R, nhập vào “powershell” để mở giao diện Windows PowerShell

Khởi động powershell

Khởi động powershell

10 lệnh giúp bạn sử dụng PowerShell hiệu quả

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 DOMAINUSER -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 COMPUTERNAMEUSER –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.

0