Sử dụng PowerShell cho người dùng gia đình â € “Hướng dẫn cho người mới bắt đầu

Ai lại không ước mình có thể là một thầy phù thủy và thốt ra một vài từ để có những điều kỳ diệu xảy ra? Chà(Well) , chúng tôi không thể chỉ cho bạn cách trở thành một thuật sĩ, nhưng chúng tôi có thể chỉ cho bạn cách thực hiện một phép thuật nhỏ trên máy tính.

Nếu bạn có một máy tính Windows với Windows 7 trên đó, bạn đã có PowerShell . Ngoài ra, nếu bạn có máy tính chạy Windows 7(Windows 7) , vui lòng cập nhật nó để bảo mật.

Nhưng bài viết này không chỉ dành cho người dùng Windows(Windows) . Phiên bản mới nhất của PowerShell là miễn phí và có thể được cài đặt và sử dụng trên máy tính Mac và Linux .

Điều đó rất quan trọng vì những gì bạn tìm hiểu về PowerShell hiện có thể được sử dụng trên hầu hết mọi máy tính. Ai biết? Bạn có thể nâng cao kỹ năng này lên một tầm cao mới và dấn thân vào sự nghiệp Công nghệ thông tin(Information Technology) .

PowerShell là gì?

Câu trả lời công nghệ cao từ Microsoft là nó là một trình bao dòng lệnh được thiết kế đặc biệt cho các quản trị viên hệ thống. - Nghe có vẻ(” Sounds) đáng sợ. Nhưng nó không. Bạn có chăm sóc máy tính của bạn? Có, khi đó bạn là quản trị viên hệ thống trong ngôi nhà của bạn.

Bạn có cho máy tính của mình biết phải làm gì với các lần nhấp và tổ hợp phím không? Có, vì vậy hãy nghĩ về trình bao dòng lệnh chỉ là một cửa sổ khác mà bạn nhập mọi thứ vào để cho máy tính của bạn biết phải làm gì. Bạn có thể làm được việc này.

PowerShell giống như một ngôn ngữ lập trình, nhưng không khó hiểu như hầu hết các ngôn ngữ khác. Nó thực sự đọc rất nhiều thứ giống như tiếng Anh(English) thông thường , đó là điều mà Microsoft đã nỗ lực để nó có thể được những người không phải lập trình viên đón nhận.

Đó là cách viết một vài dòng lệnh, được gọi là script, để khiến hệ điều hành Windows thực hiện điều gì đó mà bạn muốn. Sau đó, bạn có thể lưu những dòng đó trong một tệp và chạy nó bằng một cú nhấp chuột hoặc lên lịch để chạy định kỳ.

Bạn có thể làm gì với PowerShell?

Điểm cấp cao của PowerShell là có thể tự động hóa các tác vụ, vì vậy bạn không cần phải lãng phí thời gian của mình để làm những việc trần tục lặp đi lặp lại. Đối với một Quản trị viên Hệ thống(Systems Administrator) chuyên nghiệp , đó có thể là những việc như tạo người dùng mới, tạo mật khẩu cho họ và gửi e-mail với thông tin chi tiết cho người giám sát mới của họ.

Được thực hiện theo cách thủ công, với các cú nhấp chuột và nhập, quá trình đó có thể mất từ ​​5 phút đến một giờ hoặc hơn. Với các tập lệnh phù hợp, Quản trị viên Hệ thống(Systems Administrator) thậm chí có thể không phải thực hiện bất kỳ phần nào trong đó.

Nhưng bạn muốn biết bạn có thể làm gì với PowerShell tại nhà. Khá nhiều thứ mà bạn không muốn làm đi làm lại. Sử dụng nó để giải phóng dung lượng trên ổ cứng của bạn bằng cách xóa các tệp nhật ký và tạm thời mà bạn không cần.

Đặt giờ giới nghiêm trên máy tính của con bạn. Đổi tên(Rename) hoặc sắp xếp một loạt các tệp. Đó là vẻ đẹp của PowerShell . Hầu hết(Almost) mọi thứ bạn có thể làm trên máy tính của mình, bạn có thể tạo tập lệnh PowerShell để tự động hóa và chạy bằng một cú nhấp chuột hoặc theo lịch trình.

