Powershell - Viết kịch bản

Windows PowerShell là một command-line shellscripting languageđược thiết kế đặc biệt cho quản trị hệ thống. Tương tự của nó trong Linux được gọi là Bash Scripting. Được xây dựng trên .NET Framework, Windows PowerShell giúp các chuyên gia CNTT kiểm soát và tự động hóa việc quản trị hệ điều hành Windows và các ứng dụng chạy trên môi trường Windows Server.

Các lệnh Windows PowerShell, được gọi là cmdlets, cho phép bạn quản lý máy tính từ dòng lệnh. Các nhà cung cấp Windows PowerShell cho phép bạn truy cập các kho dữ liệu, chẳng hạn như Sổ đăng ký và Kho chứng chỉ, dễ dàng như bạn truy cập vào hệ thống tệp.

Ngoài ra, Windows PowerShell có trình phân tích cú pháp biểu thức phong phú và ngôn ngữ kịch bản được phát triển đầy đủ. Vì vậy, nói một cách đơn giản, bạn có thể hoàn thành tất cả các tác vụ mà bạn thực hiện với GUI và hơn thế nữa. Windows PowerShell Scripting là một ngôn ngữ kịch bản được phát triển đầy đủ và có trình phân tích cú pháp biểu thức phong phú /

Đặc trưng

  • Cmdlets - Cmdlets thực hiện các tác vụ quản trị hệ thống thông thường, ví dụ như quản lý sổ đăng ký, dịch vụ, quy trình, nhật ký sự kiện và sử dụng Công cụ quản lý Windows (WMI).

  • Task oriented - Ngôn ngữ kịch bản PowerShell dựa trên tác vụ và cung cấp hỗ trợ cho các tập lệnh và công cụ dòng lệnh hiện có.

  • Consistent design- Vì lệnh ghép ngắn và kho dữ liệu hệ thống sử dụng cú pháp chung và có các quy ước đặt tên chung nên việc chia sẻ dữ liệu rất dễ dàng. Đầu ra từ một lệnh ghép ngắn có thể được nối với một lệnh ghép ngắn khác mà không cần bất kỳ thao tác nào.

  • Simple to Use - Đơn giản hóa, điều hướng dựa trên lệnh cho phép người dùng điều hướng sổ đăng ký và các kho dữ liệu khác tương tự như điều hướng hệ thống tệp.

  • Object based- PowerShell sở hữu khả năng thao tác đối tượng mạnh mẽ. Các đối tượng có thể được gửi trực tiếp đến các công cụ hoặc cơ sở dữ liệu khác.

  • Extensible interface. - PowerShell có thể tùy chỉnh vì các nhà cung cấp phần mềm độc lập và các nhà phát triển doanh nghiệp có thể xây dựng các công cụ và tiện ích tùy chỉnh bằng PowerShell để quản trị phần mềm của họ.

Biến

Các biến PowerShell là các đối tượng được đặt tên. Khi PowerShell hoạt động với các đối tượng, các biến này được sử dụng để làm việc với các đối tượng.

Tạo biến

Tên biến phải bắt đầu bằng $ và có thể chứa các ký tự chữ và số và dấu gạch dưới trong tên của chúng. Một biến có thể được tạo bằng cách nhập tên biến hợp lệ.

Nhập lệnh sau trong PowerShell ISE Console. Giả sử bạn đang ở trong thư mục D: \ test.

$location = Get-Location

Ở đây, chúng tôi đã tạo một biến $ location và gán cho nó đầu ra của lệnh ghép ngắn Get-Location. Nó hiện chứa vị trí hiện tại.

Sử dụng biến

Nhập lệnh sau trong PowerShell ISE Console.

$location

Đầu ra

Bạn có thể thấy kết quả sau trong bảng điều khiển PowerShell.

Path                                                                                    
----                                                                                    
D:\test

Lấy thông tin của biến

Lệnh ghép ngắn Get-Member có thể cho biết loại biến đang được sử dụng. Xem ví dụ bên dưới.

$location | Get-Member

Đầu ra

Bạn có thể thấy kết quả sau trong bảng điều khiển PowerShell.

TypeName: System.Management.Automation.PathInfo

Name          MemberType   Definition                                               
----          ----------   ----------                                               
Equals        Method       bool Equals(System.Object obj)                           
GetHashCode   Method       int GetHashCode()                                        
GetType       Method       type GetType()                                           
ToString      Method       string ToString()                                        
Drive         Property     System.Management.Automation.PSDriveInfo Drive {get;}    
Path          Property     System.String Path {get;}                                
Provider      Property     System.Management.Automation.ProviderInfo Provider {get;}
ProviderPath  Property     System.String ProviderPath {get;}