10Aug
Εάν έχετε χρησιμοποιήσει ipconfig ή ping μέσω της γραμμής εντολών, είστε στα μισά του δρόμου για να γίνετε PowerShell ninja.Ελάτε λοιπόν και ελάτε μαζί μας καθώς ανακαλύπτουμε cmdlets σε αυτή την εγκατάσταση του Geek School.
Βεβαιωθείτε ότι έχετε δει το πρώτο μας άρθρο που παρουσιάζει το PowerShell και παραμείνετε συντονισμένοι για το υπόλοιπο της σειράς μας όλη την εβδομάδα.
Η ανατομία ενός cmdlet
Στο πρώτο μέρος της σειράς είδαμε ένα cmdlet που έμοιαζε σαν κάτι τέτοιο:
Update-Help
Τα cmdlets του PowerShell έχουν μια σύνταξη Verb-Noun, η οποία φαίνεται παραπάνω.Το σημαντικό πράγμα που πρέπει να σημειωθεί είναι ότι το ουσιαστικό είναι πάντα μοναδικό ακόμα κι αν το cmdlet μπορεί να επιστρέψει περισσότερα από ένα αποτελέσματα.Για να δείτε μια λίστα νομικών ρημάτων στο PowerShell, μπορείτε να χρησιμοποιήσετε το cmdlet Get-Verb.
Γνωρίζοντας τα νόμιμα ρήματα και θυμόμαστε τον κανόνα μοναδικού ουσιαστικού βοηθά πραγματικά να μαντέψουμε τα ονόματα cmdlet.Για παράδειγμα, ας υποθέσουμε ότι θέλετε να
πάρει μια λίστα με τις υπηρεσίες και την κατάστασή τους - αυτό είναι σωστό, τόσο εύκολη όσο Get-Service.Πώς πιστεύετε ότι θα μπορούσαμε να πάρει μια λίστα με τρέχουσες διεργασίες - αυτό είναι σωστό, Get-Process θα κάνει το τέχνασμα.Get-Process
Αυτό κάνει πολύ εύκολη την εργασία με οποιαδήποτε τεχνολογία.Για παράδειγμα, εάν είχατε φορτώσει τα cmdlet του Exchange, θα μπορούσαμε εύκολα να λάβουμε μια λίστα γραμματοκιβωτίων στον εξυπηρετητή χρησιμοποιώντας:
Get-Mailbox
Ωστόσο, υπάρχει μια εξαίρεση.Ανταλλαγή, όλες οι άλλες συγκεκριμένες εντολές τεχνολογίας θα απαιτήσουν ένα πρόθεμα.Για παράδειγμα, αν θέλαμε να βρούμε τους χρήστες που είναι συνδεδεμένοι αυτήν τη στιγμή μέσω της απομακρυσμένης επιφάνειας εργασίας, θα πληκτρολογήσαμε:
Get-RDUserSession
Ποια μπορεί να δει στο παρακάτω στιγμιότυπο οθόνης.
Σημείωση: Αυτό το στιγμιότυπο λήφθηκε σε ένα κουτί του Server 2012 καθώς εκεί θα βρείτε τις περισσότερες από τις συγκεκριμένες τεχνολογικές μονάδες.
Πριν από λίγο, διάβασα ένα άρθρο του Ντον Τζόουνς, του Νονός του PowerShell, όπου εξήγησε ότι το Exchange που είχε αποσταλεί πριν από αυτό το πρόθεμα προστέθηκε στα cmdlets, οπότε ποτέ δεν τις εφάρμοσε και ποτέ δεν θα το κάνει.
Ψευδώνυμα
Ένα άλλο χαρακτηριστικό που διαθέτει το PowerShell είναι η δυνατότητα πολλαπλών τρόπων εκτέλεσης της ίδιας εντολής - ψευδώνυμα, αν το επιθυμείτε.Το τρομερό πράγμα τους είναι ότι περιλάμβαναν πολλές εντολές που ενδεχομένως χρησιμοποιούσατε στην γραμμή εντολών, καθώς και ορισμένα ψευδώνυμα Linux.Για παράδειγμα, στο PowerShell μπορούμε να λάβουμε μια λίστα καταλόγου χρησιμοποιώντας:
Get-ChildItem
Χρησιμοποιείται για τη χρήση της γραμμής εντολών;Μην ανησυχείτε, έχετε καλύψει.
Έχετε ένα υπόβαθρο Linux;Σας έχουν καλύψει και εκεί.
Όταν έχετε scripting για μερικά χρόνια, έχετε την τάση να παίρνετε τεμπέληδες και να αρχίσετε να χρησιμοποιείτε ψευδώνυμα πολύ, αλλά αυτό δεν βοηθά τους νεοφερμένους που πρόκειται να διαβάσουν τον κώδικα μας.Για να δείτε ποια εντολή τρέχει ένα ψευδώνυμο κάτω από την κουκούλα, μπορείτε να χρησιμοποιήσετε τα εξής:
Get-Alias-NAME ls
Από την άλλη πλευρά, εάν αισθάνεστε ότι είναι ώρα να προχωρήσετε στο παιχνίδι σας, μπορείτε να χρησιμοποιήσετε την παράμετρο ορισμού για να πάρετεόλα τα ψευδώνυμα για ένα cmdlet:
Get-ChildItem-Καθορισμός Get-ChildItem
Αν έρχεστε από κάποιο άλλο υπόβαθρο, μπορείτε να προσθέσετε τα δικά σας ψευδώνυμα κάνοντας τα εξής:
New-Alias-Name 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.