Học Geek để sử dụng Cmdlets trong PowerShell
Nếu bạn đã sử dụng ipconfig hoặc ping thông qua dấu nhắc lệnh, bạn sẽ đi được nửa đường để trở thành ninja PowerShell. Vì vậy, hãy đến và tham gia với chúng tôi khi chúng tôi khám phá các lệnh ghép ngắn trong bản cài đặt này của Geek School.
Hãy chắc chắn kiểm tra bài viết đầu tiên của chúng tôi giới thiệu PowerShell và theo dõi phần còn lại của loạt bài của chúng tôi suốt cả tuần.
Giải phẫu của một Cmdlet
Trong phần đầu tiên của Series, chúng tôi đã thấy một lệnh ghép ngắn trông giống như thế này:
Cập nhật-Trợ giúp
Các lệnh ghép ngắn PowerShell có cú pháp Verb-Noun, có thể thấy ở trên. Điều quan trọng cần lưu ý là danh từ luôn là số ít mặc dù cmdlet có thể trả về nhiều hơn một kết quả. Để xem danh sách các động từ hợp pháp trong PowerShell, bạn có thể sử dụng lệnh ghép ngắn Get-Verb.
Biết các động từ pháp lý và ghi nhớ quy tắc danh từ số ít thực sự giúp đoán tên cmdlet. Ví dụ: giả sử bạn muốn được một danh sách về dịch vụ và trạng thái của họ - điều đó đúng, dễ như Dịch vụ. Bạn nghĩ chúng tôi sẽ như thế nào được một danh sách chạy quy trình - Đúng vậy, Get-Process sẽ thực hiện thủ thuật.
Quá trình
Điều này làm cho nó thực sự dễ dàng để làm việc với bất kỳ công nghệ. Ví dụ: nếu bạn đã tải các lệnh ghép ngắn Exchange, chúng tôi có thể dễ dàng lấy danh sách các hộp thư trên máy chủ bằng cách sử dụng:
Hộp thư
Tuy nhiên, có một ngoại lệ. Trao đổi sang một bên, tất cả các lệnh cụ thể công nghệ khác sẽ yêu cầu một tiền tố. Ví dụ: nếu chúng tôi muốn có được người dùng hiện đang đăng nhập thông qua Remote Desktop, chúng tôi sẽ gõ:
Get-RDUserSession
Mà có thể được nhìn thấy trong ảnh chụp màn hình dưới đây.
Lưu ý: Ảnh chụp màn hình này được chụp trên hộp Server 2012 vì đó là nơi bạn sẽ tìm thấy hầu hết các mô-đun cụ thể về công nghệ.
Cách đây một thời gian, tôi đã đọc một bài viết của Don Jones, Bố già của PowerShell, nơi anh ấy giải thích rằng Exchange được vận chuyển trước khi tiền tố này được thêm vào lệnh ghép ngắn, vì vậy nó không bao giờ thực hiện chúng và sẽ không bao giờ.
Bí danh
Một tính năng khác mà PowerShell đi kèm là khả năng có nhiều cách để chạy cùng một lệnh - bí danh, nếu bạn muốn. Điều tuyệt vời về chúng là chúng bao gồm nhiều lệnh bạn có thể đã sử dụng trong dấu nhắc lệnh, cũng như một số bí danh Linux. Ví dụ: trong PowerShell, chúng ta có thể nhận được danh sách thư mục bằng cách sử dụng:
Get-ChildItem
Được sử dụng để sử dụng dấu nhắc lệnh? Đừng lo lắng, họ đã bảo vệ bạn.
Có nền tảng Linux? Họ cũng bảo vệ bạn.
Khi bạn đã viết kịch bản được vài năm, bạn có xu hướng lười biếng và bắt đầu sử dụng bí danh rất nhiều, nhưng điều này không giúp được những người mới sắp đọc mã của chúng tôi. Để xem lệnh nào bí danh đang chạy dưới mui xe, bạn có thể sử dụng như sau:
Bí danh-Tên ls
Mặt khác, nếu bạn cảm thấy đã đến lúc đẩy mạnh trò chơi của mình, bạn có thể sử dụng tham số định nghĩa để lấy tất cả các bí danh cho một lệnh ghép ngắn:
Get-ChildItem -Định nghĩa Get-ChildItem
Nếu bạn đến từ một số nền tảng khác, bạn có thể thêm bí danh của riêng mình bằng cách làm như sau:
Bí danh mới -Tên icanhazfilez -Value Get-ChildItem
Rõ ràng, bạn sẽ cần thay thế ic icanhazfilez, bằng tên bí danh mới của bạn và Get-ChildItem bằng lệnh ghép ngắn mà bạn muốn nó chạy dưới mui xe.
Một điều cần lưu ý là bạn mất tất cả các bí danh bạn đã xác định khi bạn đóng vỏ. Bạn có thể khắc phục điều này bằng cách thêm định nghĩa của chúng vào tập lệnh hồ sơ của bạn.
Thông số cắt ngắn
Windows PowerShell cũng cho phép bạn cắt bớt tên tham số cho đến khi chúng trở nên mơ hồ, nghĩa là cho đến khi PowerShell không còn có thể tìm ra thông số nào bạn đang nói đến. Ví dụ:
Nhận dịch vụ -Tên 'Thiết bị di động Apple' -ComputerName localhost
Giống như:
Nhận dịch vụ -Na 'Thiết bị di động Apple' -Com localhost
Nếu bạn tình cờ làm cho các tên tham số quá mơ hồ, bạn sẽ gặp lỗi.
Các lệnh kế thừa
Cuối cùng, các lệnh bạn biết và yêu thích vẫn sẽ hoạt động trong PowerShell.
ping www.google.com
Chỉ cần nhớ rằng các ứng dụng cũ như ping xuất ra một chuỗi và thường có cách tốt hơn để làm điều tương tự bằng lệnh ghép ngắn PowerShell.
Thay vì xuất ra một chuỗi văn bản dài, giờ đây chúng ta chỉ còn một đối tượng, mà chúng ta sẽ xem xét trong phiên bản ngày mai của Geek School.