Powershell Cmdlets sẽ cải thiện kỹ năng quản trị Windows của bạn

Powershell Cmdlets sẽ cải thiện kỹ năng quản trị Windows của bạn

Powershell là một cách hoàn hảo cho một lập trình viên mới bắt đầu sử dụng Windows. Powershell là công cụ dòng lệnh và ngôn ngữ lập trình kịch bản. Nó cung cấp cho bạn khả năng tự động hóa máy tính của mình thông qua các lệnh tương tự bạn sử dụng để quản lý nó . Nếu bạn có một hệ thống Windows hiện đại, bạn đã có Powershell. Hầu hết các ứng dụng của nó đều tập trung vào Windows, nhưng bạn cũng có thể cài đặt Powershell trên máy Mac hoặc máy Linux.





Làm việc với Powershell

Có hai cách để sử dụng Powershell. Có cửa sổ dòng lệnh cơ bản, được sử dụng để chạy các lệnh hoặc gọi các tập lệnh viết sẵn. Sau đó là ISE, kết hợp cửa sổ CLI với một môi trường phát triển cơ bản. Bằng cách sử dụng này, bạn có thể viết và kiểm tra các tập lệnh của mình.





ISE có một danh sách các lệnh có thể tìm kiếm và bạn có thể sử dụng Cửa sổ đầu cuối của nó mà không cần mở tệp. Danh sách lệnh cho phép bạn xây dựng lệnh của mình và chèn nó. Nếu bạn đang phát triển nâng cao hơn, hãy cài đặt Mã Visual Studio của Microsoft. Mã bao gồm hỗ trợ kiểm soát phiên bản Git và các ngôn ngữ khác.





Powershell độc đáo ở chỗ nó được xây dựng hoàn toàn bằng các lệnh, Microsoft gọi chúng là Cmdlets. Các lệnh này giống nhau nếu bạn đang làm việc thông qua dòng lệnh hoặc viết các đoạn mã phức tạp. Vì vậy, khi bạn sử dụng các lệnh này, bạn có thể nghĩ về cách xâu chuỗi chúng lại với nhau để tạo các tập lệnh đầu tiên của mình.

Khái niệm cơ bản: Get-Command, Get-Help, Get-Member

Tất cả các lệnh Powershell có dạng Động từ-Danh từ. Các động từ thường là: Nhận, Đặt và Mới .



Nhận lệnh cho phép bạn xem mọi lệnh có sẵn. Khi chạy Get-Command, bạn thấy rằng có rất nhiều lệnh bắt đầu bằng những lệnh này.

Tìm hiểu sâu hơn về tên của các lệnh ghép ngắn, bạn bắt đầu thấy rằng tất cả chúng đều có cấu trúc giống nhau. Bạn gọi chúng bằng tên, giống như bạn đã làm với Get-Command. Sử dụng các tham số thay đổi thông tin bạn nhận được. Tuy nhiên, nếu bạn đã từng chỉ sử dụng lệnh với các tùy chọn mặc định, làm thế nào để tìm hiểu cách sử dụng các tham số nâng cao?





Sử dụng Được trợ giúp lệnh ghép ngắn với Get-Command hiển thị thêm thông tin về lệnh ghép ngắn. Chúng tôi sử dụng lệnh ghép ngắn với cú pháp sau:

Get-Help Get-Command

Sau đó, bạn xem thông tin cơ bản về các tham số. Nếu bạn muốn xem chi tiết tham số và một số ví dụ sử dụng, hãy thêm tham số -Full.





Nếu bạn chỉ muốn xem các Ví dụ, bạn có thể chạy:

Get-Help Get-Command -Examples

Lệnh ghép ngắn này chỉ trả về các ví dụ từ tệp trợ giúp. Những ví dụ này khá hữu ích vì chúng bao gồm các mô tả. Văn bản trợ giúp này giải thích những gì lệnh ghép ngắn và các tham số làm khi chạy.

Nếu bạn muốn mở tệp trợ giúp ra một cửa sổ riêng, bạn có thể sử dụng -ShowWindow . Vì vậy, nếu bạn chạy:

Get-Help Get-Command -ShowWindow

