Εισαγωγή στο κέλυφος της γραμμής εντολών του Windows PowerShell. Πώς να γράψετε και να εκτελέσετε σενάρια PowerShell

Εργαλείο 21.06.2019
Επισκόπηση προγράμματος Η έκδοση υπολογιστή του Microsoft Excel Viewer θα επιτρέψει...
Chercher ΕργαλείοΣτο πρόσφατο χρόνια της Microsoft. Σχεδόν όλα τα νέα προϊόντα διακομιστή Microsoft απαιτούν τη χρήση του μια ολόκληρη σειράΟι εργασίες συντήρησης του συστήματος δεν μπορούν να εκτελεστούν χωρίς τη γραμμή εντολών, επομένως όλοι διαχειριστής των Windowsπρέπει να ξέρει Βασικά στοιχεία του PowerShell. Παρουσιάζοντας τα δέκα περισσότερα χρήσιμες εντολές.

1. Λήψη-Βοήθεια

Το πρώτο cmdlet που κάθε διαχειριστής πρέπει να γνωρίζει είναι το Get-Help. Με τη βοήθειά του μπορείτε να λάβετε πληροφορίες βοήθειας για οποιαδήποτε άλλη εντολή. Για παράδειγμα, για να λάβετε την πλήρη σύνταξη για την εντολή Get-Process, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή:

Get-Help -Όνομα Get-Process

Το Get-Help μπορεί επίσης να χρησιμοποιηθεί με μεμονωμένα ουσιαστικά και ρήματα. Για παράδειγμα, για να λάβετε μια λίστα εντολών με το ρήμα Get, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή:

Get-Help -Name Get-*

2.Set-ExecutionPolicy

Παρόλο που το PowerShell παρέχει τη δυνατότητα δημιουργίας και εκτέλεσης σεναρίων, αυτή η επιλογή είναι απενεργοποιημένη από προεπιλογή για να αποτρέψει την εκτέλεση κακόβουλου κώδικα. Μπορείτε να ελέγξετε τα δικαιώματα εκτέλεσης σεναρίου χρησιμοποιώντας την εντολή Set-ExecutionPolicy. Διατίθενται τέσσερα επίπεδα ασφάλειας:

Περιορισμένος- Απαγορεύεται η εκτέλεση σεναρίου. Αυτή η επιλογή είναι ενεργοποιημένη από προεπιλογή. Σε αυτήν την περίπτωση, οι εντολές μπορούν να εκτελεστούν μόνο σε διαδραστική λειτουργία.

Όλα υπογεγραμμένα- Επιτρέπεται η εκτέλεση μόνο σεναρίων υπογεγραμμένων από αξιόπιστο εκδότη.

Απομακρυσμένη υπογραφή- Επιτρέπεται η εκτέλεση οποιωνδήποτε σεναρίων που έχουν δημιουργηθεί τοπικά και τα σενάρια που δημιουργούνται σε απομακρυσμένα συστήματα, εκτελούνται μόνο εάν έχουν υπογραφεί από αξιόπιστο εκδότη.

Απεριόριστος- Επιτρέπεται η εκτέλεση απολύτως οποιωνδήποτε σεναρίων.

Για να εφαρμόσετε μια συγκεκριμένη πολιτική εκτέλεσης σεναρίου, μπορείτε να χρησιμοποιήσετε την εντολή Set-ExecutionPolicy και να καθορίσετε το όνομα της πολιτικής. Για παράδειγμα, μπορείτε να επιτρέψετε απεριόριστη εκτέλεση σεναρίου με την ακόλουθη εντολή:

Set-ExecutionPolicy Unrestricted

3.Get-ExecutionPolicy

Όταν ξεκινάτε να εργάζεστε σε έναν άγνωστο διακομιστή, θα πρέπει πρώτα να μάθετε ποια πολιτική εκτέλεσης σεναρίου ισχύει σε αυτόν. Μπορείτε να το μάθετε χρησιμοποιώντας την εντολή Get-ExecutionPolicy.

4.Get-Service

Χρησιμοποιώντας την εντολή Get-Service, μπορείτε να λάβετε μια λίστα με όλες τις υπηρεσίες που είναι εγκατεστημένες στο σύστημα. Για να ελέγξετε την κατάσταση μιας συγκεκριμένης υπηρεσίας, μπορείτε να ολοκληρώσετε την εντολή με το διακόπτη -Name με το όνομα της υπηρεσίας (επιτρέπονται οι χαρακτήρες μπαλαντέρ).

5. ConvertTo-HTML

Το PowerShell μπορεί να σας παρέχει πολλές χρήσιμες πληροφορίες για το σύστημά σας, αλλά μερικές φορές δεν αρκεί να προβάλλετε αυτές τις πληροφορίες απλώς στο παράθυρο της γραμμής εντολών. Μερικές φορές υπάρχει ανάγκη δημιουργίας αναφοράς για αποστολή σε άλλο διαχειριστή. Σε αυτήν την περίπτωση, μπορείτε να χρησιμοποιήσετε την εντολή ConvertTo-HTML, ανακατευθύνοντας την έξοδο οποιασδήποτε άλλης εντολής σε αυτήν. Πρέπει να χρησιμοποιήσετε το διακόπτη -Ιδιότητα για να παραθέσετε τις ιδιότητες που θέλετε να συμπεριλάβετε στην αναφορά HTML και να καθορίσετε ένα όνομα αρχείου.

Ας πάρουμε ως παράδειγμα την εντολή Get-Service, η οποία σας επιτρέπει να λάβετε μια λίστα υπηρεσιών και βάσει αυτής θα δημιουργήσουμε μια αναφορά HTML που θα υποδεικνύει το όνομα και την κατάσταση κάθε υπηρεσίας που είναι εγκατεστημένη στο σύστημα. Για να το κάνετε αυτό μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή:

Get-Service | ConvertTo-HTML -Όνομα ιδιότητας, Κατάσταση > C:\services.htm

6. Εξαγωγή-CSV

Οι αναφορές μπορούν να αποθηκευτούν όχι μόνο σε HTML, αλλά και να εξαχθούν σε μορφή CSV για προβολή Microsoft Excel. Η σύνταξη εντολών που χρησιμοποιείται για αυτό το σκοπό είναι παρόμοια με το ConvertTo-HTML. Πρέπει να καθορίσετε ένα όνομα αρχείου για να αποθηκεύσετε την αναφορά. Για παράδειγμα, μπορείτε να εξαγάγετε μια λίστα υπηρεσιών σε ένα αρχείο CSV με την ακόλουθη εντολή:

Get-Service | Εξαγωγή-CSV c:\service.csv

7.Επιλογή-Αντικείμενο

Όταν εκτελείτε την παραπάνω εντολή, η αναφορά CSV θα περιλαμβάνει έναν τεράστιο όγκο πληροφοριών, αλλά μερικές φορές είναι χρήσιμο να περιορίσετε τις πληροφορίες. Μπορείτε να το κάνετε αυτό χρησιμοποιώντας την εντολή Select-Object, η οποία σας επιτρέπει να καθορίσετε ποιες ιδιότητες πρέπει να περιλαμβάνονται στην αναφορά. Για παράδειγμα, για να δημιουργήσετε μια αναφορά CSV με τα ονόματα και τις καταστάσεις όλων υπηρεσίες συστήματος, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή:

Get-Service | Επιλογή-Όνομα αντικειμένου, Κατάσταση | Εξαγωγή-CSV c:\service.csv

8. Get-EventLog

Η εντολή Get-EventLog μπορεί να χρησιμοποιηθεί για την ανάλυση αρχείων καταγραφής συμβάντων. Προσφέρει μια σειρά από πρόσθετες παραμέτρους, αλλά για να πάρετε μια ιδέα για το πώς λειτουργεί, απλώς καθορίστε τον διακόπτη -Log και το όνομα του αρχείου καταγραφής. Για παράδειγμα, για να προβάλετε το αρχείο καταγραφής μιας εφαρμογής, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή:

Get-EventLog -Log "Όνομα εφαρμογής"

Στην πράξη, αυτή η εντολή χρησιμοποιείται αρκετά σπάνια. Τις περισσότερες φορές, χρησιμοποιούνται άλλες εντολές για να φιλτράρουν τα δεδομένα και να τα αποθηκεύσουν σε μορφή CSV ή HTML.

9.Get-Process

Εάν η εντολή Get-Service εμφανίζει μια λίστα με όλες τις υπηρεσίες συστήματος, τότε η εντολή Get-Process σάς επιτρέπει να αποκτήσετε μια λίστα με όλες τις εκτελούμενες αυτή τη στιγμήδιαδικασίες.

10. Διακοπή-Διαδικασία

Όταν μια διεργασία κολλάει, μπορείτε να μάθετε το όνομά της ή το αναγνωριστικό της χρησιμοποιώντας την εντολή Get-Process και, στη συνέχεια, να τερματίσετε τη διαδικασία με την εντολή Stop-Process, προσδιορίζοντας το όνομα ή το αναγνωριστικό της. Για παράδειγμα, η διαδικασία Notepad.exe για το Σημειωματάριο μπορεί να τερματιστεί με μία από τις ακόλουθες εντολές:

Stop-Process -Σημειωματάριο ονόματος Stop-Process -ID 2668

Απλά μην το ξεχνάς αυτό

Υπάρχει πάντα χώρος για δημιουργικότητα στη διοίκηση. Θέλετε να κάνετε κάποια αυτοματοποίηση μιας εργασίας ρουτίνας; Παρακαλώ! Χρειάζεται να ελέγχετε τακτικά κάτι για δραστηριότητα; Καμία ερώτηση! Θέλετε να επεξεργαστείτε κάποια γιγάντια αναφορά και να εμφανίσετε μόνο σχετικά δεδομένα; Είναι κι αυτό δυνατό. Όλες αυτές και πολλές άλλες εργασίες επιλύονται καλύτερα χρησιμοποιώντας σενάρια και το PowerShell είναι η βέλτιστη επιλογή στην περίπτωση των Windows.

Τι είναι το PowerShell και γιατί είναι καλό;

