Αρχική σελίδα » πως να » Geek School Μάθετε πώς να επεκτείνετε το PowerShell

    Geek School Μάθετε πώς να επεκτείνετε το PowerShell

    Το PowerShell προσφέρει δύο τρόπους για να επεκτείνετε το κέλυφος. Μπορείτε να χρησιμοποιήσετε είτε snapins, τα οποία είναι μόνο δυαδικά και αναπτύσσονται σε μια πλήρως προγραμματισμένη γλώσσα προγραμματισμού όπως C #, ή μπορείτε να χρησιμοποιήσετε modules, τα οποία μπορούν να είναι δυαδικά καθώς και script based.

    Βεβαιωθείτε ότι έχετε διαβάσει τα προηγούμενα άρθρα της σειράς:

    • Μάθετε πώς να αυτοματοποιήσετε τα Windows με το PowerShell
    • Μάθηση χρήσης Cmdlets στο PowerShell
    • Πώς να χρησιμοποιήσετε αντικείμενα στο PowerShell
    • Εκμάθηση μορφοποίησης, φιλτράρισμα και σύγκριση σε PowerShell
    • Μάθετε να χρησιμοποιείτε Remoting στο PowerShell
    • Χρησιμοποιώντας το PowerShell για να λάβετε πληροφορίες υπολογιστή
    • Εργασία με συλλογές στο PowerShell

    Και μείνετε συντονισμένοι για όλη την εβδομάδα.

    Snapins

    Snapins είναι τόσο πέρυσι. Όλα τα αστεία στην άκρη, snapins ποτέ δεν πιάστηκε πραγματικά μεταξύ της κοινότητας PowerShell επειδή οι περισσότεροι scripters δεν είναι προγραμματιστές και μπορείτε να γράψετε μόνο snapins σε μια γλώσσα όπως C #. Παρ 'όλα αυτά υπάρχουν ακόμα κάποια προϊόντα που χρησιμοποιούν snapins, όπως το Web Deploy για παράδειγμα. Για να δείτε τι snapins είναι διαθέσιμα για να χρησιμοποιήσετε στο κέλυφος, χρησιμοποιήστε την ακόλουθη εντολή:

    Get-PSSnapin -Registered

    Για να χρησιμοποιήσετε τις εντολές που προστέθηκαν από ένα snapin, θα πρέπει πρώτα να το εισαγάγετε στη συνεδρία σας και μπορείτε να το κάνετε έτσι:

    Προσθήκη-PSSnapin -Με όνομα WDeploySnapin3.0

    Σε αυτό το σημείο, θα λάβετε ένα σφάλμα, εάν δεν έχετε εγκαταστήσει το πρόγραμμα εγκατάστασης του Web Snapin. Εάν το έχετε εγκαταστήσει, όπως και εγώ, τότε θα εισαχθεί στη συνεδρία σας. Για να αποκτήσετε μια λίστα διαθέσιμων εντολών στο snapin, μπορείτε απλά να χρησιμοποιήσετε το cmdlet Get-Command:

    Get-Command -Module WDeploy *

    Σημείωση: Από τεχνική άποψη, αυτό δεν είναι μια ενότητα, αλλά για κάποιο λόγο εξακολουθεί να πρέπει να χρησιμοποιήσετε την παράμετρο της μονάδας.

    Ενότητες

    Οι ενότητες είναι νεώτερες και αποτελούν τη μελλοντική πορεία. Μπορούν να είναι και τα δύο scripted χρησιμοποιώντας PowerShell καθώς και κωδικοποιημένα σε μια γλώσσα όπως C #. Οι περισσότερες από τις ενσωματωμένες εντολές οργανώνονται επίσης σε ενότητες. Για να δείτε μια λίστα ενοτήτων στο σύστημά σας, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή:

    Get-Module -ListAvailable

    Καθώς τα προϊόντα ενημερώνονται, τα αντίστοιχα αντίγραφα PowerShell μεταφέρονται σε ενότητες. Για παράδειγμα, η SQL χρησιμοποίησε ένα snapin, αλλά τώρα αποτελείται από ενότητες.

    Για να χρησιμοποιήσετε μια ενότητα, πρέπει να την εισαγάγετε πρώτα.

    Εισαγωγή-Μονάδα - Πληκτρολογήστε SQLASCMDLETS

    Μπορείτε να χρησιμοποιήσετε το ίδιο κόλπο που χρησιμοποιήσαμε με τα snapins για να δείτε όλες τις εντολές που η ενότητα πρόσθεσε στο κέλυφος.

    Έτσι αφήνει το ερώτημα: πώς γνωρίζει το PowerShell τι snapins και τις ενότητες που έχετε στο σύστημά σας; Λοιπόν, snapins είναι λίγο πόνο και πρέπει να εγκατασταθεί. Μέρος της διαδικασίας εγκατάστασης περιλαμβάνει τη δημιουργία μερικών καταχωρήσεων μητρώου που εξετάζει το PowerShell για να βρει πληροφορίες snapin. Οι μονάδες, από την άλλη πλευρά, μπορούν να καταχωρηθούν με το κέλυφος απλά τοποθετώντας τους σε μία από τις θέσεις της μεταβλητής περιβάλλοντος PSModulePath. Εναλλακτικά, μπορείτε να προσθέσετε τη διαδρομή στην ενότητα στη μεταβλητή περιβάλλοντος.

    ($ env: PSModulePath) .Split (";")

    Αυτό θα φουσκώνει το περιεχόμενο της μεταβλητής. Παρατηρήστε ότι εάν έχετε εγκατεστημένη μια λειτουργική μονάδα όπως η SQL, πώς τροποποίησε τη μεταβλητή ώστε να συμπεριλάβει τη θέση της μονάδας SQL.

    Αυτόματη φόρτωση μονάδας

    Το PowerShell 3 εισήγαγε ένα φοβερό νέο χαρακτηριστικό που πηγαίνει με λίγα ονόματα. Κανένα από αυτά δεν είναι επίσημο, αλλά το "Module Auto Loading" είναι η καλύτερη περιγραφή του. Βασικά, σας επιτρέπει να χρησιμοποιείτε τα cmdlet που ανήκουν σε μια εξωτερική μονάδα χωρίς να εισάγετε ρητά την ενότητα χρησιμοποιώντας το cmdlet Import-Module. Για να το δείτε αυτό, αφαιρέστε πρώτα όλες τις μονάδες από το κέλυφος σας χρησιμοποιώντας την ακόλουθη εντολή:

    Get-Ενότητα | Remove-Module

    Στη συνέχεια, μπορείτε να ελέγξετε ότι δεν έχετε φορτώσει λειτουργικές μονάδες χρησιμοποιώντας τα εξής:

    Get-Module

    Τώρα χρησιμοποιήστε ένα cmdlet που δεν βρίσκεται στη βασική βιβλιοθήκη. Η δοκιμή σύνδεσης είναι καλή:

    Δοκιμή-Σύνδεση localhost

    Εάν ελέγξετε ξανά τις φορτισμένες μονάδες σας, θα δείτε ότι πράγματι φορτώθηκε η μονάδα.

    Αυτό είναι όλο για τους σημερινούς τύπους, ας γίνετε αύριο για περισσότερα.