Làm cách nào để sử dụng PowerShell?

Cách dễ nhất để làm việc với PowerShell là trong Môi trường kịch bản tích hợp PowerShell (ISE)(PowerShell Integrated Scripting Environment (ISE)) . Bạn có thể tìm thấy nó bằng cách nhấp vào Start và nhập powershell ise vào thanh tìm kiếm trong Windows 10 . Bạn sẽ thấy nó như hình dưới đây.

Lần đầu tiên chúng tôi sử dụng nó, chúng tôi sẽ chạy nó với tư cách là Quản trị(Administrator) viên . Để thực hiện việc này, trước tiên bạn phải có quyền quản trị viên trên máy tính của mình. Trong Start Menu của bạn , nhấp chuột phải vào PowerShell ISE , sau đó nhấp vào Run as Administrator .

Bạn có thể nhận được cửa sổ bật lên cảnh báo Kiểm soát truy cập người dùng(User Access Control) ( UAC ) hỏi bạn có chắc chắn muốn làm điều này không. Nhấp vào (Yes) .

Bây giờ bạn đang xem IDE PowerShell(PowerShell IDE) . Ngăn trên cùng của cửa sổ (1) là ngăn tập lệnh. Đây là nơi bạn sẽ viết kịch bản của mình. Khung dưới cùng của cửa sổ (2) là khu vực giao diện điều khiển. Khi bạn kiểm tra tập lệnh của mình, bạn sẽ thấy kết quả đầu ra trong ngăn này.

Đây cũng là nơi bạn sẽ thấy các thông báo lỗi và những thông báo đó sẽ giúp bạn sửa chữa và làm cho các tập lệnh của mình tốt hơn. Ngăn ở phía bên phải của cửa sổ (3) là tiện ích bổ sung lệnh. Hãy coi nó như một từ điển của tất cả các lệnh PowerShell có sẵn cho bạn.

PowerShell được thiết lập để không chạy bất kỳ tập lệnh nào ngoài những tập lệnh đã là một phần của Windows . Bạn sẽ cần thay đổi nó để bạn có thể chạy các tập lệnh của riêng mình.

Trong cửa sổ tập lệnh, hãy sao chép và dán những thứ sau:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Phần Set-ExecutionPolicy của nó được gọi là lệnh ghép ngắn (phát âm là commandlet). Cmdlets là những thứ mạnh mẽ. Hãy(Think) coi chúng như những lệnh ngắn mà bạn có thể cung cấp cho WindowsWindows sẽ thực hiện một loạt những thứ phức tạp hơn để đáp ứng lệnh của bạn.

Một phép tương tự sẽ là bảo con bạn dọn dẹp phòng của chúng. Ngắn gọn(Short) và đi vào trọng tâm. Nếu con bạn thành thạo trong việc dọn dẹp phòng, thì chúng sẽ đi dọn giường, bỏ đồ vào giỏ, xếp đồ chơi và sách của chúng, và thậm chí có thể hút bụi sàn nhà. Họ hiểu rằng lệnh ghép ngắn Clean-YourRoom có ​​nghĩa là tất cả những điều đó.

Ở đầu cửa sổ, bạn sẽ thấy một đầu mũi tên màu xanh lục. Nhấp(Click) vào đó để chạy lệnh.

Phần -ExecutionPolicy cho Set-ExecutionPolicy biết chính sách nào cần đặt. Đó là một tham số. Nó đang nói, - Tôi muốn bạn làm việc trong các nguyên tắc này và thực hiện cụ thể điều này. Nó yêu cầu nó sử dụng chính sách cụ thể của RemoteSigned .

Chính sách RemoteSigned nêu rõ rằng PowerShell có thể không thực thi hoặc không chạy bất kỳ tập lệnh nào được tải xuống từ Internet trừ khi tập lệnh đó được ký bởi một nhà xuất bản đáng tin cậy.