Οι χρήστες του UNIX και του Linux, και σε κάποιο σημείο και του macOS, έχουν συνηθίσει να έχουν πάντα το Bash - ένα ελαφρώς παλιομοδίτικο, αλλά καθολικό και ισχυρό εργαλείο με το οποίο μπορείτε να κάνετε εκπληκτικά πράγματα με λίγες μόνο γραμμές. Συνταγογραφείτε νέο σενάριοστο cron - και τελειώσατε, εκτελείται ήδη στον υπολογιστή ή τον διακομιστή σας και κάνει αθόρυβα κάτι χρήσιμο.

Επιστρέφοντας στα Windows (και μερικές φορές δεν μπορείτε να κάνετε χωρίς αυτό), συνειδητοποιείτε ότι τα σενάρια .bat, αν και καλά, δεν σας σώζουν πάντα: οι δυνατότητές τους είναι πολύ περιορισμένες. Και αν εξακολουθείτε να πιστεύετε ότι το PowerShell είναι ένα άγνωστο εργαλείο για το οποίο πρέπει να επιλέξετε και να διαμορφώσετε κάτι, τότε μην βιαστείτε να βγάλετε συμπεράσματα - αν το κοιτάξετε, δεν είναι καθόλου κακό.

Το Windows PowerShell είναι ένα επεκτάσιμο εργαλείο αυτοματισμού ανοιχτού κώδικα που αποτελείται από ένα κέλυφος (γραμμή εντολών) και μια γλώσσα δέσμης ενεργειών. Προβλήθηκε για πρώτη φορά το 2003 (τότε ονομαζόταν Monad). Κυκλοφόρησε το PowerShell 2.0 μέρος των Windows 7 και Windows Server 2008 R2 και έκτοτε υπάρχει στα Windows ως τυπική δυνατότητα. Συμπεριλήφθηκε ακόμη και στο Windows XP SP3. Το PowerShell είναι χτισμένο πάνω και ενσωματωμένο στο .NET Framework. Το PowerShell μπορεί να έχει πρόσβαση σε COM, WMI και ADSI και φυσικά εκτελεί επίσης εντολές κονσόλας.

Γενικά, η σικ έχει ισχυρούς δεσμούς με προϊόντα της Microsoft, ας είναι Active Directoryή διακομιστή αλληλογραφίαςΑνταλλαγή. Αυτό σας επιτρέπει να έχετε πρόσβαση σε αυτά μέσω της κονσόλας και να εκδίδετε εντολές χωρίς να συνδεθείτε στον εξοπλισμό διακομιστή.

Εάν δεν σας ενδιέφερε το PowerShell πριν, τότε πιθανότατα έχετε τη δεύτερη έκδοση. Συνιστώ την αναβάθμιση τουλάχιστον στο τρίτο - περιέχει πολύ περισσότερες δυνατότητες και χρήσιμες συμβουλές. Χωρίς να υπεισέλθω σε λεπτομέρειες, το PowerShell 2.0 περιλαμβάνει περίπου δώδεκα ενότητες και περίπου 350 εντολές και το PowerShell 3.0 έχει ήδη περίπου 2.300 cmdlet από περισσότερες από 70 ενότητες. Ο «χάκερ» έγραψε επίσης για το πώς διαφέρει η νεότερη έκδοση PowerShell 5 από τα Windows 10.

Επιλογή περιβάλλοντος ανάπτυξης και εργαλείων

Τώρα ας καταλάβουμε πού είναι πιο βολικό να γράψετε κώδικα. Μπορείτε, φυσικά, και στο Notepad, στο Notepad++ ή στο Sublime. Αλλά σε αυτή την περίπτωση αυτή δεν είναι η πιο σοφή επιλογή του συντάκτη. Είναι καλύτερο να ξεκινήσετε να εξοικειωθείτε με το PowerShell οπλισμένοι με το συμπεριλαμβανόμενο .


Αυτό δεν είναι καν πρόγραμμα επεξεργασίας, αλλά ένα σχεδόν πλήρες περιβάλλον ανάπτυξης. Υπάρχει μια δυνατότητα IntelliSense που σας επιτρέπει να προβάλετε μια λίστα με cmdlet και τις παραμέτρους, τις μεταβλητές, τα βοηθητικά προγράμματα και πολλά άλλα. Υποστηρίζονται αποσπάσματα, είναι δυνατή η επέκταση του συνόλου των λειτουργιών μέσω διαφόρων πρόσθετων. Το παράθυρο εντολών είναι επίσης πολύ χρήσιμο. Μπορείτε να συνθέσετε εντολές σε αυτό σε οπτική λειτουργία: επιλέγετε μια ενότητα, βρίσκετε το επιθυμητό cmdlet και το ρωτάτε απαιτούμενες παραμέτρους. Η εντολή που προκύπτει μπορεί να αντιγραφεί στην κονσόλα ή να εκτελεστεί αμέσως. Γενικά, ένα είδος σχεδιαστή για το admin. Και φυσικά, υπάρχει επισήμανση σύνταξης, πρόγραμμα εντοπισμού σφαλμάτων και πολλά άλλα.

Ωστόσο, το PowerShell ISE έχει επίσης άξιους ανταγωνιστές. Ένα από αυτά είναι.

Το PowerGUI είναι μια οπτική επέκταση του PowerShell. Απλοποιεί τη συναρμολόγηση δικά τους σενάριαπριν επιλέξετε τα απαιτούμενα cmdlet. Παίρνετε ό,τι χρειάζεστε για να λύσετε ένα πρόβλημα και σύρετε και αποθέστε μέρη του κώδικα μέχρι να λάβετε ένα σενάριο. Ένα από τα κύρια χαρακτηριστικά του PowerGUI είναι τα Power Packs, έτοιμα σενάρια που δημοσιεύονται από την κοινότητα των χρηστών και διατίθενται για δωρεάν πρόσβαση. Υπάρχουν απλές εντολές όπως η προσθήκη χρηστών και σύνθετες - για παράδειγμα, διαχείριση διακοπτών και εικονικών μηχανών. Όλα αυτά μπορούν εύκολα να συμπληρωθούν και να τροποποιηθούν ανάλογα με τις ανάγκες.


Οι εταιρείες Sapien είναι ένα πιο προηγμένο περιβάλλον για το οποίο έχει σχεδιαστεί κοινή ανάπτυξηένα έργο ένας μεγάλος αριθμόςσυμμετέχοντες. Αν έχεις ασχοληθεί ποτέ με Visual Studio, τότε νομίζω ότι θα παρατηρήσετε τις ομοιότητες. Ορισμένες χρήσιμες λειτουργίες του PowerShell Studio περιλαμβάνουν τον πίνακα Ribbon, υποστήριξη για απομακρυσμένο εντοπισμό σφαλμάτων και λειτουργίες μεταγλωττιστή που σας επιτρέπουν να συμπεριλάβετε σενάρια σε εκτελέσιμα αρχεία. Υπάρχει υποστήριξη διαφορετικές εκδόσεις PowerShell.


Αξίζει επίσης να αναφερθεί το πρόγραμμα περιήγησης Script για Windows PowerShell ISE. Αυτό δεν είναι ένα περιβάλλον ανάπτυξης, αλλά ένα πολύ ενδιαφέρον εργαλείο που αναπτύχθηκε από τη Microsoft. Το Script Browser παρέχει πρόσβαση σε μια βάση δεδομένων έτοιμων σεναρίων που μπορούν να χρησιμοποιηθούν ως δείγματα για τη σύνταξη του δικού σας κώδικα. Αυτό το πράγμα μπορεί επίσης να αναλύσει τον κώδικα που γράφετε και να προτείνει πώς να τον βελτιώσετε.


Μερικά χρήσιμα κόλπα

Έχοντας καταλάβει τον επεξεργαστή, μπορείτε να αρχίσετε να γράφετε κώδικα. Το PowerShell δεν είναι μια περίπλοκη γλώσσα και νομίζω ότι θα το καταφέρετε γρήγορα. Οι εντολές εδώ ονομάζονται cmdlets και καθεμία από αυτές αποτελείται από δύο μέρη. Πρώτα έρχεται η ενέργεια, για παράδειγμα Get, Set, Add, Invoke, Remove. Στη συνέχεια, υποδεικνύει σε τι στοχεύει η ενέργεια: Service, VM, AzureAccount, DHCPServerSetting. Κάθε μέρος χωρίζεται από το άλλο με παύλα. Αποδεικνύεται, για παράδειγμα, διαδικασία λήψης. Αυτή, παρεμπιπτόντως, είναι μια χρήσιμη εντολή που εμφανίζει μια λίστα διεργασιών. Ας πούμε, αν γράφεις

get - επεξεργασία BadTh *

θα δούμε κάτι σαν αυτό:

Χειρίζεται NPM (K ) PM (K ) WS (K ) VM (M ) CPU (ες ) Id ProcessName

------------------------

28 4 - 210844 - 201128 - 163 25,67 2792 BadThread

Τώρα μπορείτε να τερματίσετε την παγωμένη διαδικασία:

Μπορείτε να το δείτε αναδρομικά, αν και με λίγο πιο περίπλοκη λογική:

Μπορείτε επίσης να κάνετε

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

Λήψη - AdUser - Φίλτρο * - Ιδιότητες OfficePhone | FT OfficePhone, UserPrincipalName

PowerShell εναντίον νυχτερίδας

Μερικές φορές ένα πρόβλημα μπορεί να λυθεί είτε χρησιμοποιώντας την παλιομοδίτικη μέθοδο είτε χρησιμοποιώντας το PowerShell. Σας συνιστώ να μην είστε τεμπέλης και να χρησιμοποιήσετε το PS, έστω και μόνο επειδή έτσι θα το μάθετε πιο γρήγορα και θα μπορείτε να το χρησιμοποιείτε σε περισσότερα δύσκολες καταστάσεις. Επιπλέον, σταδιακά θα εκτιμήσετε τη σύνταξή του - πιο κομψό και συνεπές. Ακολουθούν μερικά παραδείγματα για το πώς έχουν γίνει πράγματα στο παρελθόν και πώς μπορούν να γίνουν χρησιμοποιώντας το PowerShell.

Η ακόλουθη γραμμή εντολών θα επανεκκινήσει τον υπολογιστή με καθυστέρηση δέκα δευτερολέπτων:

Έτσι μπορείτε να επανεκκινήσετε την υπηρεσία dnscache (ή οποιαδήποτε άλλη) μέσω bat:

sc stop dnscache

sc ξεκινήστε το dnscache

Μάθετε PowerShell - Βιβλία και πόροι

Αυτό το άρθρο ανοίγει μια σειρά αναρτήσεων αφιερωμένων σε PowerShell. Ναι, ήρθε η ώρα για τη γραμμή εντολών!

Εν συντομία - τι είναι το PowerShell;

  • PowerShell - κέλυφος γραμμής εντολών
  • Εντολές PowerShellεκτελούνται σε αγωγό
  • Το περιβάλλον PowerShell μπορεί να επεκταθεί ώστε να επιτρέπει διάφορες τεχνολογίες
  • και το πιο σημαντικό, η εκμάθηση του PowerShell θα σας κάνει καλύτερο διαχειριστή.

Γιατί PowerShell;

Δύο σημεία αξίζει να σημειωθούν. Πρώτα απ 'όλα, το PowerShell περιέχει μια γλώσσα δέσμης ενεργειών. Αυτή είναι μια πολύ συμπαγής γλώσσα, η οποία περιέχει μόνο περίπου δύο δωδεκάδες λέξεις-κλειδιά. Αλλά στην πραγματικότητα, το PowerShell, όπως αναφέρθηκε παραπάνω, είναι ένα κέλυφος γραμμής εντολών, όπως το cmd.exe ή το κέλυφος του UNIX Bash.

Δεύτερο σημείο: Η Microsoft δεν ενθαρρύνει την πρακτική χρήσης κονσολών GUI σε διακομιστές. Το γεγονός είναι ότι οι διακομιστές μπορούν να παρέχουν αποτελεσματική λειτουργία γραφικών διεπαφών μόνο σε βάρος της υποβάθμισης της απόδοσης του διακομιστή. Αλλά η χρήση ενός GUI σε πελάτες, ακόμα κι αν αυτοί οι πελάτες είναι συνδεδεμένοι σε διακομιστή, εξακολουθεί να είναι απολύτως αποδεκτή σήμερα. Ναι σε νέες εκδόσεις Windows Serverόλες οι λειτουργίες είναι διαθέσιμες πρώτα με χρησιμοποιώντας το PowerShellκαι μόνο τότε (και μερικά δεν είναι καθόλου διαθέσιμα) χρησιμοποιώντας τη γραφική διεπαφή του διακομιστή.

Μπορείτε να κατεβάσετε το PowerShell από τον ιστότοπο του TechNet - αλλά στα σύγχρονα λειτουργικά συστήματα MS Winodws είναι διαθέσιμο εκτός συσκευασίας.

Για να σας διευκολύνω να ξεκινήσετε να μαθαίνετε το Windows PowerShell, σας παρουσιάζω μια επιλογή από διάφορα υλικά. Ας ξεκινήσουμε τη λίστα με ένα μάθημα βίντεο από το 2009:

  • Γράφουμε το πρώτο σενάριο και εξοικειωνόμαστε με το Windows PowerShell

Πηγές Διαδικτύου:

  • Mastering PowerShell - powershell.com

Προγράμματα:

  • Πρόγραμμα περιήγησης σεναρίων για Windows PowerShell ISE. Αυτό το πρόσθετο σάς επιτρέπει να βρίσκετε εύκολα τα απαραίτητα σενάρια στο TechNet Script Center με βάση καθορισμένα κριτήρια και παραμέτρους. Εκτός από αυτό περιέχει ειδική ενότητα Script Analyzer, το οποίο μετά από ανάλυση προτείνει βελτιώσεις/αλλαγές που αυξάνουν την αποτελεσματικότητα του γραπτού σεναρίου. Αυτή η λειτουργική μονάδα είναι διαθέσιμη ως μέρος του Windows PowerShell ISE που αποτελεί μέρος του λειτουργικού συστήματος Windows. Το πρόβλημα είναι ότι ο Windows Server και το PowerShell ISE απαιτούν ενεργοποίηση. Η ίδια η άδεια πληρώνεται, αλλά μην απελπίζεστε. Θα έχετε περίπου 180 ημέρες για να δοκιμάσετε αυτό το προϊόν.
  • Dell PowerGUI -Σας επιτρέπει να απλοποιήσετε τη δημιουργία των δικών σας σεναρίων PowerShell απλή επιλογήτα απαραίτητα cmdlet που είναι κατάλληλα για την εργασία σας και να τα σύρετε στα σωστά σημεία. Ιδανικό για όσους είναι νέοι στο PowerShell αλλά έχουν μια βασική κατανόηση των εννοιών. Το PowerGUI είναι ένα εύχρηστο πρόγραμμα επεξεργασίας που είναι πιθανό να βελτιώσει την κατανόησή σας για τη συναρμολόγηση πιο περίπλοκων και προηγμένων σεναρίων, ειδικά εάν μαθαίνετε πληροφορίες καλύτερα οπτικά.

Μία από τις πιο βασικές πηγές γνώσης είναι η εξαιρετική βοήθεια του προγράμματος:

Ελπίζω ότι αυτή η λίστα πόρων θα σας βοηθήσει στη μελέτη σας. PowerShell. Ποια βιβλία και πρακτικές χρησιμοποιήσατε; Αφήστε την απάντησή σας στα σχόλια και καλή τύχη στην κατάκτηση νέων γνώσεων! 😉

Προχωρημένους χρήστες λειτουργικό σύστημαΤα Windows 10 μπορεί να έχουν ακούσει για το βοηθητικό πρόγραμμα εντολών Συμβολοσειρές PowerShell. Όσοι έχουν εμπειρία στην εργασία με Windows 7 και 8.1 μπορεί επίσης να είναι εξοικειωμένοι με αυτό. Μετά από χρόνια χρήσης της εφαρμογής γραμμής εντολών των Windows και των αρχείων .bat, ήρθε η ώρα να εξοικειωθείτε με ένα πιο ισχυρό εργαλείο.

Το PowerShell είναι μια πολύτιμη προσθήκη στη λίστα Εργαλεία των Windowsκαι η κλίμακα του μπορεί να αποθαρρύνει ορισμένους χρήστες. Τι είναι αυτό - μια γλώσσα σεναρίου ή κέλυφος εντολών? Μην ανησυχείτε: παρά τις εκτεταμένες δυνατότητες, ο καθένας μπορεί να κυριαρχήσει στο PowerShell.

Βήμα 1: Εγκατάσταση

Πρώτα, χρειαζόμαστε το ίδιο το βοηθητικό πρόγραμμα PowerShell. Εάν εκτελείτε Windows 10, έχετε ήδη εγκατεστημένο το PowerShell 5. Windows Update 10 Ενημέρωση επετείουχρησιμοποιεί την έκδοση 5.1, αλλά η διαφορά είναι απαρατήρητη. Τα Windows 8 και 8.1 χρησιμοποιούν PowerShell 4, το οποίο είναι επίσης αρκετά αρκετό. Η εγκατάσταση του PowerShell στα Windows 7 δεν θα προκαλέσει προβλήματα, αλλά θα πρέπει να κάνετε μερικά επιπλέον βήματα. Συγκεκριμένα, πρέπει να εγκαταστήσετε επιπλέον το .Net Framework. Μπορείτε να εγκαταστήσετε το Windows Management Framework, το οποίο περιλαμβάνει το PowerShell.

Το PowerShell έχει δύο διεπαφές. Οι προχωρημένοι χρήστες μπορούν να επιλέξουν μια πλήρη διεπαφή GUI γνωστή ως Ενσωματωμένο Περιβάλλον Σεναρίων (ISE). Για αρχάριους, είναι καλύτερο να χρησιμοποιήσετε την κονσόλα PowerShell, μια απλή διεπαφή σε στυλ γραμμής εντολών των Windows που βασίζεται σε κείμενο ή ακόμα και το DOS 3.2.

Για να εκτελέσετε το PowerShell ως διαχειριστής στα Windows 10, κάντε κλικ στο κουμπί Έναρξη και μετακινηθείτε προς τα κάτω στο Windows PowerShell. Στα Windows 8.1, αναζητήστε το Windows PowerShell στο φάκελο System στα Windows. Στα Windows 7, το κέλυφος βρίσκεται στο φάκελο Accessories. Ως τακτικός χρήστης, το PowerShell μπορεί να ξεκινήσει με τον ίδιο ακριβώς τρόπο χρησιμοποιώντας αριστερό κουμπίποντίκι αντί για το σωστό.

Οποτεδήποτε εκδόσεις Windowsμπορείτε να εφαρμόσετε μια αναζήτηση. Για ευκολία στη μελλοντική χρήση, μπορείτε να καρφιτσώσετε το PowerShell στη γραμμή εργασιών.

Βήμα 2: Παλιές εντολές των Windows

Η σύνταξη εντολών των Windows στο PowerShell λειτουργεί ως συνήθως. Για παράδειγμα, CDαλλάζει φακέλους, σκηνεμφανίζει μια λίστα με όλα τα αρχεία και τους φακέλους μέσα στον τρέχοντα φάκελο.

Ανάλογα με τον τρόπο εκκίνησης της κονσόλας PowerShell, μπορείτε να ξεκινήσετε c:\Windows\system32ή στο γ :\Χρήστες\ . Το παράδειγμα στο στιγμιότυπο οθόνης χρησιμοποιεί την εντολή CD..(με κενό) για να ανεβείτε ένα επίπεδο κάθε φορά και, στη συνέχεια, εκτελέστε την εντολή σκηνγια να εμφανίσετε μια λίστα αρχείων και φακέλων σε έναν κατάλογο ΝΤΟ:\.

Βήμα 3: Εγκαταστήστε τα αρχεία βοήθειας

Ομάδες όπως CDΚαι σκηνδεν είναι ενεργές εντολές PowerShell. Αυτά είναι τα λεγόμενα ψευδώνυμα - αντικαταστάσεις πραγματικών εντολών PowerShell. Τα ψευδώνυμα είναι χρήσιμα για όσους έχουν μεγάλη εμπειρία με τη γραμμή εντολών. Ωστόσο, δεν μπαίνουν στα βάθη του PowerShell.

Για να ξεκινήσετε με το PowerShell, πληκτρολογήστε βοήθειακαι την εντολή που χρειάζεστε. Το στιγμιότυπο οθόνης δείχνει την εντολή .