Powershell bật ra một cửa sổ với đầy đủ tệp trợ giúp. Bạn không cần sử dụng tham số Full ở đây, vì cửa sổ kéo toàn bộ bài báo.

Khi bạn nâng cao hơn với Powershell, bạn sẽ thấy rằng bạn sử dụng Get-Member thường xuyên hơn. Đây là một cách dễ dàng để xem những trường nào có sẵn từ dữ liệu trả về, cũng như các phương pháp khác mà bạn có thể chạy. Thông thường, lệnh ghép ngắn sẽ có -Bất động sản để cho phép bạn gọi chúng.

Làm việc với tệp: Get-ChildItem, Remove-Item, Move-Item, Copy-Item

Bây giờ bạn đã có một số ý tưởng về cách các lệnh ghép ngắn hoạt động và cách nhận trợ giúp, hãy thực hiện các thay đổi. Bạn có thể lấy nội dung của bất kỳ thư mục nào bằng cách sử dụng Get-ChildItem chỉ huy. Ví dụ: bạn có thể lấy các tệp của toàn bộ ổ đĩa bằng cách sử dụng ký tự ổ đĩa. Vào:

Get-ChildItem E:

Viết tắt của:

Get-ChildItem -Path E:

Khi bạn chạy lệnh này, bạn sẽ nhận được danh sách các tệp có Thời gian ghi lần cuối của nó, kích thước trong thuộc tính Độ dài, Tên và Chế độ. Chế độ là các thuộc tính của một tệp hoặc thư mục. Các mục có thể là:

  • Chỉ đọc
  • Ẩn giấu
  • Hệ thống
  • Danh mục
  • Lưu trữ
  • Thiết bị
  • Bình thường
  • Tạm thời
  • Tập tin thưa thớt
  • ReparsePoint
  • Nén
  • Ngoại tuyến
  • NotContentIndexed
  • Được mã hóa

Nếu bạn muốn lấy nội dung của tất cả các thư mục con trong một đường dẫn, bạn muốn sử dụng -Recurse tham số. Vì vậy, sau đó chạy:

Get-ChildItem -Path E: -Recurse

Các tệp của bạn sau đó xuất hiện dưới dạng danh sách riêng biệt cho từng thư mục trong đường dẫn.

Để giới hạn dữ liệu trả về, bạn có thể sử dụng một số tham số khác nhau: -Tập tin , -Ẩn giấu , và -Chỉ đọc . Nếu bạn đang tìm cách lọc tên của tệp, bạn có thể sử dụng các thẻ đại diện trong tham số Đường dẫn. Để trả lại tất cả các tệp .doc trong một thư mục, hãy nhập:

Get-ChildItem -Path E:*.doc

Thêm một lần nữa -recurse nếu bạn cũng muốn mọi thứ từ các thư mục con.

Nếu bạn muốn xóa một tệp, hãy sử dụng:

Remove-Item -Path E:OldFile.txt

Để bỏ qua việc xác nhận từng tệp, hãy thêm thông số -Xác nhận $ false (Powershell có hai hằng số cho các giá trị boolean: $ true và $ false). Để buộc xóa các tệp chỉ đọc hoặc ẩn, hãy sử dụng -Lực lượng tham số.

Di chuyển tệp cũng dễ dàng. Để di chuyển mọi thứ từ ổ đĩa Flash của bạn sang ổ đĩa cục bộ trong một thư mục, hãy sử dụng:

Move-Item -Path E:* -Destination C:FlashDriveArchive

Bạn cũng có thể đặt tên cho một tệp duy nhất trong -Path để chỉ di chuyển tệp đó. Để sao chép tệp thay vì di chuyển tệp, bạn sử dụng cùng một cú pháp với Copy-Item cmdlet.

Giám sát và làm việc với các Quy trình và Dịch vụ

Mỗi Người dùng Windows biết Trình quản lý tác vụ . Tuy nhiên, có một cách nhanh hơn để xem các quy trình hiện đang chạy từ Powershell, Nhận-Xử lý . Nếu bạn muốn biết tất cả các mục trong bảng này có nghĩa là gì, hãy chuyển lệnh đến Nhận thành viên . Nhập lệnh ghép ngắn:

Get-Process | Get-Member

Get-member xuất ra danh sách các phương thức và thuộc tính được liên kết với Get-Process. Thông tin ở trên cùng là những gì bạn quan tâm. Bạn thấy nhiều loại bộ nhớ khác nhau có bí danh.

Chúng tôi cũng có thể thấy từ kết quả này rằng chúng tôi có thể nhận được Sản phẩm tài sản để có được một cái tên thân thiện hơn cho các quy trình. Hãy thay đổi kết quả đầu ra, để nó có thông tin tốt hơn để chúng tôi làm việc với:

điện thoại của bạn có sạc nhanh hơn ở chế độ năng lượng thấp không
Get-Process | Select-Object Product, NPM, CPU, Name, ID | Sort-Object CPU -Descending

(Có thêm thông tin về Chọn-Đối tượng và Sắp xếp-Đối tượng trong phần tiếp theo.)

Bây giờ bạn đã có ID từ lệnh Get-Process của mình, bạn có thể dừng nó bằng cách sử dụng lệnh ghép ngắn Stop-Process. Vì vậy, nếu bạn thấy rằng một quy trình Chrome đang ngốn tất cả tài nguyên của bạn, hãy tìm ID trong lệnh trước đó. Sau đó chạy:

Stop-Process -ID 45960

Thay thế 49560 với ID của heo tài nguyên của bạn.

Sử dụng đường dẫn tệp, bạn có thể bắt đầu một quy trình bằng Powershell. Để khởi chạy Chrome, hãy chạy lệnh sau:

Start-Process -Filepath 'C:Program Files (x86) GoogleChromeApplicationchrome.exe'

(Bạn cần có dấu ngoặc kép xung quanh đường dẫn tệp vì có khoảng trắng.) -ArgumentList tham số cho phép bạn chuyển các tùy chọn dòng lệnh cho ứng dụng. Trong trường hợp của Chrome, bạn có thể buộc nó khởi động ở Chế độ ẩn danh bằng cách sử dụng - ẩn danh lá cờ. Toàn bộ lệnh ghép ngắn là:

Start-Process -Filepath 'C:Program Files (x86) GoogleChromeApplicationchrome.exe' -ArgumentList '--incognito'

Bạn có thể làm hầu hết những điều tương tự với các dịch vụ. Nhận dịch vụ hiển thị cho bạn danh sách tất cả các dịch vụ đang chạy trên máy tính của bạn. Tương tự với các dịch vụ Bắt đầu và Dừng, bạn có thể sử dụng Dịch vụ bắt đầuDừng phục vụ .

Làm việc với dữ liệu: Sắp xếp-Đối tượng, Chọn-Đối tượng, Vị trí-Đối tượng

Khi bạn đang làm việc với dữ liệu từ một lệnh ghép ngắn, nó có thể không phải lúc nào cũng theo thứ tự bạn muốn. Trong những trường hợp đó, bạn muốn sử dụng Sắp xếp-Đối tượng . Bạn có thể gọi Sort-Object trên một biến bạn đã tạo, nhưng chủ yếu nó được sử dụng bằng cách tạo một lệnh ghép ngắn khác. Như trong ví dụ trên, chúng tôi chuyển đầu ra của một đối tượng này sang một đối tượng khác và sắp xếp nó. Hãy tạo một mảng gồm ba số ngẫu nhiên và chuyển nó vào Sort-Object.

Bất kỳ thứ gì trong ngoặc đơn đều chạy trước. Tạo một mảng đơn giản với:

$(Get-Random), $(Get-Random), $(Get-Random)

Hãy chắc chắn để ý thấy dấu phẩy phân cách các giá trị. Vì vậy, để xem các số ngẫu nhiên được sắp xếp chạy:

$(Get-Random), $(Get-Random), $(Get-Random) | Sort-Object

Lệnh ghép ngắn xuất ra các số từ nhỏ nhất đến lớn nhất, nếu bạn muốn đảo ngược nó, hãy thêm -Tăng dần .