Nói một cách vòng vo, nó cho PowerShell biết rằng bạn có thể chạy bất kỳ tập lệnh nào được tạo cục bộ bởi vì những tập lệnh đó không cần phải được ký bởi một nhà xuất bản đáng tin cậy từ xa. Bây giờ, tập lệnh PowerShell của bạn sẽ có thể chạy bất kỳ tập lệnh nào bạn viết trên máy tính của mình.

Chúng ta hãy xem một tập lệnh để xóa các tệp tạm thời. Nó không mạnh mẽ hoặc triệt để như CCleaner , nhưng CCleaner đi kèm với một loạt vấn đề riêng của nó.

Sử dụng PowerShell(Use PowerShell) để tạo dung lượng(Create Space) trên ổ cứng của bạn(Your Hard Drive)

Chúng tôi sẽ chia nhỏ tập lệnh này, từng dòng một để bạn có thể thấy nó hoạt động như thế nào. Cuối cùng, tập lệnh sẽ được hiển thị hoàn chỉnh để bạn có thể sao chép và dán nếu muốn.

$TempFileLocation = "C:\Users\username\Appdata\Local\Temp\*"

Bất cứ thứ gì có ký hiệu đô la phía trước đều là tên biến. Hãy coi nó giống như một chiếc ví(Wallet) để đựng những thứ có giá trị . Chúng tôi đang tạo một ví hoặc một biến có tên là $TempFileLocation . Dấu bằng cho PowerShell biết những gì cần đặt trong biến đó.

Trong trường hợp này, chúng tôi đang đưa vào vị trí của vị trí tệp tạm thời của Windows - C:\Users\username\AppData\Local\Temp\* . Chúng tôi đang làm điều này vì hai lý do; đó là vị trí luôn an toàn để xóa tệp và chúng tôi sẽ sử dụng vị trí đó để thông báo cho PowerShell biết nơi cần đến để xóa tệp.

Khi nó cho biết tên người dùng ở vị trí đó, hãy hoán đổi nó cho tên người dùng của bạn. Đó là tên người dùng mà bạn sử dụng để đăng nhập vào máy tính của mình. Dấu hoa thị (*) ở cuối nó là một thẻ đại diện. Những gì nó đại diện là mọi thứ trong thư mục Temp , vì mọi thứ trong thư mục Temp là tạm thời và chúng tôi muốn xóa nó.

Dấu ngoặc kép xung quanh vị trí cũng quan trọng. Điều đó cho PowerShell biết rằng những gì trong đó là một chuỗi. Hãy nghĩ(Think) về chuỗi ký tự như một chuỗi các chữ cái và ký tự. Nếu đó là những con số thông thường, chúng tôi sẽ không sử dụng dấu ngoặc kép.

$TempFile = Get-ChildItem $TempFileLocation -Recurse

Chúng tôi đang tạo một biến khác. Lần này, chúng tôi sẽ sử dụng một lệnh để tìm ra thứ gì đó để đưa vào biến $TempFile .

Get-ChildItem 

Một điều khác mà bạn sẽ nhận thấy về các lệnh ghép ngắn như Get-ChildItem là nó hoàn toàn có thể đọc được. Xem từ đầu tiên là một động từ như thế nào? Tất cả các chữ viết tắt(Cmdlets) đều bắt đầu bằng các từ chỉ hành động, vì vậy bạn ngay lập tức biết nó đang làm gì. ChildItem là hai danh từ.

Phần thứ hai của lệnh ghép ngắn sẽ luôn cho chúng ta biết PowerShell sẽ áp dụng hành động nào. ChildItem có nghĩa là tất cả các phần tử con của một vị trí gốc. Điều này giống như nói lấy tất cả các tệp trong một thư mục, với các tệp là con và thư mục là mẹ.

Lệnh ghép ngắn lấy các mục con của cái gì? Mọi thứ trong biến $TempFileLocation . PowerShell sẽ đi đến vị trí mà chúng ta đã đặt trong $ TempFileLocation trước đó và lấy tất cả các mục con ở đó. Sau đó, nó sẽ đưa chúng vào biến $TempFile .