Ομάδα βοήθειαλέει ότι σκηνείναι ένα ψευδώνυμο για την εντολή PowerShell Get-ChildItem. Αν πληκτρολογήσετε get-childitem V ΥΓ Γ:\>, θα δείτε το ίδιο πράγμα όπως όταν χρησιμοποιείτε την εντολή σκην.

Όπως σημειώνεται στο κάτω μέρος του στιγμιότυπου οθόνης, τα αρχεία βοήθειας για το PowerShell δεν εγκαθίστανται αυτόματα. Για να τα αποκτήσετε, εκτελέστε το PowerShell ως διαχειριστή και πληκτρολογήστε ενημέρωση-βοήθεια. Η εγκατάσταση των αρχείων βοήθειας θα διαρκέσει αρκετά λεπτά, ενδέχεται να λείπουν ορισμένες μονάδες - για παράδειγμα, σε αυτήν την περίπτωση, η Βοήθεια για το NetWNV και το SecureBoot δεν εγκαταστάθηκαν. Όταν όλα είναι έτοιμα, το πλήρες σύστημα βοήθειας θα παρέχει πάντα τις απαραίτητες συμβουλές.

Τώρα πληκτρολογήστε την εντολή λάβετε βοήθειακαι οποιαδήποτε εντολή σας ενδιαφέρει (“cmdlet” στο PowerShell, cmdlets στα Ρωσικά), θα εμφανίζεται η περιγραφή της. Για παράδειγμα, πάρτε-βοήθεια πάρτε-παιδίεμφανίζει μια λίστα επιλογών get-childitem. Μπορείτε επίσης να εμφανίσετε διαφορετικές πιθανές επιλογές. Για παράδειγμα

get-help get-childitem -παραδείγματα

δίνει επτά λεπτομερή παραδείγματαχρήση get-childitem. Ομάδα

get-help get-childitem -αναλυτικά

περιλαμβάνει αυτά τα επτά παραδείγματα και λεπτομερείς εξηγήσειςκάθε παράμετρος στο cmdlet get-childitem.

Βήμα 4: Λάβετε βοήθεια με τις ρυθμίσεις

Στο στιγμιότυπο οθόνης μπορεί να έχετε παρατηρήσει δύο λίστες κάτω από ΣΥΝΤΑΞΗΓια get-childitem. Η ύπαρξη δύο διαφορετικών συντακτικών σημαίνει ότι υπάρχουν δύο τρόποι εκτέλεσης του cmdlet. Πώς να διατηρήσετε τη σύνταξη χωριστή μεταξύ τους και τι σημαίνουν οι παράμετροι; Η απάντηση είναι απλή αν γνωρίζετε το κόλπο.

Για λεπτομέρειες σχετικά με τις παραμέτρους cmdlet get-childitemή οποιαδήποτε άλλη παράμετρο χρήσης -γεμάτος:

get-help get-childitem -γεμάτος

Αυτό σας δίνει μια λίστα με το τι μπορείτε να κάνετε με το cmdlet και τι θα συμβεί. Δείτε το στιγμιότυπο οθόνης.

Εξετάζοντας τις περιγραφές των παραμέτρων, θα παρατηρήσετε ότι get-childitemκαθιστά δυνατή την απόκτηση ενός αντικειμένου παιδί(όπως όνομα υποφακέλου ή όνομα αρχείου) σε μια καθορισμένη θέση, με ή χωρίς αντιστοιχία ορισμένων χαρακτήρων. Για παράδειγμα:

get-childItem "*.txt" -recurse

επιστρέφει μια λίστα με αρχεία "*.txt" σε τρέχον φάκελοκαι όλους τους υποφακέλους (λόγω της παραμέτρου - αναδρομή). Ενώ

get-childitem "HKLM:\Software"

επιστρέφει μια λίστα με όλα τα κλειδιά μητρώου κορυφαίο επίπεδο V HKEY_LOCAL_MACHINE\Λογισμικό.

Εάν έχετε προσπαθήσει ποτέ να μπείτε στο μητρώο χρησιμοποιώντας τη γραμμή εντολών των Windows ή αρχεία .bat, θα εκτιμήσετε τη λειτουργικότητα αυτής της επιλογής πρόσβασης.

Βήμα 5: Εκμάθηση ονομάτων

Υπάρχει ένας λόγος για τον οποίο τα cmdlet που εμφανίζονται μέχρι τώρα μοιάζουν: get-childitem, update-help, get-helpχρησιμοποιήστε ένα μοναδικό μοτίβο ρήματος-ουσιατικού. Όλα τα cmdlet PowerShell χρησιμοποιούν αυτή τη σύμβαση και χρησιμοποιούν ένα ρήμα πριν από ένα μεμονωμένο ουσιαστικό. Αυτό θα αρέσει σε όσους υπέφεραν κάποτε από ασυνεπή ονόματα εντολών στις γλώσσες VB και VBA.

Ρίξτε μια ματιά στα πιο κοινά cmdlet:

σετ-τοποθεσία: ορίζει την τρέχουσα θέση εργασίας σε μια συγκεκριμένη θέση

απόκτηση περιεχομένου: Λαμβάνει τα περιεχόμενα του αρχείου

πάρτε-αντικείμενο: Ανακτά αρχεία και φακέλους

αντίγραφο-αντικείμενο: αντιγράφει ένα αντικείμενο από τη μια θέση στην άλλη

αφαίρεση-αντικείμενο: Διαγράφει αρχεία και φακέλους

: Εκτελούνται διεργασίες σε τοπικό ή απομακρυσμένο υπολογιστή

υπηρεσία λήψης: Εκτελούνται υπηρεσίες σε τοπικό ή απομακρυσμένο υπολογιστή

επίκληση-διαδικτυακό αίτημα: Ανακτά περιεχόμενο από μια ιστοσελίδα στο Διαδίκτυο

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

get-help copy-item -full

Με βάση την περιγραφή στη βοήθεια, μπορείτε να καταλάβετε τι χρειάζεται το cmdlet. Για παράδειγμα, εάν θέλετε να αντιγράψετε όλα τα αρχεία και τους φακέλους από Εγγραφα V γ:\θερμ, χρήση

αντίγραφο c:\users\ \documents\* c:\temp

Όταν εισάγετε αυτήν την εντολή, θα δείτε αρκετές ενδιαφέρουσες ευκαιρίεςΠεριβάλλοντα PowerShell. Για παράδειγμα, αν πληκτρολογήσετε αντίγραφο-ικαι πατήστε το κουμπί Tab, θα συμπληρώσει το PowerShell Αντιγραφή-Στοιχείο. Εάν πληκτρολογήσετε λάθος ένα cmdlet και το PowerShell δεν μπορεί να το αναγνωρίσει, δίνεται μια πλήρης περιγραφή του τι έγινε λάθος.

Δοκιμάστε αυτό το cmdlet:

invoke-webrequest askwoody.com

Θα λάβετε μια σύντομη λίστα με τους τίτλους, τις εικόνες, τους συνδέσμους και άλλο περιεχόμενο της ιστοσελίδας. Σημειώστε λάβετε βοήθειαστη λίστα επίκληση-διαδικτυακό αίτημα, το οποίο «επιστρέφει μια συλλογή από φόρμες, συνδέσμους, εικόνες και άλλα σημαντικά στοιχεία HTML" είναι αυτό ακριβώς που πρέπει να εμφανίζεται στην οθόνη.

Ορισμένα cmdlet σάς βοηθούν να διαχειριστείτε το ίδιο το PowerShell:

παίρνω-εντολή: λίστα με όλα τα διαθέσιμα cmdlet

παίρνω-ρήμα: λίστα με όλα τα διαθέσιμα ρήματα

καθαρός οικοδεσπότης: Διαγράψτε την οθόνη του προγράμματος κεντρικού υπολογιστή

Διαφορετικές παράμετροι σάς επιτρέπουν να μειώσετε τις εντολές και να περιορίσετε τον κύκλο χρήσιμες επιλογές. Για παράδειγμα, για να δείτε μια λίστα με όλα τα cmdlet με τα οποία λειτουργούν Υπηρεσίες Windows, εισάγετε

get-command *-service

Θα εμφανιστούν όλα τα ρήματα που είναι διαθέσιμα με το ουσιαστικό υπηρεσία. Εδώ είναι η λίστα τους:

Get-Service

Νέα-Υπηρεσία

Επανεκκίνηση-Σέρβις

Βιογραφικό-Υπηρεσία

Σετ-Υπηρεσία

Έναρξη-Υπηρεσία

Stop-Service

Αναστολή-Υπηρεσία

Μπορείτε να συνδυάσετε αυτά τα cmdlet με άλλα.

Βήμα 6: Χρήση σωλήνων

Εάν είστε εξοικειωμένοι με τη γραμμή εντολών των Windows ή τα αρχεία δέσμης, τότε γνωρίζετε σχετικά με την ανακατεύθυνση και τους αγωγούς. Η ανακατεύθυνση (> σύμβολο) και οι σωλήνες (| σύμβολο) λαμβάνουν το αποτέλεσμα μιας ενέργειας και την προσαρτούν σε άλλη θέση. Για παράδειγμα, μπορείτε να ανακατευθύνετε το αποτέλεσμα της εντολής σκην V αρχείο κειμένουή περάστε το αποτέλεσμα της εντολής pingστην ομάδα εύρημαγια να φιλτράρετε ενδιαφέροντα αποτελέσματα όπως

dir > temp.txt

ping askwoody.com | βρείτε "πακέτα" > temp2.txt

Εδώ στη δεύτερη ομάδα εύρημαψάχνει για μια συμβολοσειρά πακέτα, λήφθηκε από τη διεύθυνση askwoody.com από την ομάδα pingκαι συνενώνει όλες τις γραμμές που ταιριάζουν σε ένα αρχείο που ονομάζεται temp2.txt.

Η πρώτη από αυτές τις εντολές λειτουργεί καλά στο PowerShell. Για να εκτελέσετε τη δεύτερη εντολή θα χρειαστείτε κάτι σαν

ping askwoody.com | πακέτα επιλογής συμβολοσειράς | out-file temp2.txt

Η χρήση ανακατεύθυνσης και σωλήνων βελτιώνει σημαντικά τις δυνατότητες της γραμμής εντολών των Windows: αντί να κάνετε ατελείωτη κύλιση προς τα κάτω στην οθόνη κατά την αναζήτηση συμβολοσειρά κειμένουΜπορείτε να φιλτράρετε τις εντολές των Windows που χρειάζεστε.

Το Powershell έχει υποστήριξη σωλήνας, και δεν περιορίζεται σε κείμενο. Το PowerShell σάς επιτρέπει να περάσετε ένα ολόκληρο αντικείμενο από το ένα cmdlet σε ένα άλλο, όπου το αντικείμενο είναι ένας συνδυασμός δεδομένων (που ονομάζονται ιδιότητες) και ενεργειών (μεθόδων) που μπορούν να χρησιμοποιήσουν αυτά τα δεδομένα.

Το δύσκολο κομμάτι έρχεται κατά την ευθυγράμμιση των αντικειμένων. Τα αντικείμενα που παρέχονται από ένα cmdlet πρέπει να ταιριάζουν με τον τύπο των αντικειμένων που γίνονται δεκτά από το cmdlet λήψης. Το κείμενο είναι πολύ απλός τύποςαντικείμενα, οπότε αν εργάζεστε με κείμενο, η στοίχιση αντικειμένων είναι μια απλή εργασία. Τα υπόλοιπα αντικείμενα δεν είναι τόσο βασικά.

Πώς να το καταλάβετε αυτό; Χρησιμοποιήστε cmdlet γίνετε μέλος. Εάν θέλετε να μάθετε τι είδους αντικείμενο επεξεργάζεται ένα cmdlet, εκτελέστε το γίνετε μέλος. Για παράδειγμα, εάν προσπαθείτε να κατανοήσετε τις διαδικασίες που εκτελούνται σε έναν υπολογιστή και έχετε περιορίσει τις επιλογές σας σε cmdlet , δείτε πώς μπορείτε να μάθετε το αποτέλεσμα των cmdlet:

διαδικασία λήψης | γίνετε μέλος

Η εκτέλεση αυτού του cmdlet παράγει μια μακρά λίστα ιδιοτήτων και μεθόδων για , αλλά στην αρχή της λίστας μπορείτε να δείτε τον τύπο του αντικειμένου που δημιουργεί :

TypeName: System.Diagnostics.Process

Το παρακάτω στιγμιότυπο οθόνης δείχνει επίσης τις ιδιότητες κάλεσε Λαβές διαδικασίας λήψης, Όνομα, NPM, PM, SI, VMΚαι W.S..

Αν θέλετε να χειριστείτε το αποτέλεσμα Για να εργαστείτε με αυτό το cmdlet (αντί να εμφανίζετε μια μακρά λίστα ενεργών διεργασιών στην οθόνη), πρέπει να βρείτε μια άλλη εντολή που θα λαμβάνει ως είσοδο Σύστημα.Διαγνωστικά.Διαδικασία. Για να βρείτε το cmdlet που χρειάζεστε, χρησιμοποιήστε ξανά το PowerShell:

get-command -Parametertype System.Diagnostics.Process

Αυτό το cmdlet παρέχει μια λίστα με cmdlet που μπορούν να επεξεργαστούν Σύστημα.Διαγνωστικά.Διαδικασία.

Ορισμένα cmdlet είναι γνωστά για την αποδοχή σχεδόν κάθε είδους δεδομένων. Κύριος ανάμεσά τους είναι . Αυτό το cmdlet διέρχεται από κάθε αντικείμενο που αποστέλλεται μέσω του σωλήνα, ένα προς ένα, και εφαρμόζει τα καθορισμένα κριτήρια επιλογής σε αυτό. Υπάρχει ένας ειδικός δείκτης που ονομάζεται $_ , το οποίο σας επιτρέπει να χρησιμοποιείτε κάθε στοιχείο στο σωλήνα, ένα κάθε φορά.

Ας υποθέσουμε ότι θέλετε να λάβετε μια λίστα με όλες τις διεργασίες που εκτελούνται σε έναν υπολογιστή με το όνομα "svchost", δηλαδή θέλετε να αντιστοιχίσετε την ιδιότητα Ονομαδιαδικασία svchost. Χρησιμοποιήστε την εντολή:

διαδικασία λήψης | where-object ($_.Name -eq “svchost”)

Cmdlet κοιτάζει κάθε αντικείμενο Σύστημα.Διαγνωστικά.Διαδικασία, συγκρίνει .Ονομααυτό το αντικείμενο με "svchost"? εάν υπάρχουν αντιστοιχίες, εμφανίζονται στην οθόνη. Δείτε το στιγμιότυπο οθόνης.

Βήμα 7: Αναλύστε χρήσιμες εντολές PowerShell

Μέχρι τώρα γνωρίζετε αρκετά ώστε να μπορείτε να καταστρέψετε τον υπολογιστή, γι' αυτό να είστε προσεκτικοί. Ας δούμε, για παράδειγμα, τις εντολές PowerShell που ζητούνται συχνά.

Αυτές οι εντολές λειτουργούν μόνο στα Windows 10 και μόνο όταν εκτελείτε το PowerShell ως διαχειριστής. Έχουν σχεδιαστεί για να επανεγκαθιστούν προεγκατεστημένα εφαρμογές Windows 10 και μπορεί να είναι χρήσιμο σε όσους πρώτα διέγραψαν αυτά τα προγράμματα και μετά αποφάσισαν να τα επιστρέψουν. Οι εντολές μοιάζουν με αυτό:

Get-AppXPackage | Foreach (Add-AppxPackage -DisableDevelopmentMode -Εγγραφή "$($_.InstallLocation)\AppXManifest.xml")

Εάν εκτελέσετε αυτήν την εντολή, αγνοήστε τις κόκκινες προειδοποιήσεις και όταν ολοκληρωθεί η εντολή, επανεκκινήστε τον υπολογιστή σας. Ολοι προεγκατεστημένα προγράμματαστα Windows 10 θα εμφανιστούν στις θέσεις τους.

Δείτε πώς λειτουργεί αυτή την εντολή. Get-AppXPackageελέγχει όλα τα πακέτα εφαρμογών στο προφίλ χρήστη. Ακόμα κι αν διαγράψετε την εφαρμογή, παραμένει στη λίστα προφίλ χρήστη.

Cmdlet Get-AppXPackageεπιστρέφει ένα αντικείμενο TypeName Microsoft.Windows.Appx.PackageManager.Commands.AppxPackage, το οποίο περιλαμβάνει το πλήρως αναγνωρισμένο όνομα του πακέτου εφαρμογής και τη θέση του αντίστοιχου αρχείου μανιφέστου XML. Εάν εκτελέσετε το cmdlet get-appxpackage, θα δείτε μια μακρά λίστα με πακέτα εφαρμογών. Το στιγμιότυπο οθόνης δείχνει την περιγραφή της εφαρμογής Xbox.

Cmdlet Foreachβρόχους μέσα από κάθε αντικείμενο μέσα AppXPackageστέλνοντάς τα στο cmdlet Προσθήκη-AppxPackage. Σύμφωνα με λάβετε βοήθειαΓια Προσθήκη-AppxPackage, υπάρχουν δύο βασικοί διακόπτες:

  • Διακόπτης -Μητρώοπου χρησιμοποιείται για την καταχώρηση υπαρχουσών εγκαταστάσεων πακέτων εφαρμογών, μπορείτε να ορίσετε παραμέτρους Απενεργοποιήστε τη λειτουργία ανάπτυξηςΚαι Μητρώο
  • Διακόπτης -DisableDevelopmentModeλέει στα Windows να καταχωρήσουν ξανά ένα υπάρχον πακέτο εφαρμογών που έχει απενεργοποιηθεί, δεν έχει καταχωρηθεί ή έχει καταστραφεί.

Γραμμή" $($_.InstallLocation)\AppXManifest.x ml" περιγράφει πού βρίσκεται το αρχείο manifest.xml. Αν κοιτάξετε τα αρχεία AppXManifest.xml, θα δεις περίπλοκη λίστααναγνωριστικά εφαρμογών, εκτελέσιμα αρχεία και μεγάλο αριθμόοπτικά στοιχεία που σχετίζονται με την εφαρμογή.

Μετά την επανεκκίνηση, γίνεται λήψη και εγκατάσταση όλων των προστιθέμενων πακέτων εφαρμογών Windows StoreΚατάστημα.

Σε αυτό το άρθρο θα εξετάσουμε μια τέτοια τεχνολογία από τη Microsoft όπως Windows PowerShell, θα μιλήσουμε για το τι είναι το PowerShell, τι είναι τα cmdlet και μια διοχέτευση, πώς να γράφουμε σενάρια και λειτουργικές μονάδες και επίσης να θίξουμε άλλα εξίσου σημαντικά και χρήσιμα χαρακτηριστικά Windows PowerShell.

Τι συνέβαλε στην εμφάνιση του Windows PowerShell;

Πριν από το PowerShell, υπήρχαν ( και υπάρχουν) τα ακόλουθα εργαλεία για την αυτοματοποίηση και τη διαχείριση υπηρεσιών: γραμμή εντολών των Windows και Windows Script Host. Αλλά αυτές οι τεχνολογίες έχουν μειονεκτήματα.

Η γραμμή εντολών των Windows έχει επίσης τη δυνατότητα να εκτελεί ορισμένες διοικητικές εργασίες και τη δυνατότητα να καταγράφει έναν αλγόριθμο ενεργειών, αποθηκεύοντάς το ως σενάριο (αρχείο bat), ενώ μπορείτε να χρησιμοποιήσετε ορισμένα στοιχεία προγραμματισμού, για παράδειγμα, να χρησιμοποιήσετε μεταβλητές, κατασκευές υπό όρους, και μάλιστα κάτι σαν κύκλοι.

Πλειοψηφία προϊόντα λογισμικούέχει διεπαφή κονσόλας, δηλ. μπορούμε να ελέγξουμε το πρόγραμμα χρησιμοποιώντας τη γραμμή εντολών, ενώ εξοικονομούμε πόρους λόγω της έλλειψης κόστους για την εκτέλεση της γραφικής διεπαφής. Η Microsoft κυκλοφορεί ακόμη και εκδόσεις χωρίς γραφικό περιβάλλον για το λειτουργικό σύστημα διακομιστή Windows Server ( Server Core, Windows Server 2016 έχει ακόμη Νανο διακομιστής ), αλλά όλα αυτά δεν είναι αρκετά, αφού οι δυνατότητες της γραμμής εντολών είναι περιορισμένες, π.χ. Δεν θα μπορέσουμε να γράψουμε κάποια σύνθετη λογική για να αυτοματοποιήσουμε κάτι, και ακόμα κι αν μπορούμε, θα χρειαστεί χρόνος και γνώση.

Επίσης, ένα μειονέκτημα της γραμμής εντολών είναι ότι για την πλήρη διαχείριση του διακομιστή χρησιμοποιούμε διάφορα βοηθητικά προγράμματα κονσόλας προϊόντων λογισμικού, και επομένως η χρήση της γραμμής εντολών για διαχείριση είναι πραγματικά δύσκολη, από την άποψη του γεγονότος ότι όλα αυτά τα βοηθητικά προγράμματα έχουν διαφορετικά σύνταξη, παραμέτρους, μεθόδους χρήσης και για την εκτέλεση τυπικών εργασιών, π.χ. καθημερινά, πρέπει να τα διατηρείτε όλα αυτά στη μνήμη και για να εκτελέσετε άτυπες εργασίες πρέπει πρώτα να διαβάσετε τη βοήθεια ή την τεκμηρίωση.

Η τεχνολογία Windows Script Host σάς επιτρέπει να εκτελείτε όλες τις διοικητικές εργασίες ως γραμμή εντολών, συμπεριλαμβανομένης της αυτοματοποίησής τους γράφοντας σενάρια WSH, αλλά εδώ μπορούμε ήδη να χρησιμοποιήσουμε πλήρεις γλώσσες προγραμματισμού ( VBScript και JScript), δηλ. πολύπλοκη λογική και αλγόριθμοι μπορούν να εφαρμοστούν. Επιπλέον, με τη βοήθεια της WSH διαχειριζόμαστε προϊόντα λογισμικού μέσω διεπαφή αντικειμένου, με άλλα λόγια, το Windows Script Host είναι πολύ " ψυγείο» από τη γραμμή εντολών. Αλλά αυτή η τεχνολογίαεπίσης δεν έγινε το ιδανικό εργαλείο για τη διαχείριση και την αυτοματοποίηση αυτής της διαχείρισης για διαχειριστές συστήματος, αφού το Windows Script Host απαιτούσε γνώση των παραπάνω γλωσσών προγραμματισμού, κάτι που στην πραγματικότητα είναι περιττό για τους διαχειριστές συστήματος. Οι διαχειριστές χρειάζονται μόνο ένα απλό εργαλείο διαχείρισης με δυνατότητα προγραμματισμού ορισμένων ενεργειών και δεν θέλουν να εμβαθύνουν στα μοντέλα αντικειμένων προϊόντων λογισμικού στις γλώσσες προγραμματισμού VBScript και JScript.

Ως αποτέλεσμα, η Microsoft χρειάστηκε να αναπτύξει ένα εργαλείο διαχείρισης για διαχειριστές συστήματος που θα ικανοποιούσε 100 τοις εκατό όλες τις ανάγκες των διαχειριστών συστημάτων, τόσο από πλευράς διαχείρισης και δυνατοτήτων αυτοματισμού, όσο και από πλευράς ευκολίας και ευκολίας χρήσης, έτσι εμφανίστηκε το Windows PowerShell.

Τι είναι το Windows PowerShell;

Windows PowerShellείναι μια γλώσσα δέσμης ενεργειών και κέλυφος εντολών των Windows που έχουν σχεδιαστεί για τη διαχείριση και τη ρύθμιση των λειτουργικών συστημάτων των Windows. Το PowerShell είναι χτισμένο πάνω από το πλαίσιο CRL και το .NET Framework, και σε αντίθεση με τη γραμμή εντολών, η οποία δέχεται και επιστρέφει κείμενο, το Windows PowerShell λειτουργεί με αντικείμενα. Κάθε αντικείμενο στο PowerShell έχει ιδιότητες και μεθόδους που μπορείτε να χρησιμοποιήσετε για να χειριστείτε αυτά τα αντικείμενα.

Στα Windows Microsoft PowerShellανέπτυξε την έννοια των cmdlet ( cmdlet), το οποίο είναι ένα σύστημα ονομασίας εντολών " Ρήμα-Ουσιαστικό" Αυτό το σύστημα επιτρέπει στους διαχειριστές συστήματος να κυριαρχήσουν γρήγορα και να απλοποιήσουν την εργασία με το PowerShell.

ΜΕ χρησιμοποιώντας WindowsΤο PowerShell μπορεί:

  • Πρόσβαση στο σύστημα αρχείων.
  • Διαχείριση του μητρώου.
  • Διαχείριση υπηρεσιών.
  • Διαχείριση διαδικασιών.
  • Διαμόρφωση του λειτουργικού συστήματος.
  • Εγκατάσταση λογισμικού.
  • Εγκατάσταση ρόλων και στοιχείων διακομιστή.
  • Διαχείριση και διαμόρφωση ρόλων και στοιχείων διακομιστή.
  • Γράψτε και χρησιμοποιήστε σενάρια για την αυτοματοποίηση της διαχείρισης και της διαχείρισης.
  • Εκτελέστε άλλες εργασίες διαχειριστή συστήματος.

Το Windows PowerShell περιέχει πολλά κοινά χρησιμοποιούμενα βοηθητικά προγράμματα και εντολές που μπορείτε να εκτελέσετε από τη γραμμή εντολών, όπως ipconfig, ping και άλλα. Αυτό έγινε για να διευκολυνθεί η μετάβαση των διαχειριστών συστήματος από τη γραμμή εντολών στο PowerShell.

Επίσης, για λόγους ευκολίας, πολλές εντολές και βοηθητικά προγράμματα που χρησιμοποιούνται συχνά στο PowerShell έχουν συνώνυμα ( Ψευδώνυμο), για παράδειγμα το cls είναι συνώνυμο για το cmdlet Clear-Host, το dir είναι συνώνυμο του Get-ChildItem ( πλήρης λίστατα συνώνυμα μπορούν να προβληθούν εκτελώντας το cmdlet Get-Alias).

Για να απλοποιήσετε την αναζήτηση για την επιθυμητή εντολή, το PowerShell διαθέτει ένα ειδικό cmdlet Get-Command, με το οποίο μπορείτε να κάνετε αναζήτηση τόσο με ρήμα όσο και με ουσιαστικό. Όλες οι εντολές στο Windows PowerShell ομαδοποιούνται σε λειτουργικές μονάδες ( π.χ. Hyper-V, NetTCIP), γεγονός που διευκολύνει επίσης την εύρεση της σωστής εντολής.

Μόλις βρεθεί η απαιτούμενη εντολή, μπορείτε να δείτε τις οδηγίες για την εργασία με αυτήν την εντολή, π.χ. βοήθεια, για αυτούς τους σκοπούς υπάρχει ένα ειδικό cmdlet Get-Help, για παράδειγμα η ακόλουθη εντολή θα δείξει βοήθεια για το cmdlet Get-Command:

Get-Help Get-Command

Η βοήθεια στο Windows PowerShell μπορεί να είναι σύντομη, λεπτομερής ( παράμετρος - Αναλυτικά), γεμάτο ( παράμετρος -Πλήρης), και μπορείτε επίσης να εμφανίσετε μόνο παραδείγματα ( παράμετρος - Παραδείγματα). Η ακόλουθη εντολή θα δείχνει μόνο παραδείγματα χρήσης του cmdlet Get-Command:

Get-Help Get-Command -Παραδείγματα

Η βοήθεια του PowerShell μπορεί να ενημερωθεί, π.χ. μπορεί να ενημερωθεί με την εντολή Update-Help.

Εκδόσεις Windows PowerShell

Η πρώτη έκδοση του PowerShell 1.0 εμφανίστηκε στις 14 Νοεμβρίου 2006 και κυκλοφόρησε ως ξεχωριστή διανομή που θα μπορούσε να εγκατασταθεί σε επόμενες εκδόσειςΛειτουργικά συστήματα Windows: Windows XP Service Pack 2, Windows Server 2003 Service Pack 1 και Windows Vista.

Στον Windows Server 2008, το PowerShell 1.0 ήρθε ως στοιχείο που έπρεπε επίσης να εγκατασταθεί.

Ξεκινώντας με τα Windows 7 και Windows Server 2008 R2, το PowerShell αποτελεί αναπόσπαστο στοιχείο του συστήματος ( εκείνοι. προεγκατεστημένο, δεν χρειάζεται να το εγκαταστήσετε). Ακολουθεί ένας πίνακας αντιστοιχίας μεταξύ της έκδοσης του PowerShell και της έκδοσης του λειτουργικού συστήματος Windows ( εκείνοι. ποια έκδοση του PowerShell είναι εγκατεστημένη από προεπιλογή σε ποια έκδοση των Windows):

Έκδοση PowerShell εκδόσεις Windows
PowerShell 2.0 Windows 7, Windows Server 2008 R2
PowerShell 3.0 Windows 8, Windows Server 2012
PowerShell 4.0 Windows 8.1, Windows Server 2012 R2
PowerShell 5.0 Windows 10, Windows Server 2016

Με το καθένα νέα έκδοσηΤο PowerShell γίνεται όλο και περισσότερο ισχυρό εργαλείοδιαχείριση, για σύγκριση, το πρώτο PowerShell είχε περίπου 130 cmdlet και στο PowerShell 5.0 υπάρχουν ήδη περισσότερα από 600 από αυτά!

Μπορείτε να μάθετε την τρέχουσα έκδοση του PowerShell χρησιμοποιώντας την ιδιότητα PSVersion της ενσωματωμένης μεταβλητής $PSVersionTable, για παράδειγμα, εκτελέστε την ακόλουθη εντολή:

$PSVersionTable.PSVersion

Ή εκτελέστε το cmdlet

Get-Variable -Name PSVersionTable –ValueOnly

όπου, η τιμή PSVersion θα είναι η έκδοση PowerShell.

Γλώσσα PowerShell

