Τα Λειτουργικά Συστήματα, ανάλογα με τις άδειες των χρηστών παρέχουν διεπαφές (κελύφη) για τη διαχείριση των υπολογιστικών πόρων.

Το Microsoft PowerShell είναι ένα ισχυρό εργαλείο διαχείρισης και αυτοματισμού λειτουργιών των Λειτουργικών Συστημάτων της Microsoft.  Αποτελεί ένα κέλυφος εντολών (command-line shell) και μια γλώσσα σεναρίων (scripting language) που επιτρέπει στους διαχειριστές συστημάτων όχι μόνο να εκτελούν εντολές αλλά και να αυτοματοποιούν την διαδικασία εκτέλεσης ομάδων εντολών. Επιπρόσθετα η μερική συμβατότητά του και με άλλα Λ.Σ. καθιστά το συγκεκριμένο κέλυφος ακόμη πιο ισχυρό εργαλείο.

Από την «κονσόλα» παλαιού τύπου στο Microsoft PowerShell

Στα Windows 10/11 για λόγους συμβατόττητας με πλαιότερες εκδόσεις διαητήθηκε και γραμμή εντολών ως κονσόλα [1]  παλαιού τύπου Λ.Σ. Το περιβάλλον της γραμμής εντολών ανάγεται στα πρώτα Λ.Σ.  τύπου DOS. H εμφάνιση του παραθύρου γραμμής εντολών μπορεί να γίνει πχ. πληκτρολογώντας cmd στη γραμμή αναζήτησης των Windows. Με την εισαγωγή της, εμφανίζεται η οθόνη της γραμμής εντολών.


Εικόνα 2.9.1 Οθόνη  Command Prompt

Η λειτουργίες της γραμμής εντολών έχουν αντικατασταθεί από αντίστοιχες του PowerShell, αλλά η χρήση αυτής της παλαιότερης έκδοσης του Λ.Σ μπορεί να αποδειχθεί χρήσιμη εάν κάποια λειτουργία του PowerShell δεν εμφανίζεται ή δεν λειτουργεί σωστά. Η πιο γνωστή διαφορά μεταξύ της γραμμής εντολών και του PowerShell βρίσκεται στη χρήση κωδικοποίησης χαρακτήρων κατά UTF-8. Οι παλαιότερες εκδόσεις εμφάνιζαν λάθη σε κάποιες κωδικοσελίδες που χρησιμοποιούσαν UTF-8.

Το Microsoft PowerShell είναι μία εφαρμογή υλοποίησης εργασιών και διαχείρισης παραμέτρων από τη Microsoft που περιλαμβάνει ένα κέλυφος που παρέχει «γραμμή εντολών» μαζί με τον κώδικα της διερμηνείας τους, το πρόγραμμα δηλαδή που τις εκτελεί.

Οι εντολές που παρέχονται στο PowerShell από την Microsoft υποστηρίζουν πλήθος λειτουργιών σχετικών με τη διαχείριση αρχείων και καταλόγων, ανάκτηση πληροφοριών συστήματος και δικτύου, λειτουργία συστήματος και δικτύου κ.α. Το PowerShell εκτός από την έκδοση των 64 bits διατίθεται και έκδοση για 32 bit λειτουργικό {Windows PowerShell (x86)}.

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


Εικόνα 2.9.2 Βασική οθόνη Microsoft PowerShell

Η συγκεκριμένη εφαρμογή επιτρέπει στους διαχειριστές να εκτελούν εργασίες διαχείρισης τόσο σε τοπικά όσο και σε απομακρυσμένα συστήματα Windows. Επιπρόσθετα η εφαρμογή διαθέτει και μία διεπαφή προγραμματιστικών διαδικασιών (Application Programming Interface) με δυνατότητες υποδοχής αιτημάτων από άλλα προγράμματα. Η εφαρμογή έχει ενσωματώσει υπηρεσίες διαχείρισης σταθμών εργασίας (Workstation Management), και Common Information Model [2] που επιτρέπουν τη διαχείριση απομακρυσμένων συστημάτων (πχ. Linux) και συσκευών δικτύου.

Το PowerShell διαθέτει βοήθεια που βασίζεται σε κονσόλα προσβάσιμη μέσω της εντολής Get-Help. (Για παράδειγμα δίνοντας την εντολή Powershell: get-help get επιστρέφει όλες τις πληροφορίες βοήθειας για την εντολή get). Παρέχεται επιπλέον η δυνατότητα επικαιροποίησης της τοπικής βοήθειας μέσω Διαδικτύου με χρήση της εντολής Update-Help

Οι εντολές του PowerShell μπορούν να ομαδοποιηθούν και να αποτελέσουν τα λεγόμενα σενάρια (scripts).  Τα σενάρια είναι αρχεία κειμένου και η επεξεργασία τους γίνεται με έναν απλό επεξεργαστή κειμένου.  Για να αναγνωριστούν ως σενάρια και να εκτελεστούν από το PowerShell πρέπει το όνομα  του αρχείου που τα περιέχει να έχει επέκταση .ps1.

Το PowerShell διαθέτει βοήθεια που βασίζεται σε κονσόλα προσβάσιμη μέσω της εντολής Get-Help. (Για παράδειγμα δίνοντας την εντολή Powershell: get-help get επιστρέφει όλες τις πληροφορίες βοήθειας για την εντολή get). Παρέχεται επιπλέον η δυνατότητα επικαιροποίησης της τοπικής βοήθειας μέσω Διαδικτύου με χρήση της εντολής Update-Help

Οι εντολές του PowerShell μπορούν να ομαδοποιηθούν και να αποτελέσουν τα λεγόμενα σενάρια (scripts).  Τα σενάρια είναι αρχεία κειμένου και η επεξεργασία τους γίνεται με έναν απλό επεξεργαστή κειμένου.  Για να αναγνωριστούν ως σενάρια και να εκτελεστούν από το PowerShell πρέπει το όνομα  του αρχείου που τα περιέχει να έχει επέκταση .ps1.

Η εκτέλεση των scripts που προκύπτουν από τη διερμηνεία των εντολών του PowerShell γίνεται σε δύο επίπεδα:

Α) Επίπεδο απλού χρήστη (normal mode) με περιορισμένα δικαιώματα. (Είναι το επίπεδο που έχουν όλοι οι χρήστες ενός υπολογιστικού συστήματος). Εκτός από την έκδοση των 64 bits διατίθεται και έκδοση για 32 bit λειτουργικό {Windows PowerShell (x86)}.

Β) Επίπεδο διαχειριστή (administrator mode) με το σύνολο των δικαιωμάτων. (Στο επίπεδο αυτό έχουν πρόσβαση μόνο οι κάτοχοι λογαριασμού με δικαιώματα διαχειριστή). Επίσης διατίθεται και έκδοση για 32 bit λειτουργικό {Windows PowerShell ISE (x86)}.

Όλα τα σενάρια [3] (scripts) είναι επεξεργάσιμα ως αρχεία κειμένου, έχουν την επέκταση *.ps1 και εκτελούνται μέσα από το Windows PowerShell [4] .

    Ενεργοποίηση Windows PowerShell

  • Πληκτρολόγηση στο πλαίσιο αναζήτησης
  •  + R και πληκτρολόγηση στο αναδυόμενο παράθυρο

  • Πίνακας Ελέγχου Σύστημα και Ασφάλεια Εργαλεία των windows Επιλογή έκδοσης PowerShell.


Με τη χρήση της εντολής PS: Get-Command το λειτουργικό μας επιστρέφει το σύνολο των διαθέσιμων εντολών. Στη συνέχεια της υποενότητας θα δούμε μερικές από τις βασικές εντολές διαχείρισης αρχείων και ελέγχου δικτύου.

Εντολές διαχείρισης αρχείων

Το Windows PowerShell πέρα από το σύνολο των εντολών των λεγομένων MSDOS [5] διαθέτει μερικές “ισχυρές” εντολές για τη διαχείριση των αρχείων του συστήματός μας. Ενδεικτικά:

  • Εμφάνιση αρχείων / φακέλων Με την χρήση της εντολής Get-ChildItem μπορούμε να εμφανίσουμε στο τερματικό όλα τα αρχεία φακέλους από το path της επιλογής μας. Η συγκεκριμένη εντολή είναι πολύ χρήσιμη καθώς χρησιμοποιώντας τις κατάλληλες παραμέτρους μπορούμε να εντοπίσουμε τη θέση ενός αρχείου.

Στην εικόνα 2.9.5 εμφανίζουμε τα αρχεία που υπάρχουν στον τρέχοντα κατάλογο (στον φάκελο που βρισκόμαστε).

Εικόνα 2.9.3 Στιγμιότυπο οθόνης από την εμφάνιση αρχείων / φακέλων

Αν επιθυμούσαμε να εμφανιστούν και τα κρυφά αρχεία θα προσθέταμε την παράμετρο -Force , δηλαδή  get-childItem -Force  (ή get-childItem -f).

Αν επιθυμούσαμε να εμφανιστούν τα αρχεία του καταλόγου Public θα γράφαμε:

get-childItem \Public

Επίσης μπορούμε να αναζητήσουμε το αρχείο new.txt με την παρακάτω εντολή:


Εικόνες 2.9.4 Στιγμιότυπο οθόνης από την αναζήτηση αρχείων / φακέλων

Στο παραπάνω παράδειγμα ζητείται να εμφανιστούν τα αρχεία ή φάκελοι που περιέχουν στο όνομά τους τη συμβολοσειρά new.txt και βρίσκονται κάτω από τον κατάλογο c:\users\user\. Σημειώνουμε ότι εάν υπάρξει απαγόρευση πρόσβασης σε ένα συγκεκριμένο μονοπάτι, εμφανίζεται κατάλληλο μήνυμα.

  • Μετακίνηση αρχείων / φακέλων γίνεται μέσω της εντολής Move-Item.

