PowerShell có thể là một triển vọng rất đáng sợ đối với người dùng mới làm quen. Vào năm 2016, có điều gì đó kỳ lạ và cổ xưa về giao diện dựa trên văn bản - nhưng việc trở nên thành thạo có thể giúp bạn kiểm soát máy tính của mình theo những cách mà bạn có thể không bao giờ nghĩ đến.
Một chuyên gia có thể sử dụng PowerShell để thực hiện tất cả các loại nhiệm vụ liên quan đến tất cả các lĩnh vực trong hệ thống của bạn, nhưng loại thành thạo đó chỉ đi kèm với sự hiểu biết về những điều cơ bản và thực hành nhiều. Bằng cách hiểu mười lăm nhiệm vụ này, bạn có thể bắt đầu hiểu PowerShell là gì và có ý tưởng về khả năng của nó đạt được bao xa.
Mở Lời nhắc PowerShell Nâng cao
Để bắt đầu với bất kỳ tác vụ nào trong số này, bạn cần mở lời nhắc PowerShell nâng cao. Để làm như vậy, hãy nhập Powershell vào thanh tìm kiếm của Windows, nhấp chuột phải kết quả thích hợp và chọn Chạy với tư cách quản trị viên .
Ngoài ra, bạn có thể chỉ cần nhập PowerShell vào thanh tìm kiếm và nhấn CTRL + SHIFT + ENTER để có được kết quả tương tự.
Đặt Ngày và Giờ
Có nhiều cách để đặt ngày trên máy tính của bạn, nhưng sự đơn giản của các lệnh PowerShell sau đây khiến chúng trở thành phương pháp tốt cho người mới làm quen. Tuy nhiên, bạn nên cẩn thận khi tinh chỉnh các thông số này trên máy tính không phải của riêng bạn - đồng hồ hệ thống được căn chỉnh không đúng cách có thể tàn phá môi trường Active Directory.
Để bắt đầu, hãy mở lời nhắc PowerShell nâng 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ẽ hiển thị rằng đó là Ngày Giáng sinh. Sau đó, bạn có thể kiểm tra khả năng học tập của mình bằng cách sử dụng lệnh tương tự để đưa hệ thống của bạn về đúng ngày và giờ hoặc yêu cầu PC của bạn đặt lại ngày và giờ tự động một lần nữa thông qua ứng dụng Cài đặt.
Điều chỉnh Ngày và Giờ
Trong một số trường hợp, bạn có thể muốn điều 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 tôi sẽ sử dụng cùng một Ngày đặt cmdlet như trước đây với một phương pháp hơi khác:
Set-Date (Get-Date).AddDays(2)
Ở trên, bạn có thể thấy rằng chúng tôi đang chạy một lệnh truy xuất ngày hiện được đặt trên máy tính, sau đó kích hoạt một quy trình khác để tăng ngày trong tháng lên giá trị mong muốn. Chúng tôi cũng có thể sử dụng AddHours , AddMinutes hoặc AddSeconds để tinh chỉnh điều chỉnh này hoặc sử dụng dấu trừ phía trước số để quay ngược thời gian thay vì tua đi.
Xác minh tệp và thư mục
Các lệnh PowerShell có thể giúp bạn dễ dàng kiểm tra xem các tệp và thư mục có tồn tại trên máy tính của mình hay không mà bạn không cần phải mất thời gian tìm hiểu trong File Explorer. Vấn đề đơn giản là sử dụng Đường dẫn thử nghiệm cmdlet để xác minh xem có bất kỳ thứ gì hiện diện ở cuối đường dẫn được chỉ định của bạn hay không. Ví dụ:để tìm một tệp có tên PowerShell.xls trong một thư mục có tiêu đề Documents, tôi sẽ sử dụng một lệnh như sau (rõ ràng, đường dẫn của bạn sẽ khác nhau tùy thuộc vào hệ thống phân cấp thư mục của bạn):
Test-Path c:\Users\Brad\Documents\PowerShell.xls
Tuy nhiên, bạn không cần phải biết chính xác tên tệp để chạy quét. Dấu hoa thị có thể được sử dụng làm ký tự đại diện, rất hữu ích nếu bạn muốn tìm kiếm một loại tệp cụ thể, như sau:
Test-Path c:\Users\Brad\Documents\*.xls
Đổi tên tệp và thư mục
Khi bạn cảm thấy thoải mái khi nhập chính xác đường dẫn tệp, PowerShell có thể được sử dụng để đổi tên tệp và thư mục một cách nhanh chóng và hiệu quả. Chỉ cần nhớ mở bằng Đổi tên mục cmdlet, sau đó cung cấp đường dẫn hiện có, sau đó là tên mong muốn của bạ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 bằng PowerShell thật dễ dàng sau khi bạn đã sử dụng Đổi tên mục cmdlet. Chỉ cần thay thế một phần của lệnh mà bạn sẽ 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 ký tự đó với ký tự đại diện mà chúng tôi đã sử dụng trước đó và bạn có thể nhanh chóng di chuyển các tệp thuộc một 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
Chương trình Mở
Mục gọi cmdlet mở ứng dụng hoặc tệp trực tiếp từ lời 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 điều tương tự chỉ cần đặt tên nó vào PowerShell như sau:
notepad
Mở tệp bằng chương trình mặc định
Lệnh ghép ngắn này thực sự có thể được sử dụng để sử dụng tốt hơn các tệp mở, nhưng có một lưu ý nhỏ cần lưu ý trước. Sử dụng Mục gọi để khởi tạo tệp sẽ mở tệp đó trong bất kỳ chương trình nào được đặt làm mặc định, vì vậy hãy đảm bảo rằng tệp đó đượ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 dưới dạng hàng loạt
Mục gọi cmdlet thực sự tỏa sáng khi nó được kết hợp với dấu hoa thị ký tự đại diện mà chúng tôi đã sử dụng trước đó. Với lệnh này trong kho vũ khí của bạn, bạn có thể mở toàn bộ thư mục có giá trị trong nháy mắt:
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ó thể cạnh tranh với VLC về số lượng loại tệp mà nó có thể hiển thị. Tuy nhiên, nó rất phù hợp để trình bày nội dung của các tệp .txt bằng cách sử dụng Get-Content lệnh:
Get-Content c:\MakeUseOf\Hello.txt
Tuy nhiên, bạn có thể chỉ muốn xem trước tệp văn bản hơn là hiển thị toàn bộ tài liệu, đặc biệt nếu nó đặc biệt lớn. Trong trường hợp này, chúng tôi có thể sử dụng -totalcount tham số:
Get-Content c:\MakeUseOf\Hello.txt -totalcount 5
Như bạn có thể thấy ở trên, kết quả là chỉ có năm dòng đầu tiên của tài liệu được hiển thị.
Thêm vào Tệp Văn bản
Bạn có thể tiến thêm một bước ngoài việc đọc nội dung của tài liệu .txt bằng cách sử dụng Nội dung bổ sung lệnh ghép ngắn:
Add-Content c:\MakeUseOf\Hello.txt "written by Brad Jones"
Tuy nhiên, điều này sẽ chỉ đặt văn bản được thêm vào cuối tài liệu như tên của nó, có thể không phải là chính xác những gì bạn đang tìm kiếm.
Tại đây, bạn có thể sử dụng một ký tự đặc biệt để quy định rằng bạn muốn phần bổ sung của mình được thêm vào một dòng mới:
Add-Content c:\MakeUseOf\Hello.txt "`nwritten by Brad Jones"
Bạn có thể thấy một vài ký tự đặc biệt khác đủ quan trọng để chuyển chúng vào bộ nhớ khi đang làm việc với PowerShell. Sử dụng `b sẽ dẫn đến một khoảng trắng lùi và` b sẽ tạo ra một tab ngang. Trong khi đó, `'sẽ tạo ra một dấu ngoặc kép và` "sẽ tạo ra một dấu ngoặc kép.
Đo lường Tệp Văn bản
Cho dù bạn đang cố gắng tìm kiếm một tệp cụ thể có tên ẩn danh hay bạn chỉ muốn biết bạn đã quản lý bao nhiêu mã để tạo ra trong quá trình lập trình một ngày, PowerShell cung cấp một phương pháp rất hiệu quả để đo số dòng trong một tệp văn bản. Sử dụng lệnh sau:
Get-Content c:\MakeUseOf\Hello.txt | Measure Object
Bây giờ, chúng tôi đang sử dụng đồng thời hai lệnh ghép ngắn - và điều đó sẽ trở nên quan trọng hơn khi bạn đi sâu hơn vào PowerShell.
Quản trị hệ thống và bảo mật
Nếu máy tính của bạn có biểu hiện bất thường, bạn có thể không có quyền truy cập vào các kênh bạn thường sử dụng để chẩn đoán sự cố. Vào những lúc như thế này, biết cách truy xuất cùng một thông tin bằng PowerShell có thể rất hữu ích.
Nhận dịch vụ là một lệnh ghép ngắn rất đáng để lưu ý, vì việc gọi nó sẽ hiển thị tất cả các dịch vụ được cài đặt trên máy tính của bạn cùng với trạng thái hiện tại của chúng:
Get-Service
Tuy nhiên, chúng ta có thể sử dụng một lệnh phức tạp hơn để quy định loại dịch vụ mà chúng ta muốn xem thông tin:
Get-Service | Where-Object {$_.status -eq "stopped"}
Thao tác này sẽ chỉ hiển thị các dịch vụ hiện đang bị 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 thị trong lệnh bằng $ _ ). Chúng tôi có thể thay thế từ dừng lại với đang chạy để nhận được tập hợp các dịch vụ ngược lại.
Khởi động lại Dịch vụ
Sau khi bạn xác định rằng một dịch vụ đang gây ra sự cố, chúng tôi có thể khởi động lại dịch vụ đó trực tiếp từ PowerShell:
Restart-Service dbupdate
Chúng tôi cũng có thể sử dụng một tham số cho phép chúng tôi tham chiếu đến dịch vụ bằng tên hiển thị của nó, thay vì tên có khả năng gây nhầm lẫn mà hệ thống sử dụng:
Restart-Service -displayname "Dropbox Update Service"
Sửa đổi Dịch vụ
Một số sự cố dịch vụ có thể không được khắc phục bằng cách khởi động lại đơn giản. Nếu sự cố của bạn là do một dịch vụ rắc rối mặc định mở khi khởi động, bạn có thể sử dụng PowerShell để thay đổi các cài đặt này:
Set-Service dbupdate -startuptype "manual"
Tùy thuộc vào những gì bạn đang cố gắng hoàn thành, bạn cũng có thể sử dụng "tự động" và "tắt" thay cho hướng dẫn sử dụng từ.
Làm mới các ứng dụng bị mắc kẹt
Nếu một ứng dụng bị kẹt ở màn hình giật gân hoặc không thể khởi chạy, điều đó có thể vô cùng khó chịu. Việc chuyển sang Windows 10 nhấn mạnh các ứng dụng hơn các 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ể được sử dụng để đưa ra giải pháp cho loại vấn đề này - cảm ơn người đọc Gary Beaty của MakeUseOf về 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 mà chúng tôi đã làm cho đến nay, vì vậy đừng nản lòng nếu bạn không hiểu rõ về tất cả các yếu tố đang hoạt động. Tuy nhiên, dựa trên những gì bạn đã học về các khái niệm như lệnh ghép ngắn, tham số và một số kỹ thuật được sử dụng ở những nơi khác trong bài viết này, bạn sẽ có thể cố gắng giải nén ít nhất một số những gì đang diễn ra ở trên.
Các bước tiếp theo
Mười lăm kỹ thuật này chỉ là phần giới thiệu về khả năng của PowerShell. Tìm hiểu sâu hơn về các khả năng của nó sẽ đòi hỏi một chút kiến thức về mã hóa hoặc ít nhất là sự sẵn sàng học hỏi - nhưng dành thời gian sẽ gặt hái được nhiều thành quả.
Hướng dẫn sử dụng Windows PowerShell của Microsoft là một nơi tốt để bắt đầu. Từ đó, bạn nên kiểm tra subreddit PowerShell. Hãy cảnh báo rằng phần lớn người dùng trong hội đồng quản trị là các chuyên gia, vì vậy bạn có thể cảm thấy chưa hiểu rõ về chuyên môn của mình lúc đầu. Tuy nhiên, đây là một nơi tuyệt vời để xem những người dùng có kinh nghiệm có khả năng và lấy cảm hứng để cải thiện kỹ năng của bạn.
Bạn đang tìm kiếm trợ giúp với PowerShell? Hay sẵn sàng và sẵn sàng chia sẻ cái nhìn sâu sắc của bạn? Tại sao không tham gia cuộc trò chuyện trong phần nhận xét bên dưới?