POWERSHELL LÀ GÌ

  -  

PowerShell – một chương trình dòng lệnh thay thế cho CMD. Rất nhiều người trong chúng ta đều biết ít nhiều về CMD, tuy nhiên với PowerShell thì có lẽ còn bỡ ngỡ vì nó còn khá mới lạ. Để tìm hiều về PowerShell, chúng ta cùng theo dõi bài viết sau nhé.

Bạn đang xem: Powershell là gì


PowerShell là ngôn ngữ kịch bản và một tiện ích dòng lệnh của hệ điều hành Microsoft Windows, Là một công cụ mạnh mẽ dành cho các quản trị viên. Công cụ này giúp cho người dùng tự động hoá được nhiều nhiệm vụ cùng lúc cho máy tính và mạng. PowerShell có chứa những thành phần của Command Prompt và được xây dựng dựa vào framework .NET.


PowerShell là một công cụ được nhiều quản trị viên chọn để quản lý những mạng lớn. PowerShell có rất nhiều cách sử dụng nhưng tất cả đều hướng đến mục đích hỗ trợ tối ưu cho các công việc quản trị.

Một số thao tác sử dụng powershell command đơn giản nhất như: theo dõi và báo cáo những tiến trình trên máy chủ, lập lịch cập nhật hệ thống, dịch vụ theo chu kỳ…. Những tác vụ này có thể được thực hiện bằng GUI (giao diện người dùng). Tuy nhiên, nó sẽ được thực hiện nhanh chóng và tiết kiệm thời gian hơn với Powershell.

Bạn thử tưởng tượng xem. Các công việc bạn thường phải thực hiện trong 10-15 phút. thậm chí hơn. Giờ đây, với PowerShell. Các công việc thường xuyên lặp đi lặp lại trên, sẽ chỉ cần 1 cú click, hoặc thậm chí sẽ tự động hoàn toàn nếu lập lịch theo thời gian định kỳ.

*

II. Sự phát triển của PowerShell

Năm 2002, Jeffrey Snover của Microsoft nhận ra rằng Windows không có giao diện dòng lệnh và khả năng viết kịch bản tốt như đối thủ cạnh tranh của nó là Linux. Để thay đổi điều này, Snover đã phát hành Bản tuyên ngôn Monad, một tài liệu phác thảo các kế hoạch của anh ấy cho thứ cuối cùng sẽ là PowerShell.

Từ năm 2002-2005, PowerShell được gọi là Monad và vẫn đang trong quá trình phát triển ban đầu. Năm 2006, từ ‘PowerShell’ xuất hiện lần đầu tiên với việc phát hành PowerShell 1.0. Kể từ thời điểm đó, nhóm PowerShell tại Microsoft đã sử dụng bản tuyên ngôn làm hướng dẫn để liên tục thêm các tính năng mới vào PowerShell.Ban đầu chỉ có sẵn như một phần của Khung quản lý Windows, trước Windows XP và Windows Server 2012, PowerShell là một bản cài đặt riêng biệt. Nhưng kể từ Windows 7 và Windows Server 2012 R2, PowerShell đã được cài đặt theo mặc định trên tất cả các hệ điều hành Windows.

III. Một số lý do nên sử dụng Powershell

Cho phép người dùng tiến hành truy cập vào những loại có trong .NET frameworkGiúp đơn giản hóa cho quá trình hoạt động quản lý cũng như cải thiện hoạt động cho các mạng của doanh nghiệp.Giải quyết nhanh chóng các công việc chỉ với một đoạn mã.Người dùng PowerShell cũng có thể tạo ra các nhóm phân phối động cũng như cập nhật được nhiều tài khoản người dùng cùng 1 lúc hơn. Từ đó, kịch bản cho các giải pháp xử lý vấn đề phát sinh đều có thể thực hiện tự động. Khi sử dụng các câu lệnh đều có thể tác động đến hệ thống bạn cần xác định rất kỹ về ngôn ngữ, hiểu rõ về ngôn ngữAn toàn hơn nhiều so với khi chạy VBScript hay ngôn ngữ Script khácNgoài ra, những tính năng nổi bật khác của PowerShell không thể không nhắc đến đó chính là quản lý các ứng dụng, chương trình,… Dựa vào hệ thống máy tính cho đến những ứng dụng Microsoft Exchange đều sẽ diễn ra một cách dễ dàng hơn.

IV. Sự khác biệt giữa PowerShell vs CMD

*

Định nghĩa

PowerShelllà một khung quản lý cấu hình, thực hiện tự động hóa những tác vụ của Microsoft. Gồm có một vỏ dòng lệnh kèm theo ngôn ngữ kịch bản lệnh liên quan. Trong khi đó, CMD là một trình thông dịch dòng lệnh được tích hợp trên những hệ điều hành Windows CE, OS / 2, Windows NT hay eComStation.

Các lệnh

Một điểm khác biệt lớn khi nhắc đến PowerShell vs CMD. Đó là powershell split string có khả năng diễn giải được cả lệnh bó hay lệnhPowerShell. Nhưng CMD chỉ có khả năng diễn giải được lệnh bó.

Chức năng

Điểm khác biệt giữaPowerShell và CMDtiếp theo là PowerShell thường được sử dụng bởi những quản trị viên hệ thống. Từ đó sẽ tiến hành những tác vụ quản trị. Trong khi đó, CMD lại tương tác với những chương trình người dùng. Đồng thời, CMD tiến hành những tác vụ dựa trên lệnh mà người dùng cung cấp.

Tính phức tạp

PowerShellđược đánh giá là phức tạp cũng như mạnh mẽ hơn so với CMD.

Tính năng, đặc điểm

Powershell parameter được sở hữu những tính năng kèm theo nhiều cải tiến bổ sung hơn so với CMD.

V. Một số lệnh PowerShell cơ bản

1. Get-Help

Nếu chưa quen với PowerShell, bạn có thể sử dụng lệnh Get-Help. Nó cung cấp thông tin cần thiết về lệnh ghép ngắn, lệnh, hàm, tập lệnh và luồng công việc của PowerShell. Hơn nữa, nếu bạn gõ Get-Help theo sau lệnh, nó sẽ hiển thị các thông tin chi tiết về lệnh đó.

Xem thêm: Top 11 Game Hot Hiện Nay Nuôi Mèo Tặng Kèm Crush Có Gì Hấp Dẫn ?

Ví dụ: bạn có thể nhận được thông tin về “Get-Process” bằng cách sử dụng Get-Help Get-Process.

*

2. Get-Command

PowerShell cho phép khám phá các lệnh và tính năng của nó bằng Get-Command. Nó hiển thị danh sách các lệnh của một tính năng cụ thể hoặc cho một mục đích cụ thể dựa trên thông số tìm kiếm. Bạn chỉ cần gõ Get-Command theo sau là truy vấn tìm kiếm của bạn trong PowerShell.

Ví dụ: Get-Command * -service * hiển thị các lệnh với “-service” trong tên của nó. Hãy nhớ sử dụng các dấu hoa thị trên cả hai mặt truy vấn của bạn vì nó tiện lợi hơn giúp tìm kiếm cái chưa biết.

3. Invoke-Command

Khi bạn muốn chạy lệnh hoặc tập lệnh PowerShell – cục bộ hoặc từ xa trên một hoặc nhiều (các) máy tính – “Invoke-Command” chính là lựa chọn hữu ích. Nó sẽ giúp bạn điều khiển hàng loạt máy tính. Bạn phải nhập Invoke-Command theo sau là lệnh hoặc kịch bản với đường dẫn đầy đủ của nó.

Ví dụ: bạn có thể chạy lệnh “Get-EventLog” bằng cách sử dụng Invoke-Command -ScriptBlock {Get-EventLog system -Newest 100} hoặc trên máy tính từ xa “ServerA” sử dụng Invoke-Command -ScriptBlock {Get-EventLog system -Newest 100} -ComputerName ServerA.

4. Invoke-Expression

Invoke-Expression chạy một lệnh hoặc biểu thức khác. Nếu bạn đang cung cấp một biểu thức hoặc một chuỗi làm đầu vào của nó, lệnh này trước tiên sẽ đánh giá nó, sau đó chạy nó, nhưng cũng chỉ hoạt động cục bộ, không giống như lệnh trước đó. Bạn phải nhập Invoke-Expression theo sau là một lệnh hoặc một biểu thức.

Ví dụ, bạn có thể gán một biến “$ Command” với một chuỗi nói lệnh “Get-Process”. Khi bạn chạy Invoke-Expression $Command, “Get-Process” được chạy như một lệnh trên máy tính cục bộ của bạn.

5. Invoke-WebRequest

Bạn có thể tải xuống, đăng nhập và xóa thông tin trên các trang web và dịch vụ web trong khi làm việc trên PowerShell bằng cách sử dụng Invoke-WebRequest. Bạn phải sử dụng nó như Invoke-WebRequest theo sau là các tham số của nó.

Ví dụ, bạn có thể nhận được các liên kết trên một trang web nhất định bằng cách sử dụng lệnh như (Invoke-WebRequest -Uri “https://yamada.edu.vn“).Links.Href.

6. Set-ExecutionPolicy

Bạn có thể chuyển đổi mức bảo mật bằng cách sử dụng lệnh Set-ExecutionPolicy cho các tập lệnh có phần mở rộng “ps1”. Bạn có thể gõ Set-ExecutionPolicy theo sau là một trong bốn cấp độ bảo mật – Restricted, RemoteSigned, AllSigned hoặc UnRestricted để sử dụng lệnh.

Ví dụ: bạn có thể chỉ định trạng thái chính sách bị hạn chế bằng cách sử dụng Set-ExecutionPolicy -ExecutionPolicy Restricted.

Xem thêm: Máy Chơi Game Cầm Tay Pokemon

7. Get-Item

Trong PowerShell, Get-Item là cách tốt nhất để giúp bạn đang tìm kiếm thông tin về một mục tại bất kỳ vị trí cụ thể nào. Bạn phải biết rằng nó không nhận được nội dung của mục, chẳng hạn như các tệp và thư mục con trong một thư mục nhất định trừ khi bạn chỉ định rõ ràng.Bạn phải nhập Get-Item theo sau là một đường dẫn hoặc một chuỗi cùng với các tham số của nó nếu có.

Ví dụ: bạn có thể nhận tất cả các mục (tệp hoặc thư mục) bắt đầu bằng “N” trong thư mục hiện tại bằng cách sử dụng Get-Item N* . Cùng với nội dung của các thư mục, nó cũng có thể lấy nội dung của các khóa registry.

8. Copy-Item

Lệnh Copy-Item giúp sao chép các tệp và thư mục trên đĩa lưu trữ hoặc các mục đăng ký và các khóa trong sổ đăng ký. Nó hoạt động tương tự như lệnh “cp” chúng ta có trong Command Prompt, nhưng nó tốt hơn nhiều. Bạn có thể tận dụng lệnh Copy-Item để sao chép và đổi tên các mục trong cùng một lệnh – cung cấp tên mới làm đích.

Ví dụ, bạn có thể sao chép và đổi tên “A.htm” thành “B.txt” bằng cách sử dụng Copy-Item “C:\A.htm” -Destination “C:\Data\B.txt”.

9. Remove-Item

Remove-Item là xóa các mục như tệp, thư mục, chức năng và khóa và biến đăng ký. Nó cung cấp các tham số để bao gồm và loại trừ các mục. Bạn có thể tận dụng lệnh Remove-Item để xóa các mục từ các vị trí cụ thể bằng cách sử dụng các tham số.

Ví dụ: bạn có thể xóa tệp “B.txt” bằng lệnh Remove-Item “C:\Data\B.txt”.

10. Get-Content

Trong PowerShell, bạn có thể sử dụng Get-Content giúp bạn truy xuất nội dung của tệp văn bản tại một vị trí cụ thể mà không cần mở tệp.

Ví dụ, bạn có thể xem nội dung của “A.htm”, sau đó bạn có thể sử dụng Get-Content “C:\A.htm”

*

11. Set-Content

Lệnh Set-Content giúp bạn có thể lưu văn bản vào các tệp, tương tự như lệnh “echo” của Bash Shell. Kết hợp với Get-Content, bạn cũng có thể truy xuất nội dung của một tệp và sao chép nó vào một tệp khác bằng lệnh này.

Ví dụ: bạn có thể nhập Set-Content để viết hoặc thay thế nội dung của một tệp có nội dung mới. Hơn nữa, bạn có thể kết hợp nó với ví dụ của lệnh trước đó để lưu đầu ra của nó vào một tệp mới có tên là “B.txt” bằng cách sử dụng Get-Content “C:\A.htm” -TotalCount 50 | Set-Content “B.txt”.

12. Get-Variable

Trong PowerShell, lệnh Get-Variable sẽ giúp bạn hình dung các giá trị của các biến. Nó cho thấy chúng dưới dạng bảng và cho phép bao gồm, loại trừ và sử dụng các ký tự đại diện. Bạn có thể sử dụng lệnh này bằng cách nhập Get-Variable tiếp theo là các tùy chọn và tham số của nó.

Ví dụ: bạn có thể truy xuất giá trị cho biến có tên “desc” bằng cách sử dụng mã sau: Get-Variable -Name “desc”.

13. Set-Variable

Bạn có thể gán hoặc thay đổi / đặt lại giá trị của biến bằng lệnh Set-Variable. Bạn cũng có thể đặt một biến đơn giản bằng cách sử dụng định dạng ${ $Tên = Giá trị }$, giống như $desc = “A Description”. Bạn có thể sử dụng lệnh Set-Variable tiếp theo là các tham số của nó để thiết lập một biến.

Ví dụ: chúng ta có thể thiết lập giá trị cho một biến có tên là “desc” bằng cách sử dụng lệnh Set-Variable -Name “desc” -Value “A Description”.

14. Get-Process

Trong PowerShell, lệnh Get-Process để lấy danh sách các tiến trình đang chạy. Bạn có thể viết lệnh như Get-Process cùng với truy vấn tìm kiếm của bạn.

Ví dụ: nếu bạn cần thông tin về các quy trình có “khám phá” trong tên của nó, bạn có thể nhập Get-Process *explore* (lưu ý các dấu hoa thị).

15. Start-Process

Start-Process giúp dễ dàng bắt đầu một hoặc nhiều quy trình (process) trên máy tính. Lệnh này rất tiện dụng trong các ứng dụng kịch bản vì nó là một trong những lệnh phải có mà bạn sẽ cần để tự động hóa một tác vụ. Bạn có thể gõ Start-Process theo sau là các tham số của nó để sử dụng lệnh.

Ví dụ, bạn có thể khởi động Notepad bằng cách gõ Start-Process -FilePath “notepad” -Verb runAs trong Windows PowerShell.

16. Get-Service

Get-Service hiển thị thông tin về các dịch vụ cụ thể (đang chạy hoặc dừng) trên máy tính. Nó hiển thị các dịch vụ được cài đặt trong hệ thống và cung cấp các tùy chọn để lọc và bao gồm và loại trừ chúng. Nếu bạn muốn sử dụng lệnh này, bạn có thể nhập Get-Service theo sau là các tham số của nó.

Ví dụ, gõ như sau Get-Service | Where-Object {$_.Status -eq “Running”} để có được các dịch vụ “đang chạy” trên hệ thống của bạn.

17. Start-Service

Lệnh Start-Service giúp bạn khởi động (start)một dịch vụ trên máy tính từ PowerShell. Nó đủ mạnh để khởi động (start) một dịch vụ ngay cả khi dịch vụ đó bị tắt trên máy tính của bạn. Bạn cần phải chỉ định tên của dịch vụ trong khi sử dụng lệnh Start-Service.

Ví dụ, Start-Service -Name “WSearch” bắt đầu dịch vụ “Windows Search” trên máy tính cục bộ của bạn.

18. Stop-Service

Nếu bạn muốn dừng các dịch vụ đang chạy trên máy tính của mình, lệnh Stop-Service sẽ hữu ích. Bạn cần chỉ định tên của dịch vụ cùng với Stop-Service.

Ví dụ, nhập Stop-Service -Name “WSearch” để ngừng dịch vụ “Tìm kiếm Windows” trên máy tính của bạn.

19. ConvertTo-HTML

PowerShell có thể cung cấp thông tin về hệ thống của bạn. Tuy nhiên, nó được trình bày ở định dạng khó đọc, bạn có thể sử dụng ConvertTo-HTML để tạo và định dạng báo cáo để phân tích hoặc gửi báo cáo. Bạn có thể dùng ConvertTo-HTML cùng với đầu ra của một lệnh khác bằng cách sử dụng đường ống.

Ví dụ Get-Service | ConvertTo-HTML -Property Name, Status > C:\A.htm hiển thị danh sách tất cả các dịch vụ và trạng thái của chúng dưới dạng báo cáo web, được lưu trữ trong tệp “A.htm”.

VI. Kết luận

Qua các thông tin đã chia sẻ phía trên, chúng ta có thể thấy được khá nhiều lợi ích từ PowerShell. Hi vọng sẽ giúp các bạn dần thay thế được cmd bằng PowerShell, tối ưu được công việc quản trị

P.A Việt Nam cung cấp đa dạng các Plan Hosting đáp ứng yêu cầu của khách hàngHosting Phổ ThôngHosting Chất Lượng Cao