Vậy, điều gì xảy ra với phần -Recurse ? Điều đó đang nói với Get-ChildItem để xem qua mọi thứ ở vị trí đó. Đừng đi lấy các tệp ngay lập tức bên trong thư mục mẹ. Nếu có các thư mục trong thư mục đó, hãy lấy tất cả các con của chúng, và các con của chúng, v.v. Chúng tôi sẽ nhận được tất cả.

$TempFileCount = ($TempFile).count

Có, chúng tôi đang tạo một biến thứ ba có tên là $TempFileCount và chúng tôi sẽ đặt một số vào biến đó. Đâu là số? Chà, ( $TempFile).count sẽ giúp chúng ta có được con số đó. Có thể bạn đã phát hiện ra rằng phần .count sẽ thực hiện việc đếm tất cả các tệp mà chúng tôi vừa lưu trữ trong $ TempFile .

Tại sao chúng tôi làm điều này? Chủ yếu là vì chúng tôi rất vui khi biết có bao nhiêu tệp vô dụng mà chúng tôi đang dọn dẹp bằng phần còn lại của tập lệnh để chúng tôi có thể biết nó hiệu quả như thế nào.

if($TempFileCount -eq 0)

Bây giờ chúng tôi đang thiết lập một câu lệnh có điều kiện. Bạn có thể thấy rằng nó đang hỏi â € ˜ifâ € ™. Nếu gì? Nếu điều trong ngoặc là đúng hoặc sai. Các dấu ngoặc rất quan trọng, nếu không thì If không biết phải so sánh. Ở đây, chúng tôi hỏi liệu số chúng tôi đã lưu trữ trong $TempFileCount có bằng 0 hay không.

-Eq là cách(-eq) viết tắt của bằng. Đó là một loại toán tử so sánh. Nó giống như nói với con bạn, - Nếu phòng của bạn sạch sẽ, thật tuyệt, chúng ta sẽ làm điều gì đóâ € ¦â € Câu nói này cho biết nếu số được lưu trữ trong $ TempFileCount là - tương đương với số không điều tiếp theo.

{Write-Host "There are no files in the folder $TempFileLocation" -ForegroundColor Green}

Đó là điều sẽ xảy ra nếu $TempFileCount bằng 0. Dấu ngoặc nhọn rất quan trọng. Họ yêu cầu PowerShell chỉ làm những gì bên trong chúng nếu $ TempFileCount bằng 0.

Nó sẽ ghi vào máy chủ hoặc màn hình, - Không có tệp nào trong thư mục C: \ Users \ tên người dùng \ Appdata \ Local \ Temp \ * â €. Tham số ở cuối, â € “ ForegroundColor yêu cầu PowerShell làm cho văn bản có màu xanh lục. Điều đó chỉ giúp bạn dễ dàng phân biệt với thông báo lỗi thường có màu đỏ.

Else

Bạn biết những gì khác có nghĩa là. Đây là phần "Tốt hơn hết là phòng của bạn nên sạch sẽ nếu không là phần kiểm tra xem con bạn đã dọn phòng của chúng hay chưa. Đó là điều sẽ xảy ra nếu $TempFileCount không bằng 0.

{$TempFile | Remove-Item -WhatIf -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue}

Điều này cho biết đi đến vị trí hiện tại được lưu trữ trong $TempFile . Đường thẳng đứng sau nó được gọi là đường ống. Nó hoạt động giống như một đường ống ngoài đời thực vì nó yêu cầu PowerShell chuyển nội dung của $ TempFile vào lệnh ghép ngắn, như thể nước được dẫn vào máy giặt. Sau đó lệnh ghép ngắn Remove-Item thực hiện những gì nó nói; nó loại bỏ bất cứ thứ gì ở vị trí đó.

Tham số -WhatIf rất quan trọng ở giai đoạn này. Nó yêu cầu PowerShell chạy lệnh, nhưng chỉ dùng thử, không xóa bất kỳ thứ gì. Chỉ cần(Just) cho chúng tôi thấy điều gì sẽ xảy ra nếu chúng tôi thực sự làm điều này.

