Computer >> Hướng Dẫn Máy Tính >  >> Xử Lý Sự Cố >> Bảo Trì Máy Tính

15 Nhiệm Vụ Nâng Cao PowerShell Xử Lý Được Trên Windows 10

PowerShell có thể là một triển vọng đáng sợ cho người mới. Năm 2016, có gì đó bí ẩn và lạc hậu về giao diện dựa trên văn bản — nhưng thành thạo nó có thể giúp bạn kiểm soát máy tính theo những cách bạn có thể chưa bao giờ nghĩ đến.

Một chuyên gia có thể dùng PowerShell để thực hiện mọi loại nhiệm vụ liên quan đến mọi khu vực hệ thống của bạn, nhưng loại thành thạo đó chỉ đến với sự hiểu biết về cơ bản và rất nhiều thực hành. Bằng cách hiểu 15 nhiệm vụ này, bạn có thể bắt đầu hiểu PowerShell là gì, và có một ý tưởng về mức độ khả năng của nó.

Mở PowerShell Với Quyền Quản Trị (Elevated)

Để bắt đầu với bất kỳ nhiệm vụ nào trong số này, bạn sẽ cần mở một PowerShell prompt (dòng lệnh) với quyền cao. Để làm vậy, gõ Powershell vào thanh tìm kiếm Windows, nhấp chuột phải vào kết quả phù hợp, và chọn Run as Administrator (Chạy với tư cách Quản trị viên).

15 Nhiệm Vụ Nâng Cao PowerShell Xử Lý Được Trên Windows 10

Thay vào đó, bạn có thể chỉ gõ PowerShell vào thanh tìm kiếm và nhấn CTRL + SHIFT + ENTER để có cùng kết quả.

Thiết Lập Ngày Và Giờ

Có nhiều cách để đặt ngày trên máy tính, nhưng sự đơn giản của các lệnh PowerShell sau khiến chúng trở thành bài tập tốt cho người mới. Tuy nhiên, bạn nên cẩn thận khi điều chỉnh các tham số này trên máy tính không phải của bạn — đồng hồ hệ thống không căn chỉnh đúng có thể gây rắc rối lớn cho môi trường Active Directory.

Để bắt đầu, mở một PowerShell prompt quyền cao và nhập lệnh sau:

Set-Date -date "12/25/2016 7:30 AM"

Nhấn enter, và máy tính của bạn sẽ nghĩ rằng đó là ngày Giáng Sinh. Sau đó bạn có thể kiểm tra kiến thức bằng cách dùng cùng lệnh để đưa hệ thống về đúng ngày giờ, hoặc bảo PC tự động đặt lại ngày giờ qua ứng dụng Settings.

Điều Chỉnh Ngày Và Giờ

Trong một số trường hợp, bạn có thể muốn tinh chỉnh ngày và giờ, thay vì thay đổi hoàn toàn. Để hoàn thành nhiệm vụ này, chúng ta sẽ dùng cùng cmdlet Set-Date như trước nhưng với phương pháp hơi khác:

Set-Date (Get-Date).AddDays(2)

Ở trên, bạn thấy chúng ta chạy lệnh lấy ngày hiện tại trên máy tính, sau đó kích hoạt quy trình khác tăng ngày trong tháng lên giá trị mong muốn. Chúng ta cũng có thể dùng AddHours, AddMinutes hoặc AddSeconds để tinh chỉnh điều chỉnh này, hoặc dùng dấu trừ trước số để quay ngược thời gian thay vì tiến tới.

Kiểm Tra Tệp Và Thư Mục

Lệnh PowerShell có thể khiến việc kiểm tra tệp và thư mục có tồn tại trên máy tính trở nên dễ dàng, mà không cần bạn mất thời gian đào bới trong File Explorer. Chỉ đơn giản là dùng cmdlet Test-Path để kiểm tra xem có gì đó ở cuối đường dẫn bạn chỉ định hay không. Ví dụ, để tìm tệp tên PowerShell.xls trong thư mục Documents, tôi sẽ dùng lệnh như sau (chắc chắn đường dẫn của bạn sẽ khác tùy thuộc vào cấu trúc thư mục):

Test-Path c:\Users\Brad\Documents\PowerShell.xls

Tuy nhiên, bạn không cần biết chính xác tên tệp để chạy quét. Dấu sao (*) có thể dùng làm ký tự đại diện (wildcard), hữu ích nếu bạn muốn tìm loại tệp cụ thể, như này:

Test-Path c:\Users\Brad\Documents\*.xls

Đổi Tên Tệp Và Thư Mục

Khi bạn đã thoải mái gõ đường dẫn tệp chính xác, PowerShell có thể dùng để nhanh chóng và hiệu quả đổi tên tệp và thư mục. Chỉ nhớ mở đầu với cmdlet Rename-Item, sau đó đưa đường dẫn hiện tại, rồi tên mong muốn — như sau:

Rename-Item c:\Users\Brad\Documents\PowerShellisDifficult.xls PowerShellisEasy.xls

Di Chuyển Tệp Và Thư Mục

Di chuyển tệp và thư mục dùng PowerShell dễ dàng sau khi bạn đã dùng cmdlet Rename-Item. Chỉ cần thay thế phần lệnh nơi bạn chỉ định tên mới bằng vị trí mới của nó:

Move-Item c:\Users\Brad\Documents\PowerShellisEasy.xls c:\Users\Brad\Important Documents

Kết hợp với wildcard chúng ta dùng trước đó, và bạn có thể nhanh chóng di chuyển tệp loại cụ thể từ thư mục này sang thư mục khác:

Move-Item c:\Users\Brad\Documents\*.xls c:\Users\Brad\Important Documents

Mở Chương Trình

Cmdlet Invoke-Item mở ứng dụng hoặc tệp trực tiếp từ dấu nhắc PowerShell:

Invoke-Item c:\Windows\System32\notepad.exe

Tuy nhiên, miễn là ứng dụng nằm trong đường dẫn Windows của bạn, bạn có thể làm tương tự chỉ bằng cách gõ tên nó vào PowerShell như sau:

notepad

Mở Tệp Với Chương Trình Mặc Định

Cmdlet này thực sự có thể dùng tốt hơn để mở tệp, nhưng có một lưu ý nhỏ cần nhận biết trước. Dùng Invoke-Item để khởi tạo một tệp sẽ mở nó trong bất kỳ chương trình nào được đặt làm mặc định, vì vậy hãy chắc chắn rằng đã được thiết lập để đáp ứng nhu cầu của bạn trước:

Invoke-Item c:\MakeUseOf\Hello.txt

Mở Tệp Theo Nhóm (Batch)

Cmdlet Invoke-Item thực sự tỏa sáng khi kết hợp với dấu sao wildcard chúng ta dùng trước đó. Với lệnh này trong kho tàng, bạn có thể mở toàn bộ tệp trong một thư mục trong một nốt nhạc:

Invoke-Item c:\MakeUseOf\*.txt

Đọc Tệp Văn Bản

Giao diện dựa trên văn bản của PowerShell sẽ không bao giờ cạnh tranh được với VLC về số lượng loại tệp nó có thể hiển thị. Tuy nhiên, nó rất phù hợp để trình bày nội dung tệp .txt dùng lệnh Get-Content:

Get-Content c:\MakeUseOf\Hello.txt
15 Nhiệm Vụ Nâng Cao PowerShell Xử Lý Được Trên Windows 10

Tuy nhiên, bạn có thể chỉ muốn xem trước tệp văn bản thay vì hiển thị toàn bộ tài liệu, đặc biệt nếu nó khá lớn. Trong trường hợp này, chúng ta có thể dùng tham số -totalcount:

Get-Content c:\MakeUseOf\Hello.txt -totalcount 5
15 Nhiệm Vụ Nâng Cao PowerShell Xử Lý Được Trên Windows 10

Như bạn thấy ở trên, chỉ 5 dòng đầu tiên của tài liệu được hiển thị kết quả.

Thêm Nội Dung Vào Tệp Văn Bản

Bạn có thể tiến một bước xa hơn việc đọc nội dung tệp .txt bằng cách dùng cmdlet Add-Content:

Add-Content c:\MakeUseOf\Hello.txt "written by Brad Jones"
15 Nhiệm Vụ Nâng Cao PowerShell Xử Lý Được Trên Windows 10

Tuy nhiên, điều này chỉ đặt văn bản thêm vào cuối tài liệu như hiện trạng, có thể không chính xác những gì bạn tìm kiếm.

Ở đây, bạn có thể dùng ký tự đặc biệt để quy định bạn muốn phần thêm vào được đặt trên dòng mới:

Add-Content c:\MakeUseOf\Hello.txt "`nwritten by Brad Jones"
15 Nhiệm Vụ Nâng Cao PowerShell Xử Lý Được Trên Windows 10

Bạn có thể tìm thấy thêm vài ký tự đặc biệt đủ quan trọng để ghi nhớ, trong khi làm việc với PowerShell. Dùng `b sẽ tạo backspace, và `b tạo tab ngang. Trong khi đó, `'' tạo dấu nháy đơn và `"` tạo dấu nháy kép.

Đo Lường Tệp Văn Bản

Dù bạn đang cố gắng tìm một tệp cụ thể với tên ẩn danh, hay bạn chỉ muốn biết bạn đã sản xuất bao nhiêu dòng code trong một ngày lập trình, PowerShell cung cấp một phương pháp rất hiệu quả để đo số dòng trong tệp văn bản. Dùng lệnh sau:

Get-Content c:\MakeUseOf\Hello.txt | Measure-Object
15 Nhiệm Vụ Nâng Cao PowerShell Xử Lý Được Trên Windows 10

Bây giờ, chúng ta đang dùng hai cmdlets cùng lúc — và điều đó chỉ sẽ quan trọng hơn كلما bạn đào sâu hơn vào PowerShell.

Bảo Mật Và Quản Trị Hệ Thống

Nếu máy tính của bạn biểu hiện hành vi bất thường, bạn có thể không truy cập được các kênh bạn thường dùng để chẩn đoán vấn đề. Vào lúc như thế, biết cách lấy cùng thông tin dùng PowerShell có thể rất tiện lợi.

Get-Service là một cmdlet đáng để ghi nhớ, vì gọi nó sẽ hiển thị tất cả dịch vụ cài đặt trên máy tính cùng với trạng thái hiện tại:

Get-Service

Tuy nhiên, chúng ta có thể dùng một lệnh phức tạp hơn để quy định loại dịch vụ chúng ta muốn xem thông tin:

Get-Service | Where-Object {$_.status -eq "stopped"}

Lệnh này chỉ hiển thị dịch vụ hiện đang dừng bằng cách kiểm tra trạng thái của từng đối tượng riêng lẻ (được biểu diễn trong lệnh bằng $_). Chúng ta có thể thay từ stopped bằng running để nhận tập hợp dịch vụ ngược lại.

Khởi Động Lại Dịch Vụ

Khi bạn đã xác định dịch vụ nào gây ra vấn đề, chúng ta có thể khởi động lại nó trực tiếp từ PowerShell:

Restart-Service dbupdate

Chúng ta cũng có thể dùng tham số cho phép chúng ta tham chiếu dịch vụ bằng tên hiển thị (display name), thay vì tên hệ thống dùng có thể gây nhầm lẫn:

Restart-Service -displayname "Dropbox Update Service"

Sửa Đổi Dịch Vụ

Một số vấn đề dịch vụ có thể không được khắc phục bằng một khởi động lại đơn giản. Nếu vấn đề của bạn do một dịch vụ rắc rối mặc định mở khi khởi động, bạn có thể dùng PowerShell để thay đổi cài đặt này:

Set-Service dbupdate -startuptype "manual"

Tùy thuộc vào những gì bạn muốn đạt được, bạn cũng có thể dùng "automatic" (tự động) và "disabled" (vô hiệu hóa) thay cho từ manual (thủ công).

Làm Mới App Bị Treo

Nếu một app bị treo ở màn hình chào (splash screen) hoặc không khởi tạo được, điều đó có thể cực kỳ khó chịu. Sự chuyển sang Windows 10 nhấn mạnh app hơn chương trình truyền thống, và loại phần mềm này thường không cho người dùng nhiều cơ hội khắc phục sự cố.

Tuy nhiên, PowerShell có thể dùng để cung cấp một giải pháp thay thế cho loại vấn đề này — nhờ người đọc MakeUseOf Gary Beaty cho mẹo này:

Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}

Đây là lệnh phức tạp nhất chúng ta đã làm việc cho đến nay, vì vậy đừng nản lòng nếu bạn không hoàn toàn hiểu tất cả các yếu tố đang diễn ra. Tuy nhiên, dựa trên những gì bạn đã học về các khái niệm như cmdlets, tham số, và một số kỹ thuật dùng ở nơi khác trong bài viết này, bạn nên có thể thử giải mã ít nhất một phần những gì đang xảy ra ở trên.

Bước Tiếp Theo

15 kỹ thuật này chỉ là giới thiệu về những gì PowerShell có thể làm. Đào sâu hơn vào khả năng của nó sẽ yêu cầu một chút kiến thức lập trình, hoặc ít nhất là sự sẵn sàng học hỏi — nhưng dành thời gian sẽ mang lại kết quả.

Hướng dẫn chủ sở hữu Windows PowerShell của Microsoft là nơi tốt để bắt đầu. Từ đó, đáng giá xem subreddit PowerShell. Cảnh báo rằng phần lớn người dùng trên diễn đàn là chuyên gia, vì vậy bạn có thể cảm thấy bất lực lúc đầu. Tuy nhiên, đó là nơi tuyệt vời để xem người dùng có kinh nghiệm có thể làm gì và lấy cảm hứng để cải thiện kỹ năng.

Bạn đang tìm trợ giúp PowerShell? Hoặc sẵn sàng chia sẻ kiến thức? Tại sao không tham gia cuộc trò chuyện trong phần bình luận bên dưới?