20 lệnh Windows PowerShell bạn phải biết
Windows PowerShell là trình bao dòng lệnh mới, đó là mạnh mẽ hơn và có kịch bản hơn Dấu nhắc lệnh. Trong ba năm kinh nghiệm sử dụng nó, tôi thấy nó thực sự hữu ích, đặc biệt nếu bạn tham gia nhiệm vụ tự động hóa hoặc kịch bản. Tuy nhiên, hầu hết chúng ta đều không biết về nó hoặc không thích sử dụng nó thay cho vỏ dòng lệnh cũ.
Trong bài viết này, tôi sẽ chia sẻ các lệnh hữu ích nhưng đơn giản (với ví dụ) của Windows PowerShell. Bạn có thể sử dụng các lệnh này để thực hiện nhiều nhiệm vụ - từ nhận trợ giúp đến bắt đầu các quy trình. Chúng ta bắt đầu chứ?
Chú thích: Windows PowerShell được xây dựng với tương thích ngược trong tâm trí, và do đó hỗ trợ nhiều lệnh của Dấu nhắc lệnh. Điều đó nói rằng, bạn có thể tiếp tục sử dụng các lệnh cũ trong giao diện mới, đầy màu sắc của nó.
Nhận trợ giúp [trợ giúp]
Nếu bạn chưa quen với PowerShell, bạn có thể gặp rắc rối; và trong những tình huống như vậy, Get-Help trở thành vị cứu tinh của bạn. Nó cung cấp thông tin cần thiết về lệnh ghép ngắn, lệnh, các chức năng, tập lệnh và quy trình công việc của PowerShell.
Hơn nữa, thật dễ dàng: bạn cần gõ Được giúp đỡ
tiếp theo là lệnh, trong đó, bạn tìm kiếm các chi tiết. Ví dụ: bạn có thể lấy thông tin về “Quá trình” sử dụng Nhận trợ giúp
.
Nhận lệnh [gcm]
Windows 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 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 của bạn.
Bạn chỉ cần gõ Nhận lệnh
theo sau là truy vấn tìm kiếm của bạn trong PowerShell. Ví dụ, Nhận lệnh * -Dịch vụ *
hiển thị các lệnh với “-dịch vụ” trong tên của nó Hãy nhớ sử dụng dấu hoa thị ở cả hai phía của truy vấn của bạn bởi vì nó là một thẻ hoang dã giúp tìm kiếm những điều chưa biết.
Lệnh gọi [icm]
Khi bạn muốn chạy một lệnh hoặc một kịch bản của PowerShell - cục bộ hoặc từ xa trên một hoặc nhiều máy tính - “Lệnh gọi” là bạn của bạn. Nó rất dễ sử dụng và giúp bạn điều khiển máy tính hàng loạt.
Bạn phải gõ Lệnh gọi
theo sau là lệnh hoặc tập lệnh với đường dẫn hoàn chỉnh của nó. Ví dụ, bạn có thể chạy một lệnh “Nhận sự kiện” sử dụng Gọi lệnh -ScriptBlock Get-EventLog system-Mới nhất 50
hoặc trên một máy tính từ xa “Máy chủ01” sử dụng Gọi lệnh -ScriptBlock Get-EventLog system-Mới nhất 50 -ComputerName Server01
.
Gọi-Biểu hiện [iex]
Gọi-Biểu hiện 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ó, thì lệnh này trước tiên đá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 gõ Gọi-Biểu hiện
theo sau là một lệnh hoặc một biểu thức. Chẳng hạn, bạn có thể gán một biến “Lệnh $” với một chuỗi nói lệnh “Quá trình”. Khi bạn chạy Lệnh gọi biểu thức $
, “Quá trình” được chạy như một lệnh trên máy tính cục bộ của bạn.
Gọi-WebRequest [iwr]
Bạn có thể tải về, đăng nhập và cạo để biết thông tin trên các trang web và dịch vụ web khi làm việc trên Windows PowerShell bằng Invoke-WebRequest.
Bạn phải sử dụng nó như thế nào Gọi-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ư (Gọi-WebRequest -Uri "https://docs.microsoft.com") .Links.Href
.
Set-ExecutPolicy
Mặc dù tạo và thực thi các tập lệnh (có phần mở rộng “ps1”) trong Windows PowerShell là có thể; tuy nhiên, có những hạn chế cho mục đích bảo mật. Nhưng bạn có thể chuyển cấp độ bảo mật sử dụng lệnh Set-ExecutPolicy.
Bạn có thể gõ Set-ExecutPolicy
tiếp theo là một trong bốn cấp độ bảo mật - Bị hạn chế, Đã ký từ xa, Tất cả đã ký hoặc Không bị hạn chế để 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-ExecutPolicy -ExecutPolicy bị hạn chế
.
Nhận vật phẩm [gi]
Nếu bạn đang tìm kiếm thông tin về một mặt hàng tại bất kỳ vị trí cụ thể nào, giả sử một tệp trên đĩa cứng của bạn, Get-Item là cách tốt nhất để có được nó trong Windows PowerShell. Bạn phải biết điều đó 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 được chỉ định rõ ràng.
Bạn phải gõ Nhận vật phẩm
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 được tất cả các mục (tệp hoặc thư mục) bắt đầu bằng “M” trong thư mục hiện tại bằng cách sử dụng Nhận vật phẩm M *
. 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.
Sao chép-Mục [sao chép]
Nếu bạn cần sao chép tập tin và thư mục trên đĩa lưu trữ hoặc các mục đăng ký và khóa trong sổ đăng ký, bạn có thể sử dụng Copy-Item. Nó hoạt động tương tự như “cp” lệnh chúng ta có trong Dấu nhắc lệnh, nhưng nó tốt hơn nhiều.
Bạn có thể sử dụng Sao chép-Mục
lệnh để sao chép và đổi tên các mục trong cùng một lệnh cũng như - đặt một tên mới là đích đến. Chẳng hạn, bạn có thể sao chép và đổi tên “Dịch vụ.htm” đến “MyService.txt” sử dụng Sao chép-Mục "C: \ Services.htm" -Destination "C: \ MyData \ MyService.txt"
.
Xóa-Mục [del]
Nếu bạn ước để xóa các mục chẳng hạn như các tệp, thư mục, chức năng và các khóa và biến đăng ký, Remove-Item là lệnh dành cho bạn. Điều tôi thấy thú vị là, nó cung cấp các tham số để bao gồm và loại trừ các mục.
Bạn có thể sử dụng Loại bỏ mục
lệnh để 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 “MyService.txt” với lệnh Xóa mục "C: \ MyData \ MyService.txt"
.
Nhận nội dung [con mèo]
Khi bạn cần xem nội dung của tệp văn bản tại một vị trí cụ thể, bạn mở và đọc nó trong trình soạn thảo mã / văn bản như Notepad ++. Trong Windows PowerShell, bạn có thể sử dụng Get-Content để lấy nội dung không mở tập tin.
Ví dụ: bạn có thể truy xuất 50 dòng nội dung của “Dịch vụ.htm”, sau đó bạn có thể sử dụng Nhận nội dung "C: \ Services.htm" -TotalCount 50
.
Đặt nội dung [sc]
Bạn có thể lưu văn bản vào các tệp bằng Set-Content, tương tự như “tiếng vang” lệnh của Bash Shell. Kết hợp với Get-Content, bạn cũng có thể lấy nội dung của một tệp và sao chép nó vào một tệp khác sử dụng lệnh này.
Ví dụ: bạn có thể gõ Đặt nội dung
đến viết hoặc thay thế nội dung của một tập tin với nội dung mới. Hơn nữa, bạn có thể câu lạc bộ với ví dụ của lệnh trước để lưu kết quả đầu ra của nó vào một tệp mới có tên “Sample.txt” sử dụng Nhận nội dung "C: \ Services.htm" -TotalCount 50 | Đặt nội dung "Sample.txt"
.
Biến đổi [gv]
Nếu bạn đang tìm cách sử dụng các biến trong Windows PowerShell, lệnh Get-Var biến giúp bạn trực quan hóa các giá trị của các biến. Nó hiển thị chúng ở dạng bảng và cho phép bao gồm, loại trừ và sử dụng ký tự đại diện.
Bạn có thể sử dụng lệnh này bằng cách gõ Biến đổi
tiếp theo là các tùy chọn và thông số của nó. Ví dụ: bạn có thể truy xuất giá trị cho một biến có tên “desc” sử dụng mã sau: Biến -Tên "Tên"
.
Biến-đặt [đặt]
Bạn có thể gán hoặc thay đổi / đặt lại giá trị của một biến sử dụng lệnh Set-Var biến. Là một phím tắt, bạn cũng có thể đặt một biến đơn giản bằng định dạng $ $ VarName = VarValue $, như $ desc = "Mô tả"
.
Bạn có thể sử dụng lệnh Biến-Set
theo sau là các tham số của nó để đặt một biến. Chẳng hạn, chúng ta có thể đặt giá trị cho một biến có tên “desc” sử dụng lệnh Đặt biến - -Tên "desc" -Giá trị "Mô tả"
.
Nhận-Quá trình [gps]
Chúng tôi thường sử dụng Trình quản lý tác vụ để tìm các quy trình đang chạy trên máy tính của chúng tôi. Trong Windows PowerShell, bất kỳ ai cũng có thể sử dụng Get-Process để lấy danh sách các quy trình hiện đang chạy, bạn cũng có thể xử lý thêm.
Bạn có thể viết lệnh như Quá trình
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 với “khám phá” trong tên của họ, bạn có thể gõ Nhận-Quá trình * khám phá *
(lưu ý các dấu sao).
Quá trình bắt đầu [saps]
Windows PowerShell giúp bạn dễ dàng bắt đầu một hoặc nhiều quá trình trên máy tính của bạn. Tôi thấy lệnh này rất hữu ích trong các ứng dụng kịch bản vì nó là một trong những lệnh bắt buộc bạn cần để tự động hóa một tác vụ.
Bạn có thể gõ Quá trình bắt đầu
theo sau là các tham số của nó để sử dụng lệnh. Chẳng hạn, bạn có thể bắt đầu Notepad bằng cách gõ Bắt đầu-Process -FilePath "notepad" -Verb runAs
trong Windows PowerShell.
Dừng quá trình [giết]
Bạn có thể dừng cụ thể hoặc tất cả các phiên bản của một quy trình đang chạy trên máy tính của bạn bằng cách sử dụng tên hoặc PID (ID quy trình), nhờ lệnh Dừng xử lý. Điều khiến nó hấp dẫn là, bạn có thể phát hiện một quy trình có bị dừng hay không và thậm chí bạn có thể dừng các quy trình không được sở hữu hoặc bắt đầu bởi người dùng hiện tại.
Bạn có thể gõ lệnh Dừng quá trình
theo sau là các tham số của nó để dừng các quá trình đã cho. Ví dụ: bạn có thể dừng tất cả các quy trình của Notepad bằng lệnh Dừng quá trình - Tên "notepad"
.
Nhận dịch vụ [gsv]
Khi bạn cần thông tin về các dịch vụ cụ thể (đang chạy hoặc dừng) trên máy tính của bạn, bạn có thể sử dụng Dịch vụ. Nó hiển thị các dịch vụ được cài đặt trong hệ thống của bạn 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ể gõ Nhận dịch vụ
theo sau là các tham số của nó. Ví dụ: nhập như sau Nhận dịch vụ | Trường hợp-Đối tượng $ _. Trạng thái -eq "Đang chạy"
để có được các dịch vụ “đang chạy” trên hệ thống của bạn.
Dịch vụ bắt đầu [sasv]
Nếu bạn muốn bắt đầu một dịch vụ trên máy tính của bạn, lệnh Start-Service có thể giúp bạn thực hiện tương tự từ Windows PowerShell. Tôi thấy nó đủ mạnh để bắt đầu một dịch vụ ngay cả khi dịch vụ đó bị vô hiệu hóa trên máy tính của bạn.
Bạn cần chỉ định tên của dịch vụ trong khi sử dụng lệnh Dịch vụ bắt đầu
. Ví dụ, Dịch vụ bắt đầu -Tên "Tìm kiếm"
bắt đầu dịch vụ “Tìm kiếm Windows” trên máy tính cục bộ của bạn.
Dịch vụ dừng [spsv]
Nếu bạn muốn ngừng dịch vụ trên máy tính của bạn, lệnh Stop-Service sẽ chứng minh sự hữu ích. Bạn cần chỉ định tên của dịch vụ cùng với Dừng phục vụ
. Chẳng hạn, gõ Dừng dịch vụ - Tên "Tìm kiếm"
dừng dịch vụ “Tìm kiếm Windows” trên máy tính của bạn.
Chuyển đổi sang HTML
PowerShell có thể cung cấp thông tin tuyệt vời về hệ thống của bạn. Tuy nhiên, nó chủ yếu được trình bày ở định dạng khó tiêu, nhưng bạn có thể sử dụng ConvertTo-HTML để tạo và định dạng một báo cáo để phân tích nó hoặc gửi nó cho ai đó.
Bạn có thể dùng Chuyển đổi sang 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ụ Nhận dịch vụ | ConvertTo-HTML -Property Name, Status> C: \ Services.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 “Dịch vụ.htm”.
Đó là tất cả về các lệnh thiết yếu .