PowerShellείναι μια αντικειμενοστραφής γλώσσα προγραμματισμού δέσμης ενεργειών. Χρησιμοποιείται για τη σύνταξη εντολών για τον έλεγχο όλων των στοιχείων του λειτουργικού συστήματος Windows στο Windows PowerShell, καθώς και για τη σύνταξη σεναρίων για την αυτοματοποίηση διαχειριστικών εργασιών σε ένα ενσωματωμένο περιβάλλον Σενάρια Windows PowerShell (ISE). Αν και η γλώσσα PowerShell δημιουργήθηκε για εργασίες διαχείρισης, είναι μια πλήρης γλώσσα προγραμματισμού δέσμης ενεργειών, καθώς έχει δομές προγράμματος που υπάρχουν σε κάθε γλώσσα προγραμματισμού, όπως: συνθήκες, βρόχοι, χειρισμός σφαλμάτων, εργασία με μεταβλητές, αντικείμενα και πίνακες.

Η γλώσσα PowerShell έχει μια ενιαία σύνταξη για τη σύνταξη εντολών και μια δομή ονομασίας για αυτές τις εντολές με βάση την αρχή " Ρήμα-Ουσιαστικό«Τι κάνει δεδομένη γλώσσαδιαισθητικό τόσο για προγραμματιστές όσο και για διαχειριστές συστήματος.

Windows PowerShell

Windows PowerShellείναι ένα περιβάλλον για την εκτέλεση εντολών και σεναρίων στο PowerShell. Αυτό το κέλυφος έχει τις ίδιες δυνατότητες με τη γραμμή εντολών, όπως: αποθήκευση ιστορικού εκτέλεσης εντολών, ρύθμιση εμφάνισηκέλυφος, ολοκλήρωση εντολών με το συνδυασμό πλήκτρων Ctrl+C, καθώς και πολλές άλλες δυνατότητες που δεν είναι διαθέσιμες στο κέλυφος της γραμμής εντολών, για παράδειγμα ένα υπέροχο χαρακτηριστικό όπως " επισήμανση σύνταξης» ( παρουσιάστηκε στο PowerShell 5.0).

Υπάρχουν διάφοροι τρόποι εκκίνησης του PowerShell, για παράδειγμα:

  • Από τη γραμμή εντολών πληκτρολογώντας PowerShell.
  • Μέσω του πλαισίου διαλόγου " Εκτελώ» ( συντόμευση πληκτρολογίου Win+R), πληκτρολογώντας επίσης PowerShell.
  • Στα Windows 7 - Έναρξη-> Όλα τα προγράμματα -> Αξεσουάρ -> Windows PowerShell -> Windows PowerShell;
  • Στα Windows 8.1 ή Windows Server 2012 R2 - Έναρξη-> Όλα τα προγράμματα -> Εργαλεία συστήματος -> Windows PowerShell;
  • Στα Windows 10 ή Windows Server 2016 - Έναρξη-> Όλα τα προγράμματα -> Κατάλογος Windows PowerShell ( στον όμιλο W) -> Windows PowerShell.

Παράδειγμα εκτέλεσης του PowerShell στον Windows Server 2016

Στιγμιότυπο οθόνης του PowerShell στον Windows Server 2016

Cmdlet στο PowerShell

Cmdlet (cmdlet) είναι μια εντολή Windows PowerShell που σας επιτρέπει να αλληλεπιδράτε με αντικείμενα του λειτουργικού συστήματος για να τα διαχειρίζεστε. Αυτές οι εντολές αποτελούν μέρος της γλώσσας PowerShell. Τα Cmdlet κατασκευάζονται σύμφωνα με την αρχή " Ρήμα-Ουσιαστικό", που χωρίζεται με παύλα (-); Με άλλα λόγια, πρώτα υποδεικνύουμε τι πρέπει να κάνουμε και με παύλα υποδεικνύουμε τι πρέπει να κάνουμε. Για παράδειγμα, το cmdlet Get-Help, όπου Get είναι ένα ρήμα που σημαίνει " Παίρνω"και η Βοήθεια είναι ουσιαστικό" Βοήθεια"Στο πλαίσιο του PowerShell" Εμφάνιση – Βοήθεια" Τα cmdlet PowerShell επιστρέφουν αποτελέσματα ως αντικείμενα, κάτι που είναι μία από τις κύριες διαφορές από τη γραμμή εντολών των Windows, στην οποία οι εντολές επιστρέφουν μόνο κείμενο στην οθόνη.

Εκτός από τα cmdlet για τη λήψη δεδομένων (Get), υπάρχουν επίσης τύποι cmdlet όπως:

  • Προσθήκη – προσθήκη δεδομένων.
  • Καθαρό – καθαρό;
  • Ενεργοποίηση – ενεργοποίηση;
  • Απενεργοποίηση – απενεργοποίηση.
  • Νέο – δημιουργία;
  • Αφαίρεση – αφαίρεση.
  • Σετ – σετ;
  • Έναρξη - έναρξη?
  • Stop – stop;
  • Εξαγωγή – εξαγωγή;
  • Εισαγωγή – εισαγωγή;
  • Και πολλά άλλα.

Μπορείτε να προβάλετε μια πλήρη λίστα cmdlet στο Windows PowerShell χρησιμοποιώντας το ειδικό cmdlet Get-Command. Για παράδειγμα, εκτελέστε το με την παράμετρο -CommandType cmdlet, ως αποτέλεσμα, μια λίστα με cmdlet θα εμφανιστεί στην οθόνη σας.

Get-Command -CommandType cmdlet

Όπως ήδη καταλάβατε, τα cmdlet έχουν παραμέτρους με τις οποίες μπορούμε να καθορίσουμε τις ενέργειες του cmdlet. Οι παράμετροι μπορούν να απαιτούνται ή προαιρετικές, για παράδειγμα, για το cmdlet Get-Command απαιτούμενες παραμέτρουςΟχι.

Η παρακάτω εικόνα δείχνει έναν τρόπο αναζήτησης ενός cmdlet ανά ρήμα ( Παράμετρος ρήματος). Σε αυτήν την περίπτωση, εμφανίσαμε μια λίστα με cmdlet που μπορούν να επανεκκινήσουν κάτι.

Ομάδα

Get-Command -Ρήμα Επανεκκίνηση

Για να αναζητήσετε ένα cmdlet ανά ουσιαστικό, πρέπει να χρησιμοποιήσετε την παράμετρο Ουσιαστικό. Για παράδειγμα, παρακάτω έχουμε μια λίστα με cmdlet που λειτουργούν με υπηρεσίες.

Ομάδα

Get-Command -Noun Service

Εάν δεν βρείτε το επιθυμητό cmdlet με το πλήρες όνομά του, μπορείτε να χρησιμοποιήσετε μια μάσκα σε μορφή *Κείμενο*.

Pipeline στο PowerShell

Ένα από τα κύρια δυνατότητες των WindowsΤο PowerShell είναι σε θέση να χρησιμοποιεί μια διοχέτευση κατά την εκτέλεση εντολών.

Μετακομιστής– αυτή είναι η μεταφορά του αποτελέσματος ενός cmdlet μέσω μιας κάθετης γραμμής (|) σε ένα άλλο cmdlet. Ταυτόχρονα, όπως θυμάστε, τα cmdlet του PowerShell λειτουργούν με αντικείμενα και επιστρέφουν αντικείμενα ανάλογα, τα αντικείμενα μεταφέρονται επίσης κατά μήκος του αγωγού.

Με τη βοήθεια ενός μεταφορέα, μπορείτε να εκτελέσετε σύνθετες εργασίες σε ένα απλό και με βολικό τρόποχωρίς να χρειάζεται να γραφτούν πολύπλοκοι αλγόριθμοι και σενάρια.

Για παράδειγμα, ας μάθουμε το όνομα του μεγαλύτερου αρχείου στον κατάλογο "C:\Windows\System32" ( απλό παράδειγμα αγωγού).

Ομάδα

Get-ChildItem -Διαδρομή "C:\Windows\System32" -Αρχείο | Ταξινόμηση-Μήκος αντικειμένου -Φθίνουσα | Επιλογή-Αντικείμενο -Πρώτο 1

  • Get-ChildItem – cmdlet για την εισαγωγή αντικειμένων καθορισμένο κατάλογο;
  • Το Sort-Object είναι ένα cmdlet για την ταξινόμηση αντικειμένων, στην περίπτωσή μας ταξινομούμε κατά μέγεθος αρχείου ( μήκος -Φθίνουσα);
  • Το Select-Object είναι ένα cmdlet για την επιλογή των επιθυμητών ιδιοτήτων ενός αντικειμένου στην περίπτωσή μας, εμφανίζουμε τυπικά πεδία και μόνο το πρώτο αντικείμενο, π.χ. μεγάλο αρχείο ( παράμετρος -Πρώτο 1).

Όλα τα cmdlet χωρίζονται μεταξύ τους με μια κάθετη γραμμή. Το αποτέλεσμα κάθε cmdlet περνάει ως είσοδος σε ένα άλλο cmdlet, δηλ. πρώτα παίρνουμε όλα τα αντικείμενα στον καθορισμένο κατάλογο, μετά ταξινομούμε το αποτέλεσμα και τέλος επιλέγουμε το πρώτο αντικείμενο.

Εκτέλεση εργασιών στο παρασκήνιο

Το Windows PowerShell έχει τη δυνατότητα να εκτελεί εργασίες στο παρασκήνιο, που είναι ένας μηχανισμός με τον οποίο μπορείτε να εκτελέσετε μια εντολή ( για παράδειγμα, που χρειάζεται πολύ χρόνο για να ολοκληρωθεί) V φόντο, δηλ. μετά την εκκίνηση, επιστρέφετε στην τρέχουσα περίοδο λειτουργίας και μπορείτε να συνεχίσετε να εργάζεστε χωρίς να περιμένετε να ολοκληρωθεί η εντολή. Αυτή η ευκαιρίαΘα το χρειαστείτε όταν πρέπει να εκτελέσετε μια εντολή που χρειάζεται πολύ χρόνο για να ολοκληρωθεί, και όπως γνωρίζετε, κατά τη διάρκεια αυτής της περιόδου η περίοδος λειτουργίας PowerShell αποκλείεται μέχρι να ολοκληρωθεί η εντολή και πρέπει να συνεχίσετε να εργάζεστε.