Điều này cho phép bạn kiểm tra các lệnh mà không cần thay đổi bất kỳ thứ gì trên máy tính của bạn. Để lại -WhatIf trong đó cho đến khi bạn cảm thấy thoải mái rằng tập lệnh sẽ làm những gì bạn muốn và không có gì khác. Sau đó, chỉ cần xóa nó ra và script sẽ thực hiện công việc của nó.

Tham số -Confirm:$false ngăn tập lệnh hỏi bạn có thực sự muốn xóa tệp hay không. Bạn biết những gì -Recurse làm. -Force có nghĩa là xóa thứ đó không có vấn đề gì. -WarningAction được đặt thành SilentlyContinue .

Điều này ngăn tập lệnh đưa ra cảnh báo cho bạn về những gì bạn đang xóa. -ErrorAction được đặt thành SilentlyContinue để nếu có bất kỳ loại lỗi nào trong quá trình này, nó sẽ tiếp tục lặp lại.

Bây giờ chúng ta đang ở dòng cuối cùng.

Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green}

Giống như lần đầu tiên Write-Host làm, nó sẽ xuất ra câu sau, vì vậy chúng ta biết điều gì đã xảy ra. Nó sẽ cho chúng ta biết có bao nhiêu tệp đã bị xóa khỏi thư mục mà nó vừa xử lý và làm nó bằng màu xanh lục để dễ phát hiện.

Chúng ta hãy xem lại toàn bộ kịch bản:

$TempFileLocation = "C:\Users\guymcd\Appdata\Local\Temp\*"
$TempFile = Get-ChildItem $TempFileLocation -Recurse
$TempFileCount = ($TempFile).count

if($TempFileCount -eq "0") {
Write-Host "There are no files in the folder $TempFileLocation" - ForegroundColor Green
}
Else {
$TempFile | Remove-Item -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue
Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green
}

Bạn có thể sao chép và dán nó vào PowerShell ISE của mình và lưu nó dưới dạng một cái gì đó giống như delete-TemporaryFiles.ps1 . Bạn cũng có thể tuân theo quy ước đặt tên của cmdlet bây giờ khi bạn hiểu chúng.

Nếu mã không hoạt động với bạn vì lý do nào đó, bạn cũng có thể tải xuống tập lệnh PowerShell mà chúng tôi đã tạo và chỉ cần chạy nó. Chỉ cần(Just) giải nén nó trước để xem tệp script.

Bất cứ khi nào bạn muốn chạy tập lệnh này, chỉ cần nhấp chuột phải vào nó và chọn Chạy với PowerShell(Run with PowerShell) . Bảng điều khiển PowerShell sẽ bật lên trong một hoặc hai giây, trong khi tập lệnh của bạn thực hiện công việc của nó và sau đó sẽ biến mất nếu không có lỗi.

Tôi có thể tìm hiểu thêm PowerShell ở đâu?

Điều đó có vẻ như rất nhiều! Đối với tập lệnh PowerShell đầu tiên của bạn , đó là một chút công bằng. Nếu bạn đã làm được điều đó đến nay, hãy tự hoan nghênh bạn. Bạn đã học được rất nhiều ngày hôm nay, nhưng bây giờ bạn muốn tìm hiểu thêm. Thật tuyệt!

Có rất nhiều tài nguyên trên Internet để tìm hiểu thêm về PowerShell . Một nơi tốt để bắt đầu là bài viết của chúng tôi, â € œ Tạo danh sách các chương trình khởi động thông qua Command Line hoặc PowerShell(Generate a List of Startup Programs via Command Line or PowerShell) â €. Sau đó, hãy xem các tài nguyên khác sau:



About the author

Tôi là một kỹ sư phần mềm và blogger với gần 10 năm kinh nghiệm trong lĩnh vực này. Tôi chuyên tạo các bài đánh giá và hướng dẫn về công cụ cho các nền tảng Mac và Windows, cũng như cung cấp các bình luận của chuyên gia về các chủ đề phát triển phần mềm. Tôi cũng là một diễn giả và người hướng dẫn chuyên nghiệp, từng thuyết trình tại các hội nghị công nghệ trên thế giới.



Related posts