PowerShell cho người mới bắt đầu

Khi làm việc với PowerShell, điều đầu tiên chúng ta gặp phải là các lệnh (Cmdlets).
Cuộc gọi lệnh trông như thế này:

Verb-Noun -Parameter1 ValueType1 -Parameter2 ValueType2[]

Trợ giúp

Trợ giúp trong PowerShell được truy cập bằng lệnh Get-Help. Một trong các tham số có thể được chỉ định: ví dụ, chi tiết, đầy đủ, trực tuyến, showWindow.

Get-Help Get-Service -full sẽ trả về mô tả đầy đủ về hoạt động của lệnh Get-Service
Get-Help Get-S* sẽ hiển thị tất cả các lệnh và chức năng có sẵn bắt đầu bằng Get-S*

Ngoài ra còn có tài liệu chi tiết trên trang web chính thức của Microsoft.

Đây là một ví dụ trợ giúp cho lệnh Get-Evenlog

PowerShell cho người mới bắt đầu

Nếu các tham số được đặt trong dấu ngoặc vuông [] thì chúng là tùy chọn.
Nghĩa là, trong ví dụ này, tên của nhật ký là bắt buộc và tên của tham số KHÔNG. Nếu loại tham số và tên của nó được đặt trong ngoặc cùng nhau thì tham số này là tùy chọn.

Nếu bạn nhìn vào tham số EntryType, bạn có thể thấy các giá trị được đặt trong dấu ngoặc nhọn. Đối với tham số này, chúng ta chỉ có thể sử dụng các giá trị được xác định trước trong dấu ngoặc nhọn.

Bạn có thể xem thông tin về việc tham số có bắt buộc hay không trong phần mô tả bên dưới trong trường Bắt buộc. Trong ví dụ trên, thuộc tính After là tùy chọn vì Bắt buộc được đặt thành sai. Tiếp theo, chúng ta thấy trường Vị trí đối diện có nội dung Đã đặt tên. Điều này có nghĩa là bạn chỉ có thể tham chiếu tham số theo tên, nghĩa là:

Get-EventLog -LogName Application -After 2020.04.26

Vì tham số LogName có số 0 thay vì Named, điều này có nghĩa là chúng ta có thể tham chiếu đến tham số mà không cần tên nhưng bằng cách chỉ định nó theo trình tự mong muốn:

Get-EventLog Application -After 2020.04.26

Hãy giả sử thứ tự này:

Get-EventLog -Newest 5 Application

tên giả

Để chúng ta có thể sử dụng các lệnh thông thường từ bảng điều khiển trong PowerShell, có các bí danh (Bí danh).

Một bí danh ví dụ cho lệnh Set-Location là cd.

Tức là thay vì gọi lệnh

Set-Location “D:”

chúng ta có thể sử dụng

cd “D:”

Lịch Sử

Để xem lịch sử các lệnh gọi, bạn có thể sử dụng Get-History

Thực thi lệnh từ lịch sử Invoke-History 1; Gọi lịch sử 2

Xóa lịch sử

Pipeline

Một đường dẫn trong powershell là khi kết quả của hàm đầu tiên được chuyển sang hàm thứ hai. Đây là một ví dụ sử dụng đường ống:

Get-Verb | Measure-Object

Nhưng để hiểu rõ hơn về quy trình, hãy lấy một ví dụ đơn giản hơn. Có một đội

Get-Verb "get"

Nếu bạn gọi Get-Help Get-Verb -Full help thì chúng ta sẽ thấy rằng tham số Verb lấy đầu vào đường ống và ByValue được viết trong ngoặc.

PowerShell cho người mới bắt đầu

Điều này có nghĩa là chúng ta có thể viết lại Get-Động từ "get" thành "get" | Nhận động từ.
Nghĩa là, kết quả của biểu thức đầu tiên là một chuỗi và nó được chuyển đến tham số Verb của lệnh Get-Verb thông qua đầu vào đường ống theo giá trị.
Ngoài ra, đầu vào đường ống có thể là ByPropertyName. Trong trường hợp này, chúng ta sẽ truyền một đối tượng có thuộc tính có tên tương tự là Động từ.

Biến

Các biến không được gõ mạnh và được chỉ định bằng $ ở phía trước

$example = 4

Ký hiệu > có nghĩa là đưa dữ liệu vào
Ví dụ: $example > File.txt
Với biểu thức này, chúng ta sẽ đưa dữ liệu từ biến $example vào một tệp
Tương tự như Set-Content -Value $example -Path File.txt

Mảng

Khởi tạo mảng:

$ArrayExample = @(“First”, “Second”)

Khởi tạo mảng trống:

$ArrayExample = @()

Lấy giá trị theo chỉ mục:

$ArrayExample[0]

Lấy toàn bộ mảng:

$ArrayExample

Thêm một phần tử:

$ArrayExample += “Third”

$ArrayExample += @(“Fourth”, “Fifth”)

Sắp xếp theo:

$ArrayExample | Sort

$ArrayExample | Sort -Descending

Nhưng bản thân mảng vẫn không thay đổi với cách sắp xếp này. Và nếu chúng ta muốn mảng có dữ liệu được sắp xếp thì chúng ta cần gán các giá trị đã được sắp xếp:

$ArrayExample = $ArrayExample | Sort

Không có cách nào để xóa một phần tử khỏi mảng trong PowerShell, nhưng bạn có thể làm như sau:

$ArrayExample = $ArrayExample | where { $_ -ne “First” }

$ArrayExample = $ArrayExample | where { $_ -ne $ArrayExample[0] }

Xóa một mảng:

$ArrayExample = $null

Loops

Cú pháp vòng lặp:

for($i = 0; $i -lt 5; $i++){}

$i = 0
while($i -lt 5){}

$i = 0
do{} while($i -lt 5)

$i = 0
do{} until($i -lt 5)

ForEach($item in $items){}

Thoát khỏi vòng lặp break.

Bỏ qua phần tử tiếp tục.

Câu điều kiện

if () {} elseif () {} else

switch($someIntValue){
  1 { “Option 1” }
  2 { “Option 2” }
  default { “Not set” }
}

Chức năng

Định nghĩa hàm:

function Example () {
  echo &args
}

Khởi động chức năng:

Example “First argument” “Second argument”

Xác định đối số trong hàm:

function Example () {
  param($first, $second)
}

function Example ($first, $second) {}

Khởi động chức năng:

Example -first “First argument” -second “Second argument”

Ngoại lệ

try{
} catch [System.Net.WebException],[System.IO.IOException]{
} catch {
} finally{
}

Nguồn: www.habr.com

Thêm một lời nhận xét