Για παράδειγμα μπορούμε να μετακινήσουμε έναν φάκελο από έναν κατάλογο σε έναν άλλο.


Εικόνα 2.9.5 Στιγμιότυπο οθόνης από εντολή μετακίνησης αρχείων / φακέλων

Στο παράδειγμα της εικόνας 2.9.5 μετακινούμε τον φάκελο programming από τη θέση (κατάλογο) c:\users\user\desktop στη θέση c:\users\user

  • Διαχείριση των ιδιοτήτων των αρχείων στα Windows γίνεται μέσω της εντολής attrib. Η σύνταξη της εντολής γίνεται μέσω των παρακάτω παραμέτρων.

 

Για παράδειγμα μπορούμε να αλλάξουμε την κατάσταση ενός αρχείου σε «κρυφό» με τη χρήση της εντολής:


Για την αναίρεση της κατάστασης του αρχείου από κρυφό, μπορούμε να χρησιμοποιήσουμε τη παράμετρο -h.

  • Μετονομασία αρχείων / φακέλων μέσω της εντολής Rename-Item.


Εικόνα 2.9.6 Στιγμιότυπο οθόνης από μετονομασία φακέλου

Προφανώς υπάρχουν και άλλες πολλές σχετικές εντολές που μπορεί εύκολα να αναζητηθούν στο Διαδίκτυο. Στο τέλος της ενότητας και στο Παράρτημα ΙΙ θα παραθέσουμε μερικές από αυτές. Συνολικά θα μπορούσαμε να πούμε ότι το Windows PowerShell είναι ένα χρήσιμο κέλυφος το οποίο μέσα από τη «γραμμή εντολών» δίνει τη δυνατότητα να εκτελεστούν αυτοματοποιημένα πολλές εργασίες και πολλές εργασίες επιπέδου διαχειριστή συστήματος.

  Υλοποιήστε τη Δραστηριότητα 2.9.1

Εντολές ελέγχου δικτύου

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

  • Διαμόρφωση διεύθυνσης IP, σταθμού εργασίας. Με τη εντολή Get-NetIPConfiguration μπορούμε να βρούμε πληροφορίες σχετικά με τη διαμόρφωση της διεύθυνσης IP.  (Ακόμα περισσότερες λεπτομέρειες μπορούμε να δούμε με την εντολή  Get-NetIPConfiguration -InterfaceAlias Ethernet -Detailed).

Εικόνα 2.9.7 Πληροφορίες για τη δική μας IP Address

  • Ιδιότητες κάρτας διασύνδεσης δικτύου. Με την εντολή Get-NetAdapter μπορούμε να βρούμε βασικές πληροφορίες σχετικά με τις ιδιότητες των καρτών δικτύου που είναι εγκατεστημένες στο σύστημα.

Εικόνα 2.9.8 Οθόνη παραμέτρων κάρτας διασύνδεσης δικτύου

  • Έλεγχος σύνδεσης δικτύου. Η εντολή Test-Connection είναι η αντίστοιχη της εντολής ping στις διανομές linux. Με αυτήν μπορούμε να στείλουμε ICMP (Internet Control Message Protocol) ή αλλιώς echo request packets, σε έναν ή περισσότερους υπολογιστές προκειμένου να επιβεβαιώσουμε ότι είναι προσβάσιμος από εμάς.

Εικόνα. 2.9.9 Οθόνη ελέγχου διασύνδεσης δικτύου. (H IP 185.16.166.44 ανήκει στο Διεθνές αεροδρόμιο της Αθήνας και αναφέρεται στο https://public-dns.info/nameserver/gr.html).

●     Εντολή “επίλυσης” Domain Name. Η εντολή Resolve-DnsName μπορεί να χρησιμοποιηθεί για την επίλυση domain names.


Εικόνα. 2.9.10 Οθόνη εντολής επίλυσης domain name.

Με αυτό τρόπο μπορούμε για παράδειγμα να βρούμε την IP για το domain google.com:

  Υλοποιήστε τη Δραστηριότητα 2.9.2

[1] Ο όρος κονσόλα προήλθε από τα πρώτα Λειτουργικά Συστήματα όπου ο χειριστής μπροστά σε μία τερματική συσκευή (οθόνη και πληκτρολόγιο) μπορούσε να δώσει ένα περιορισμένο αριθμό εντολών διαχείρισης του υπολογιστή διατηρώντας ή και εκτυπώνοντας την προϊστορία των πληκτρολογήσεων.

[2] Πρόκειται για ένα επεκτάσιμο και αντικειμενοστραφές μοντέλο πολλών πλατφορμών που επιτρέπει τη διαχείριση πολλών συστημάτων διαφόρων κατασκευαστών.

[3] ή ακολουθίες εντολών.

[4] Η γλώσσα ανάπτυξης των scripts βασίστηκε στο Framework Class Library, μια βιβλιοθήκη κλάσεων που επιτρέπει διαλειτουργικότητα μεταξύ των γλωσσών που περιέχει.

[5] MicroSoft Disk Operating System