Windows powershell là gì? Hướng dẫn tạo script Windows PowerShell cho người mới bắt đầu

1292
18-09-2018
Windows powershell là gì? Hướng dẫn tạo script Windows PowerShell cho người mới bắt đầu

Windows powershell là gì?

Windows PowerShell là một công cụ tự động hóa hướng đối tượng (object-oriented) và ngôn ngữ script với một trình command-line shell tương tác được thiết kế để giúp các chuyên viên IT cấu hình hệ thống và tự động hóa các tác vụ quản trị. Windows PowerShell có trong tất cả các hệ điều hành Windows hiện đại từ phiên bản Windows 2008R2 trở đi.

Không giống phần lớn các shell, chỉ chấp nhận và trả về văn bản, Windows PowerShell được xây dựng trên nền tảng của môi trường ngôn ngữ chung .NET Framework (CLR) và .NET Framework, chấp nhận và trả về các đối tượng .NET Framework. Sự thay đổi cơ bản này đem đến các công cụ và phương pháp hoàn toàn mới trong quản lý và cấu hình Windows.

Cùng Bizfly Cloud tìm hiểu về Windows PowerShell cũng giống như học cách sử dụng một công cụ đa chức năng phổ thông vậy. Một số script PowerShell cơ bản sau đây sẽ giúp bạn dễ dàng thực hiện gần như bất kỳ tác vụ quản trị nào liên quan đến môi trường Windows IT.

PowerShell cung cấp cả tùy chọn dòng lệnh và môi trường kịch bản tích hợp (ISE):

Để khởi chạy dòng lệnh PowerShell, gõ powershell.exe trong menu Start của Windows. Bạn sẽ thấy một màn hình như sau:

Windows powershell là gì? Hướng dẫn tạo script Windows PowerShell cho người mới bắt đầu - Ảnh 1.

Để khởi chạy PowerShell ISE, gõ powershell_ise.exe trong menu Start. Sử dụng PowerShell ISE thường được ưa chuộng hơn khi làm việc với ngôn ngữ script, nhờ tự động điền các lệnh, hỗ trợ các tính năng tự động hóa khác giúp đơn giản hóa việc phát triển và thử nghiệm script.

Windows powershell là gì? Hướng dẫn tạo script Windows PowerShell cho người mới bắt đầu - Ảnh 2.

Chuẩn bị chạy PowerShell script

PowerShell scripts được lưu trữ trong file .ps1. Bạn sẽ không thể chạy 1 script khi kích đúp chuột vào 1 file, nhờ vậy mà tránh được các tổn hại ngoài ý muốn đối với hệ thống. Thay vào đó, để thực thi 1 script bạn kích chuột phải vào script đó và chọn "Run with PowerShell".

Windows powershell là gì? Hướng dẫn tạo script Windows PowerShell cho người mới bắt đầu - Ảnh 3.

Ngoài ra, còn có chính sách hạn chế thực thi dòng lệnh. Bạn có thể kiểm tra policy này bằng cách sử dụng dòng lệnh trong PowerShell: Get-ExecutionPolicy

Windows powershell là gì? Hướng dẫn tạo script Windows PowerShell cho người mới bắt đầu - Ảnh 4.

Bạn sẽ nhận được 1 trong các giá trị sau:

Restrict: Không cho phép tập lệnh nào. Đây là thiết lập mặc định, vì vậy bạn sẽ thấy nó lần đầu tiên khi chạy lệnh.

Allsigned: Bạn có thể chạy các script được sign bởi 1 developer uy tín. Với cài đặt như vậy trước khi thực hiện lệnh, script sẽ cần bạn xác nhận nếu muốn chạy lệnh.

RemoteSigned: Bạn có thể chạy script của riêng mình hoặc hoặc script được sign của một developer uy tín.

Unrestricted: Bạn có thể chạy bất cứ script nào bạn muốn

Để bắt đầu làm việc với PowerShell, bạn cần thay đổi cài đặt chính sách từ Restricted thành RemoteSigned bằng lệnh Set-ExecutionPolicy RemoteSigned:

Windows powershell là gì? Hướng dẫn tạo script Windows PowerShell cho người mới bắt đầu - Ảnh 5.

PowerShell Cmdlets

Về Cmdlets – câu lệnh ngắn

- Lệnh cmdlet là lệnh PowerShell với hàm được xác định trước, tương tự như operator trong ngôn ngữ lập trình. Dưới đây là một số lưu ý quan trọng cần biết về lệnh cmdlet:

- Có các hệ thống cmdlets, người dùng cmdlets, và cmdlets tùy chỉnh.

- Các kết quả output của Cmdlets là một đối tượng hoặc như một dãy đối tượng.

- Cmdlets có thể lấy dữ liệu để phân tích hoặc chuyển dữ liệu sang một cmdlet khác sử dụng các pipe.

- Cmdlets không phân biệt chữ hoa với chữ thường. Ví dụ: bạn gõ "Get-ADUser", "get-aduser" hay "gEt-AdUsEr" đều không ảnh hưởng gì.

- Nếu bạn muốn sử dụng 1 vài cmdlets trong 1 chuỗi bạn sẽ phải phân tách chúng bằng dấu chấm phẩy (;).

Cấu trúc Cmdlet

Cấu trúc một cmdlet luôn luôn bao gồm một động từ (hoặc một từ có chức năng như một động từ) và một danh từ, được phân tách bằng dấu gạch nối (quy tắc "động từ-danh từ"). Ví dụ, các lệnh có bao gồm động từ như sau:

Get - Lệnh gọi

Set - Lệnh xác định

Start – Lệnh khởi động

Stop - Lệnh ngừng chạy

Out – Lệnh xuất

New – Lệnh tạo mới

Bạn có thể thực hành với một vài cmdlets sau:

Get-Process - Hiển thị các process hiện đang chạy trên máy của bạn.

Windows powershell là gì? Hướng dẫn tạo script Windows PowerShell cho người mới bắt đầu - Ảnh 6.

Get-Service - Hiển thị list các service kèm theo trạng thái.

Get- Content – Hiển thị nội dung file được chỉ định (ví dụ Get-ContentC:\Windows\System32\drivers\etc\hosts)

Các Cmdlets khả dụng

Bạn sẽ không phải ghi nhớ các lệnh cmdlets bởi có thể list ra toàn bộ các cmdlets sử dụng câu lệnh Get-Help –Category.

Windows powershell là gì? Hướng dẫn tạo script Windows PowerShell cho người mới bắt đầu - Ảnh 7.

Ngoài ra, bạn cũng có thể tự tạo các cmdlets riêng.

Parameters – thông số

Mỗi cmdlet lại có 1 vài thông số để tùy chỉnh. PowerShell ISE sẽ tự động đề xuất tất cả các tham số hợp lệ và các kiểu tham số sau khi bạn gõ một lệnh cmdlet và dấu nối (-):

Ví dụ lệnh cmdlet sau đây sẽ hiển thị toàn bộ các dịch vụ có tên bắt đầu bằng W:

Get-Service -Name W*

Nếu bạn quên thông số của cmdlet, chỉ cần sử dụng script như sau sẽ giúp hiển thị các tham số của lệnh cmdlet Get-Process:

Get-Process | Get-Member

Nếu bạn vẫn chưa tìm được cmdlet mình cần thì có thể sử dụng lệnh Help như trong ví dụ với lệnh Get-Process như sau:

Update-Help #to update the help data

Get-Help Get-Process -Examples

Aliases

Bạn cũng có thể sử dụng aliases, đó là tên rút gọn của cmdlet. Ví dụ, thay vì "Get-Help" bạn có thể chỉ cần dùng "Help". Bạn có thể chạy thử 2 lệnh sau và so sánh nếu chúng cho ra cùng 1 kết quả:

Start-Process notepad

start notepad

Tương tự, để dừng quá trình, bạn cũng có thể sử dụng 1 trong 2 câu lệnh sau:

Stop-Process -Name notepad

spps -Name notepad

Để hiện tất cả aliases, dùng câu lệnh Get-Alias.

Comments

Để lại nhận xét trong một script sẽ giúp bạn hiểu rõ hơn về các hành động của script. Một string comment là một dòng đơn bắt đầu bằng ký hiệu (#), block comment bắt đầu và kết thúc bằng các ký hiệu số với các dấu ngoặc nhọn chạy liên tiếp trên nhiều dòng.

Pipes

Pipes sẽ truyền dữ liệu từ một cmdlet sang cmdlet khác. Có thể dùng pipe để gọi ra toàn bộ thuộc tính của 1 đối tượng.

Ví dụ: Nếu bạn dùng script sau, bạn sẽ có tất cả các dịch vụ được phân loại theo trạng thái.

Get-Service | Sort-Object -property Status

Bạn cũng có thể dùng pipr để xuất text vào 1 file sử dụng script như sau:

"Hello, World!" | Out-File C:\ps est.txt

Có thể dùng nhiều pipe. Ví dụ, script dưới đây liết kê toàn bộ service, với pipe đầu tiên không bao gồm các dịch vụ đã dừng và pipe thứ 2 giới hạn danh sách để chỉ hiển thị tên:

Get-Service | WHERE {$_.status -eq "Running"} | SELECT displayname

# "$_." defines current element in the pipe

Tổng kết

Sau phần hướng dẫn trên, bạn đã biết cách chạy PowerShell như thế nào, làm thế nào để thay đổi chính sách thực thi lệnh, lệnh cmdlet là gì, cách truyền dữ liệu sử dụng pipe và cách lấy các thuộc tính của đối tượng. Và nhớ rằng nếu quên điều gì, bạn luôn có thể sử dụng lệnh Get-Help để được trợ giúp.

Tham khảo : https://blog.netwrix.com/2018/02/21/windows-powershell-scripting-tutorial-for-beginners/

>> Có thể bạn quan tâm: Các câu lệnh Powershell đơn giản cho mọi hệ điều hành Windows

Kể từ ngày 05/11/2018, VCCloud chính thức đổi tên thành BizFly Cloud - là nhà cung cấp các dịch vụ đám mây hàng đầu tại Việt Nam hiện nay với các dịch vụ nổi bật như: BizFly Cloud Server, BizFly CDN, BizFly Load Balancer, BizFly Pre-built Application, BizFly Business Mail, BizFly Simple Storage. Hãy tăng tốc thích nghi cho doanh nghiệp cùng các giải pháp công nghệ của BizFly Cloud tại đây.
SHARE
Hỗ trợ kỹ thuật
Kinh doanh, CSKH