Khi bạn chuyển các lệnh ghép ngắn thành Get-Member, có nhiều thuộc tính hơn đầu ra mặc định. Bạn chọn các thuộc tính cụ thể bằng cách sử dụng Chọn-Đối tượng .

Cũng giống như Sắp xếp-Đối tượng, bạn sử dụng Chọn-Đối tượng thông qua một lệnh ghép ngắn có đường ống. Ví dụ: để tạo một bảng các dịch vụ và trạng thái sử dụng của chúng:

Get-Service | Select-Object DisplayName, Status

Mặc dù xuất ra tất cả dữ liệu này là tốt, nhưng nếu bạn chỉ muốn xem dữ liệu cụ thể thì sao? Get-ChildItem có một số bộ lọc tích hợp, nhưng hầu hết các lệnh thì không. Trong những trường hợp đó, bạn sử dụng Đối tượng ở đâu .

Quay trở lại các dịch vụ một lần nữa, lần này bạn sẽ chỉ nhận được các dịch vụ đang chạy. Nhập lệnh ghép ngắn:

Get-Service | Where-Object Status -eq 'Running'

Điều đó -eq trong so sánh là Powershell cho = . Trong Powershell, bạn thực hiện so sánh với các tổ hợp chữ cái:

  • eq: bằng
  • ne: không bằng
  • lt: ít hơn
  • gt: lớn hơn
  • ge: lớn hơn hoặc bằng
  • le: nhỏ hơn hoặc bằng
  • like: sử dụng like trong so sánh ký tự đại diện

Trợ giúp Định dạng: Định dạng-Bảng và Định dạng-Danh sách.

Đối với các lệnh ghép ngắn khác nhau này, hầu hết đầu ra ở định dạng bảng. Điều này hiển thị dữ liệu trong các hàng và cột có tiêu đề. Để hiển thị các mục nhập được liệt kê với các thuộc tính của chúng riêng lẻ, hãy chuyển lệnh ghép ngắn tới Định dạng-Danh sách .

Đôi khi bạn có một đầu ra quá rộng đối với cửa sổ Powershell. Khi điều đó xảy ra, Powershell buộc nó vào một đầu ra danh sách. Để đảm bảo rằng bạn giữ nó trong định dạng bảng, hãy chuyển đầu ra của bạn Định dạng-Bảng .

Từ dòng lệnh đến tập lệnh: Các bước tiếp theo

Một khi bạn cảm thấy thoải mái, việc viết script là việc nhập các lệnh ghép ngắn vào một tệp văn bản và lưu nó. Đừng lo lắng về việc thử viết kịch bản. Microsoft có một lượng lớn tài liệu về mỗi lệnh ghép ngắn. Đây là phần trên và ngoài tài liệu trợ giúp vốn đã dài, vì vậy hãy nhớ xem Technet [Không còn sẵn có nữa].

Nếu bạn đang tìm hiểu Powershell, hãy cho chúng tôi biết điều bạn thích làm nhất trong phần nhận xét. Nếu bạn đã có thêm một chút kinh nghiệm, chúng tôi rất muốn nghe về các chủ đề nâng cao hơn mà bạn muốn xem được đề cập.

Đăng lại Đăng lại tiếng riu ríu E-mail Xóa các tệp và thư mục Windows này để giải phóng dung lượng đĩa

Cần xóa dung lượng ổ đĩa trên máy tính Windows của bạn? Dưới đây là các tệp và thư mục Windows có thể được xóa một cách an toàn để giải phóng dung lượng ổ đĩa.

Đọc tiếp
Chủ đề liên quan
  • các cửa sổ
  • Lập trình
  • PowerShell
  • Viết kịch bản
Giới thiệu về tác giả Michael McConnell(44 bài báo đã xuất bản)

Michael đã không sử dụng máy Mac khi họ đã chết, nhưng anh ấy có thể viết mã trong Applescript. Ông có bằng Khoa học Máy tính và Tiếng Anh; anh ấy đã viết về Mac, iOS và trò chơi điện tử được một lúc rồi; và anh ấy là một con khỉ IT ban ngày trong hơn một thập kỷ, chuyên về viết kịch bản và ảo hóa.

Xem thêm từ Michael McConnell

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký