Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Windows PowerShell

    Windows PowerShell

    Windows PowerShell là một command-line shell và ngôn ngữ scripting cho phép tự động hóa tác vụ và quản lý cấu hình hệ thống. Các PowerShell cmdlet có thể được thực thi trực tiếp tại cửa sổ lệnh PowerShell hoặc kết hợp lại thành các script PowerShell. PowerShell 5.1 được tích hợp sẵn trong Windows Server 2016 và Windows Server 2019.

    Cmdlets

    PowerShell sử dụng cmdlet để thực hiện các tác vụ. Cmdlet là các lệnh nhỏ thực hiện một chức năng cụ thể. Bạn có thể kết hợp nhiều cmdlet để thực hiện nhiều tác vụ dưới dạng lệnh dòng hoặc script tự động.

    Cmdlet sử dụng quy tắc đặt tên theo dạng động từ/danh từ (verb/noun) được nối bằng dấu gạch ngang (-). Điều này giúp các lệnh dễ đọc, dễ hiểu và dễ ghi nhớ hơn. Ví dụ:
    Get-Service

    Trong đó:
    • Get là hành động
    • Service là đối tượng được thao tác

    Lệnh này sẽ hiển thị danh sách tất cả các dịch vụ đang được cài đặt trên máy tính cùng trạng thái của chúng.

    Bạn có thể tinh chỉnh kết quả bằng cách thêm các tham số (parameter). Ví dụ:
    Get-Service -Name Spooler

    Lệnh trên chỉ hiển thị thông tin về dịch vụ Print Spooler.

    Nhiều cmdlet có thể được kết hợp với nhau bằng ký tự pipe (|). Pipe cho phép lấy kết quả đầu ra của cmdlet trước làm đầu vào cho cmdlet tiếp theo để lọc, định dạng hoặc xử lý tiếp.

    Ví dụ:
    Get-Service -Name Spooler | Restart-Service

    Lệnh trên sẽ lấy đối tượng dịch vụ Spooler và khởi động lại dịch vụ này.

    Đối với các công việc lặp đi lặp lại, bạn có thể lưu các cmdlet thành script PowerShell và chạy thủ công hoặc lên lịch tự động bằng Task Scheduler.

    Script PowerShell thường được lưu với phần mở rộng .ps1.

    Modules

    Nhiều sản phẩm Microsoft như SharePoint, Hyper-V hoặc Exchange có bộ cmdlet riêng dành cho sản phẩm đó.

    Các cmdlet này thường được đóng gói thành các module PowerShell. Khi cài đặt ứng dụng, module PowerShell tương ứng cũng thường được cài theo.

    Trong một số trường hợp, bạn cần tự nạp module vào môi trường PowerShell bằng cmdlet:
    Install-Module

    Ví dụ:
    • Hyper-V module
    • Active Directory module
    • Exchange module
    • Azure module

    PowerShell Integrated Scripting Environment (ISE)

    PowerShell ISE là công cụ giao diện đồ họa (GUI) cho phép:
    • Chạy lệnh PowerShell
    • Viết script
    • Debug script
    • Kiểm tra script

    PowerShell ISE có giao diện dạng tab tương tự trình duyệt web, cho phép làm việc với nhiều project cùng lúc.

    Giao diện gồm:
    • Khung trên: nơi viết script
    • Khung dưới: hiển thị kết quả thực thi
    • Khung bên phải: danh sách cmdlet có sẵn

    Sau khi hoàn thành script, bạn có thể lưu lại trực tiếp từ menu.

    PowerShell Direct

    Trong môi trường ảo hóa Hyper-V, Microsoft cung cấp tính năng PowerShell Direct.

    PowerShell Direct cho phép administrator chạy cmdlet hoặc script PowerShell bên trong máy ảo Hyper-V trực tiếp từ hệ điều hành host mà không cần quan tâm đến:
    • Network connectivity
    • Firewall
    • Remote management configuration

    Điều này giúp quản trị VM Windows Server nhanh chóng và thuận tiện hơn rất nhiều.

    Nhiều bạn mới học Windows Server thường nghĩ PowerShell chỉ là “CMD nâng cấp”. Thực tế, PowerShell là nền tảng automation cực kỳ quan trọng trong hệ sinh thái Microsoft hiện đại.

    Ngày nay:
    • Windows Server sử dụng PowerShell rất nhiều
    • Azure automation dựa mạnh vào PowerShell
    • Exchange, Hyper-V, Active Directory đều có PowerShell module riêng
    • DevOps và Infrastructure as Code cũng tận dụng PowerShell extensively

    Một số lệnh nhập môn rất quan trọng:

    Kiểm tra service:
    Get-Service

    Kiểm tra IP:
    Get-NetIPAddress

    Kiểm tra process:
    Get-Process

    Restart service:
    Restart-Service -Name Spooler

    Xem help:
    Get-Help Get-Service

    Liệt kê cmdlet:
    Get-Command

    Nếu đang học MCSA, Azure Administrator hoặc System Engineer, việc làm quen PowerShell từ sớm sẽ giúp:
    • Quản trị nhanh hơn
    • Automation tốt hơn
    • Dễ chuyển sang Cloud/DevOps
    • Scale hệ thống hiệu quả hơn

    Trong môi trường enterprise thật, rất nhiều tác vụ quản trị server được tự động hóa bằng PowerShell thay vì thao tác GUI.
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X