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

Βασικά Takeaways

  • Το PowerShell είναι μια γλώσσα δέσμης ενεργειών που μπορεί να βοηθήσει στην αυτοματοποίηση των εργασιών του υπολογιστή.
  • Τα Cmdlet είναι εντολές Powershell μίας λειτουργίας. Μπορείτε να δείτε τις διαθέσιμες εντολές με το “Get-Command”.
  • Το PowerShell είναι διαθέσιμο σε Windows, macOS και Linux.

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

Επισκόπηση PowerShell Scripting

Για να ξεκινήσετε να δημιουργείτε απλά σενάρια PowerShell στα Windows, θα πρέπει να γνωρίζετε τρία πράγματα:

  • Cmdlets: εντολές μίας συνάρτησης.
  • Παράμετροι: καθορίστε το τι, πότε, πού και πώς των Cmdlet/εντολών.
  • Pipeline: παίρνει την έξοδο του Cmdlet και τις παραμέτρους του και το συνδέει με άλλα Cmdlet και λειτουργίες.

Συνδυάζοντας και τα τρία, μπορείτε να δημιουργήσετε απλά σενάρια για να βοηθήσετε στην αυτοματοποίηση των εργασιών.

Ακολουθεί ένα παράδειγμα διοχέτευσης που δείχνει πώς μπορείτε να συνδυάσετε πολλά Cmdlet για να επιτύχετε μια εργασία:

Για να εκτελέσετε αυτόν τον αγωγό στο PowerShell, θα χρησιμοποιήσετε κάτι σαν αυτήν την εντολή:

 Get-Object Potato | Peel-Object | Chop-Object Chips| Cook-Object DeepFry `
  | Place-Object Bowl

Cmdlet αναλυτικά

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

Τα Cmdlet (προφέρονται ως command-lets) είναι μικρές εντολές μίας λειτουργίας που χρησιμοποιούνται στο περιβάλλον PowerShell χρησιμοποιώντας την επέκταση .dll. Είναι ελαφριά κομμάτια κώδικα που εκτελούνται πιο γρήγορα από τις συναρτήσεις λόγω της μεταγλωττισμένης φύσης τους.

  Κολλήσατε στην οθόνη CTRL+ALT+DEL; Δείτε πώς μπορείτε να το διορθώσετε

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

 Get-Command 

Εάν σαρώσετε τα αποτελέσματα, θα παρατηρήσετε ότι ακολουθούν μια σύμβαση ονομασίας ρήματος-ουσιαστικού. Αυτό διευκολύνει την κατανόηση του τι κάνει ένα συγκεκριμένο Cmdlet.

Για παράδειγμα, το Get-Command δίνει μια λίστα με εντολές που είναι διαθέσιμες στο PowerShell. Το Get-Process σάς παρέχει τις διεργασίες που είναι ενεργές αυτήν τη στιγμή και το Copy-Item αντιγράφει ένα ή περισσότερα αρχεία σε έναν συγκεκριμένο κατάλογο.

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

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

 Get-Help <name-of-cmdlet> 

Επεξήγηση των παραμέτρων του PowerShell

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

Για παράδειγμα, το Get-Process θα λάβει και θα λίστα με όλες τις ενεργές διεργασίες στο λειτουργικό σας σύστημα:

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

 Get-Process -Name Slack 

Στη συνέχεια, θα δείτε μόνο αυτές τις διαδικασίες με το όνομα “slack”:

  Πώς να αλλάξετε την προεπιλεγμένη επιλογή εισόδου στα Windows 10

Ορισμένες παράμετροι είναι “θέση” που σημαίνει ότι το όνομά τους είναι προαιρετικό. Σε αυτήν την περίπτωση, το Get-Process -Name Slack και το Get-Process Slack κάνουν το ίδιο πράγμα.

Κάθε Cmdlet δέχεται διαφορετικούς τύπους παραμέτρων. Χρησιμοποιήστε την εντολή Get-Help για να προβάλετε τις αποδεκτές παραμέτρους ενός Cmdlet στην ενότητα SYNTAX.

 Get-Help Get-Process 

Θα δείτε μια λίστα με όλους τους πιθανούς τρόπους με τους οποίους μπορείτε να εκτελέσετε το δεδομένο Cmdlet:

Σε αυτήν την περίπτωση, το Get-Process Cmdlet δέχεται παραμέτρους όπως Name, Id, ComputerName, Module, FileVersionInfo και άλλες κοινές παραμέτρους. Τα σύμβολα εδώ σημαίνουν:

Σύμβολο

Ονομα

Εννοια

Κενό

Η παράμετρος δεν δέχεται είσοδο

Ενωτικό

Υποδεικνύει το όνομα της παραμέτρου

<>

Γωνιακοί βραχίονες

Σημείο κράτησης θέσης για κείμενο

[]

Στηρίγματα

Παράμετρος που μπορεί να δεχθεί μία ή περισσότερες τιμές

{}

Σιδερακια ΔΟΝΤΙΩΝ

Η παράμετρος δέχεται ένα σύνολο τιμών

Οι παράμετροι που δέχονται εισόδους θα υποδεικνύουν τον τύπο των δεδομένων που απαιτούν, όπως μια συμβολοσειρά, ακέραιος, boolean ή DateTime. Για παράδειγμα, αυτό:

 Get-Process [[-Name] <string[]>] 

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

 Get-Process -Id <int[]> 

Σημαίνει ότι η παράμετρος Id δέχεται μία ή περισσότερες ακέραιες τιμές.

Το προηγούμενο παράδειγμα Get-Process χρησιμοποιούσε την παράμετρο Name για να περιορίσει τα αποτελέσματα. Ωστόσο, εάν θέλετε να το περιορίσετε σε μια ακόμη πιο συγκεκριμένη διαδικασία, μπορείτε να χρησιμοποιήσετε την παράμετρο ID, η οποία απαιτεί έναν ακέραιο αριθμό όπως αναφέρεται στη σύνταξη.

 Get-Process -Id 3016 

Στη συνέχεια, θα πρέπει να δείτε μόνο μία διαδικασία στη λίστα:

  Πώς να αλλάξετε τις συντομεύσεις του Outlook.com ώστε να ταιριάζουν με το Gmail ή το Yahoo!

Δημιουργία αγωγού

Το PowerShell αντιμετωπίζει όλα τα δεδομένα ως αντικείμενα. Για τη δημιουργία ενός σεναρίου, αυτά τα αντικείμενα ρέουν μέσω μιας σειράς Cmdlet ή συναρτήσεων που συνδέονται με ένα σύμβολο σωλήνα ( | ). Η επιλογή των σωστών Cmdlet και η σύνδεσή τους σε μια λογική ακολουθία χρησιμοποιώντας το pipeline είναι ζωτικής σημασίας για ένα αποτελεσματικό σενάριο.

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

Για να το κάνετε αυτό στο PowerShell, χρησιμοποιήστε μια διοχέτευση που μοιάζει με αυτό:

 Get-ChildItem -Path "C:\Directory" -File | Sort-Object Length -Descending `
 | Select-Object -First 5 | Format-Table Name, Length -AutoSize

Αποθήκευση Pipeline ως σενάριο PS1

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

Ο απλούστερος τρόπος για να δημιουργήσετε ένα αρχείο PS1 είναι να επικολλήσετε το σενάριό σας στο Σημειωματάριο και να αποθηκεύσετε το αρχείο με την επέκταση .ps1.

Αφού δημιουργήσετε το αρχείο PS1, μπορείτε να το χρησιμοποιήσετε στο PowerShell εκτελώντας το ./ScriptName.ps1:

Συγχαρητήρια! Τώρα μπορείτε να δημιουργήσετε σενάρια PowerShell PS1.

Το PowerShell είναι επίσης διαθέσιμο σε Linux και macOS

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