Geek School Μάθετε να χρησιμοποιείτε Cmdlets στο PowerShell
Αν έχετε χρησιμοποιήσει το ipconfig ή ping μέσω της γραμμής εντολών, είστε στα μισά του δρόμου για να γίνετε PowerShell ninja. Ελάτε λοιπόν και ελάτε μαζί μας καθώς ανακαλύπτουμε cmdlets σε αυτή την εγκατάσταση του Geek School.
Φροντίστε να δείτε το πρώτο άρθρο που παρουσιάζει το PowerShell και να μείνετε συντονισμένοι για την υπόλοιπη σειρά μας όλη την εβδομάδα.
Η ανατομία ενός κομματιού
Στο πρώτο μέρος της σειράς είδαμε ένα cmdlet που έμοιαζε σαν κάτι τέτοιο:
Ενημέρωση-Βοήθεια
Τα cmdlet PowerShell έχουν μια σύνταξη Verb-Noun, η οποία φαίνεται παραπάνω. Το σημαντικό πράγμα που πρέπει να σημειωθεί είναι ότι το ουσιαστικό είναι πάντα μοναδικό ακόμα κι αν το cmdlet μπορεί να επιστρέψει περισσότερα από ένα αποτελέσματα. Για να δείτε μια λίστα νομικών ρημάτων στο PowerShell, μπορείτε να χρησιμοποιήσετε το cmdlet Get-Verb.
Γνωρίζοντας τα νομικά ρήματα και θυμόμαστε τον κανόνα μοναδικού ουσιαστικού βοηθά πραγματικά να μαντέψουμε τα ονόματα cmdlet. Για παράδειγμα, ας υποθέσουμε ότι θέλετε παίρνω μια λίστα με Υπηρεσίες και το καθεστώς τους - αυτό είναι σωστό, τόσο εύκολο όσο Get-Service. Πώς νομίζετε ότι θα κάναμε παίρνω μια λίστα εκτέλεσης διαδικασίες - αυτό είναι σωστό, Get-Process θα κάνει το τέχνασμα.
Get-Process
Αυτό κάνει πολύ εύκολη την εργασία με οποιαδήποτε τεχνολογία. Για παράδειγμα, εάν είχατε φορτώσει τα cmdlet του Exchange, θα μπορούσαμε εύκολα να λάβουμε μια λίστα γραμματοκιβωτίων στο διακομιστή χρησιμοποιώντας:
Λήψη γραμματοκιβωτίου
Ωστόσο, υπάρχει μια εξαίρεση. Ανταλλαγή κατά μέρος, όλες οι άλλες εντολές για την τεχνολογία θα απαιτήσουν ένα πρόθεμα. Για παράδειγμα, αν θέλαμε να αποκτήσουμε τους χρήστες που είναι συνδεδεμένοι αυτήν τη στιγμή μέσω της Απομακρυσμένης επιφάνειας εργασίας, θα πληκτρολογήσαμε:
Get-RDUserSession
Ποια μπορεί να φανεί στο παρακάτω στιγμιότυπο οθόνης.
Σημείωση: Αυτό το στιγμιότυπο λήφθηκε σε ένα κουτί του Server 2012, στο οποίο θα βρείτε τα περισσότερα από τα ειδικά τμήματα της τεχνολογίας.
Πριν από λίγο καιρό, διάβασα ένα άρθρο από τον Don Jones, ο Νονός του PowerShell, όπου εξήγησε ότι το Exchange που είχε αποσταλεί πριν από αυτό το πρόθεμα προστέθηκε στα cmdlets, οπότε ποτέ δεν τις υλοποίησε και ποτέ δεν θα.
Ψευδώνυμα
Ένα άλλο χαρακτηριστικό του PowerShell είναι η δυνατότητα να έχετε πολλαπλούς τρόπους εκτέλεσης της ίδιας εντολής - ψευδώνυμα, αν θέλετε. Το τρομερό πράγμα γι 'αυτούς είναι ότι περιλάμβαναν πολλές εντολές που ίσως χρησιμοποιούσατε στη γραμμή εντολών, καθώς και ορισμένα ψευδώνυμα Linux. Για παράδειγμα, στο PowerShell μπορούμε να λάβουμε μια λίστα καταλόγου χρησιμοποιώντας:
Get-ChildItem
Χρησιμοποιείται για τη χρήση της γραμμής εντολών; Μην ανησυχείτε, έχετε καλύψει.
Έχετε ένα περιβάλλον Linux; Σας έχουν καλύψει και εκεί.
Όταν έχετε κάνει scripting για μερικά χρόνια, έχετε την τάση να παίρνετε τεμπέληδες και να αρχίσετε να χρησιμοποιείτε τα ψευδώνυμα πολύ, αλλά αυτό δεν βοηθά τους νεοφερμένους που πρόκειται να διαβάσουν τον κώδικα μας. Για να δείτε ποια εντολή τρέχει κάτω από την κουκούλα, μπορείτε να χρησιμοποιήσετε τα εξής:
Get-Alias -Να λέει
Από την άλλη πλευρά, εάν αισθάνεστε ότι είναι ώρα να προχωρήσετε στο παιχνίδι σας, μπορείτε να χρησιμοποιήσετε την παράμετρο ορισμού για να λάβετε όλα τα ψευδώνυμα για ένα cmdlet:
Get-ChildItem-Ορισμός Get-ChildItem
Αν έρχεστε από κάποιο άλλο υπόβαθρο, μπορείτε να προσθέσετε τα δικά σας ψευδώνυμα κάνοντας τα εξής:
New-Alias-Ναί icanhazfilez -Value Get-ChildItem
Προφανώς, θα πρέπει να αντικαταστήσετε το "icanhazfilez" με το όνομα του νέου σας ψευδωνύμου και του Get-ChildItem με το cmdlet που θέλετε να εκτελείται κάτω από την κουκούλα.
Ένα πράγμα που πρέπει να σημειωθεί είναι ότι χάνετε όλα τα ψευδώνυμα που έχετε ορίσει όταν κλείνετε το κέλυφος. Μπορείτε να το περιγράψετε προσθέτοντας τον ορισμό τους στο σενάριο προφίλ σας.
Παραμορφωτικές παράμετροι
Το Windows PowerShell σας επιτρέπει επίσης να περικόψετε τα ονόματα των παραμέτρων μέχρι το σημείο που καθίστανται διφορούμενα, δηλαδή μέχρι το σημείο όπου το PowerShell δεν μπορεί πλέον να καταλάβει για ποια παράμετρο μιλάτε. Για παράδειγμα:
Get-Service -Μετά τη «Apple Mobile Device» - Όνομα υπολογιστή του υπολογιστή
Είναι το ίδιο με:
Get-Service - Μη 'Apple Mobile Device' -Με την τοπική υποδομή
Αν τυχόν κάνετε τα ονόματα των παραμέτρων υπερβολικά διφορούμενα, θα λάβετε ένα σφάλμα.
Εντολές παλαιού τύπου
Τέλος, οι εντολές που γνωρίζετε και αγαπάτε θα εξακολουθούν να λειτουργούν στο PowerShell.
ping www.google.com
Απλά θυμηθείτε ότι οι εφαρμογές κληρονομιάς όπως το ping εξάγουν μια συμβολοσειρά και συχνά υπάρχει ένας καλύτερος τρόπος για να κάνετε το ίδιο πράγμα χρησιμοποιώντας ένα cmdlet PowerShell.
Αντί να βγάζουμε μια μακρά σειρά κειμένων, αφήνουμε τώρα ένα αντικείμενο, το οποίο θα δούμε στην αυριανή έκδοση του Geek School.