Μπορείτε να διαχειριστείτε όλες τις εργασίες που εκτελούνται στο παρασκήνιο, για παράδειγμα, να προβάλετε τη λίστα εργασιών, να διακόψετε την εργασία, να διαγράψετε την εργασία και, φυσικά, να προβάλετε το αποτέλεσμα της εργασίας.

Το Windows PowerShell διαθέτει τα ακόλουθα cmdlet για εργασία με εργασίες παρασκηνίου:

  • Start-Job – ξεκινήστε μια εργασία στο παρασκήνιο.
  • Stop-Job – διακοπή μιας εργασίας στο παρασκήνιο
  • Get-Job – προβολή της λίστας των εργασιών στο παρασκήνιο.
  • Receive-Job – προβολή του αποτελέσματος μιας εργασίας στο παρασκήνιο.
  • Remove-Job – αφαιρέστε μια εργασία στο παρασκήνιο.
  • Wait-Job – μετακινήστε μια εργασία στο παρασκήνιο στο προσκήνιο για να περιμένετε να ολοκληρωθεί.

Για να εκτελέσετε στο παρασκήνιο, πρέπει να γράψετε την εντολή Start-Job και σε σγουρές αγκύλες () μια εντολή ή ένα σύνολο εντολών που θέλετε να εκτελέσετε στο παρασκήνιο.

Για παράδειγμα, ας εκτελέσουμε κάποια εργασία ( εμφάνιση λίστας υπηρεσιών) στο παρασκήνιο, μετά κοιτάξτε τη λίστα εργασιών παρασκηνίου και εμφανίστε το αποτέλεσμα της εργασίας μας ( εκείνοι. κατάλογος υπηρεσιών).

Εκτελέστε μια εργασία στο παρασκήνιο

Start-Job (Get-Service)

Εξετάζουμε τη λίστα εργασιών που εκτελούνται στο παρασκήνιο

Εμφάνιση του αποτελέσματος του Job1

Λήψη-Εργασία Job1

Όπως μπορείτε να δείτε, τώρα έχουμε μια εργασία με την κατάσταση " Ολοκληρώθηκε το", δηλ. έχει ήδη ολοκληρωθεί ( Το Get-Service λειτουργεί γρήγορα).

Για να δείτε το αποτέλεσμα της εργασίας παρασκηνίου, π.χ. Get-Service cmdlet, εκτελέσαμε την εντολή Receive-Job και της δώσαμε το όνομα εργασίας ( η τιμή του αναγνωριστικού είναι επίσης δυνατή). Ως αποτέλεσμα, εμφανίσαμε μια λίστα υπηρεσιών.

Τηλεχειριστήριο με χρήση PowerShell

Το Windows PowerShell έχει σχεδιαστεί όχι μόνο για τοπική χρήση, αλλά και στις απομακρυσμένη εκτέλεσηεντολές Αυτή η δυνατότητα είναι απαραίτητη για να μπορείτε να ελέγχετε απομακρυσμένους υπολογιστές από τον χώρο εργασίας σας, π.χ. εκτελέστε εντολές PowerShell.

Υπάρχουν διάφοροι τρόποι τηλεχειρισμού:

  • Χρησιμοποιώντας την παράμετρο -Όνομα υπολογιστή (το έχουν πολλές ομάδες). Με άλλα λόγια, μεταβιβάζετε ως παράμετρο το όνομα του υπολογιστή στον οποίο θέλετε να εκτελέσετε την εντολή. Η μέθοδος έχει το μειονέκτημα ότι περιορίζεται στην εκτέλεση μιας εντολής.
  • Χρήση συνεδριών. Cmdlet Enter-PSSession (διαδραστική συνεδρία). Με αυτόν τον τρόπο, συνδέεστε σε έναν απομακρυσμένο υπολογιστή και όλες οι εντολές που πληκτρολογείτε στο PowerShell θα εκτελούνται στον απομακρυσμένο υπολογιστή με τον ίδιο τρόπο όπως εάν πληκτρολογούσατε τις εντολές απευθείας στον απομακρυσμένο υπολογιστή. Η μέθοδος έχει επίσης το μειονέκτημα ότι η περίοδος λειτουργίας περιορίζεται σε έναν υπολογιστή.
  • Χρησιμοποιώντας ένα cmdlet Επίκληση-Εντολή. Με τη χρήση αυτή τη μέθοδοΜπορείτε να εκτελέσετε εντολές ή σενάρια σε έναν υπολογιστή ή σε πολλούς.

Για παράδειγμα, για να συνδεθείτε σε έναν απομακρυσμένο υπολογιστή ( στο παρακάτω παράδειγμα Όνομα διακομιστή) σε μια διαδραστική περίοδο λειτουργίας, εκτελέστε την ακόλουθη εντολή:

Enter-PSSession Όνομα διακομιστή

Σενάρια, λειτουργίες και λειτουργικές μονάδες στο Windows PowerShell

Εάν έχετε γράψει έναν αλγόριθμο, πιθανότατα θα θέλετε να τον αποθηκεύσετε για να τον χρησιμοποιήσετε στο μέλλον. Το Windows PowerShell διαθέτει μηχανισμό δέσμης ενεργειών για αυτό το σκοπό.

Η ουσία αυτού του μηχανισμού είναι η εξής: γράφετε το σύνολο των εντολών που χρειάζεστε και το αποθηκεύετε ως σενάριο - αυτό είναι ένα απλό αρχείο κειμένου με την επέκταση .PS1.

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

Σπουδαίος!

Από προεπιλογή, η εκτέλεση σεναρίων στα Windows απαγορεύεται! Για να προβάλετε την πολιτική εκτέλεσης σεναρίου, εκτελέστε το cmdlet Get-ExecutionPolicy. Ως αποτέλεσμα, θα επιστρέψει την τρέχουσα πολιτική, για παράδειγμα:

  • Περιορισμένη - η εκτέλεση οποιωνδήποτε σεναρίων είναι αποκλεισμένη ( προεπιλεγμένη τιμή);
  • AllSigned – επιτρέπεται η εκτέλεση σεναρίων με ψηφιακή υπογραφή.
  • RemoteSigned – επιτρέπεται η εκτέλεση τοπικών σεναρίων, όλα τα σενάρια λήψης πρέπει να έχουν ψηφιακή υπογραφή.
  • Απεριόριστη - επιτρέπεται η εκτέλεση οποιωνδήποτε σεναρίων ( δεν συνιστάται καθώς δεν είναι ασφαλές!).

Για να ενεργοποιήσετε την εκτέλεση σεναρίων, πρέπει να χρησιμοποιήσετε το cmdlet Set-ExecutionPolicyμε μία από τις παραπάνω παραμέτρους.

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

Set-ExecutionPolicy RemoteSigned

Μπορείτε να μεταβιβάσετε παραμέτρους σε ένα σενάριο, να τις κάνετε υποχρεωτικές ή να ορίσετε μια προεπιλεγμένη τιμή.

Το Windows PowerShell παρέχει έναν μηχανισμό δημιουργίας ιδιοσυναρτήσεις, τα οποία, όπως τα ενσωματωμένα cmdlet, μπορούν να χρησιμοποιηθούν στο PowerShell.

Για να το κάνετε αυτό, πρέπει να καθορίσετε τη λέξη-κλειδί Function και στη συνέχεια να γράψετε τον αλγόριθμο για αυτήν τη συνάρτηση σε σγουρά άγκιστρα (), π.χ. σύνολο εντολών ( για παράδειγμα, κάποια διαδικασία που χρησιμοποιείται συχνά: δημιουργία χρήστη με συγκεκριμένα δικαιώματα, εκκαθάριση ορισμένων καταλόγων και ούτω καθεξής). Στη συνέχεια, πρέπει να αποθηκεύσετε όλα αυτά σε ένα σενάριο, αλλά μόνο με την επέκταση .psm1, καθώς αυτό το αρχείο θα είναι ήδη μια ενότητα.

Δεν είναι μόνο αυτό, αυτό το αρχείο πρέπει να τοποθετηθεί στον κατάλογο όπου το PowerShell αναζητά λειτουργικές μονάδες. Υπάρχουν αρκετοί τέτοιοι κατάλογοι ( ειδικός κατάλογος στο προφίλ χρήστη, ο κατάλογος όπου είναι εγκατεστημένο το PowerShell), μπορούν να προβληθούν σε μεταβλητές περιβάλλοντος PowerShell. Για να το κάνετε αυτό, εκτελέστε την ακόλουθη εντολή

Get-ChildItem Env:\PSModulePath | Format-Table -AutoSize

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

Ενσωματωμένο περιβάλλον δέσμης ενεργειών Windows PowerShell (ISE)

Για να διευκολύνει τη σύνταξη σεναρίων, λειτουργιών και, κατά συνέπεια, ενοτήτων, η Microsoft έχει αναπτύξει μια ειδική πρόγραμμα γραφικών Ολοκληρωμένο περιβάλλον δέσμης ενεργειών(ISE) - Ολοκληρωμένο περιβάλλον δέσμης ενεργειών. Είναι πολύ βολικό να εργάζεστε σε αυτό το πρόγραμμα και έχει επίσης ισχυρή λειτουργικότητα ( δημιουργία πολλαπλών καρτελών με σενάρια, περιοχή εξόδου, ενσωματωμένο πρόγραμμα εντοπισμού σφαλμάτων και άλλα).

Μπορείτε να το εκτελέσετε ως εξής:

  • Στα Windows 7 - Έναρξη-> Όλα τα προγράμματα -> Αξεσουάρ ->Windows PowerShell -> Windows PowerShell ISE;
  • Στα Windows 10 ή Windows Server 2016 - Έναρξη-> Όλα τα προγράμματα -> Κατάλογος Windows PowerShell ( στον όμιλο W) -> Windows PowerShell ISE.

Σημείωμα!Το ISE δεν θα εκτελεστεί σε σύστημα Windows Server που είναι εγκατεστημένο στην έκδοση Server Core.

Στιγμιότυπο οθόνης του PowerShell Integrated Scripting Environment (ISE) στον Windows Server 2016

Αυτό είναι όλο για μένα, ελπίζω ότι το υλικό σας ήταν χρήσιμο! Καλή τύχη!



Συνιστούμε να διαβάσετε

Κορυφή