PowerShell και όλα όσα πρέπει να γνωρίζετε για αυτό το βοηθητικό πρόγραμμα

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

Πίνακας περιεχομένων

Τι είναι το PowerShell;

Το Microsoft PowerShell είναι ένα βοηθητικό πρόγραμμα γραμμής εντολών και μια γλώσσα δέσμης ενεργειών που αποτελεί ένα ισχυρό εργαλείο για τους διαχειριστές, ώστε να αυτοματοποιούν ένα ευρύ φάσμα εργασιών για υπολογιστές και δίκτυα. Το PowerShell περιέχει στοιχεία της Γραμμής εντολών και είναι ενσωματωμένο στο .NET framework. Αν διαβάζετε για το WebTech360, θα πρέπει να γνωρίζετε ότι το PowerShell είναι το εργαλείο που προτιμούν οι διαχειριστές IT για τη διαχείριση μεγάλων δικτύων.

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

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

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

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

Μια σύντομη ιστορία των βοηθητικών προγραμμάτων γραμμής εντολών των Windows

Μετά την κυκλοφορία των Windows NT, το CMD.EXE έγινε το βοηθητικό πρόγραμμα γραμμής εντολών για τα Windows. Παρόλο που το CMD.EXE κληρονόμησε ορισμένα στοιχεία από τον προκάτοχό του στο DOS (COMMAN.COM), εξακολουθούσε να βασίζεται σε μια μάλλον «πρωτόγονη» γλώσσα scripting: χρησιμοποιώντας αρχεία εντολών των Windows (.CMD και .BAT). Η προσθήκη του Windows Scripting Host και των γλωσσών VBScript και JScript βελτίωσε σημαντικά τις δυνατότητες scripting του βοηθητικού προγράμματος.

Αυτές οι τεχνολογίες αποτελούν ένα αρκετά ισορροπημένο μείγμα προηγμένων βοηθητικών προγραμμάτων γραμμής εντολών και περιβαλλόντων scripting. Η πραγματική ανησυχία δεν είναι πόσα αρχεία CMD.EXE, .CMD και Windows Scripting Host μπορούν να χειριστούν με αυτές. Το κύριο παράπονο και η ανησυχία είναι η εκτέλεση ορισμένων φαινομενικά απλών εργασιών.

Χρησιμοποιώντας ένα «πλαίσιο» γραμμής εντολών και εργαλείων scripting, οποιοδήποτε μέτριας ανάλυσης σενάριο απαιτεί έναν συνδυασμό εντολών δέσμης, του Windows Scripting Host και αυτόνομων εκτελέσιμων αρχείων. Κάθε σενάριο χρησιμοποιεί διαφορετικές συμβάσεις για την εκτέλεση και τα αιτήματα, την ανάλυση και την επιστροφή δεδομένων.

Η κακή υποστήριξη μεταβλητών στο CMD.EXE, οι ασυνεπείς διεπαφές και η περιορισμένη πρόσβαση στις ρυθμίσεις των Windows, σε συνδυασμό με μια άλλη αδυναμία, καθιστούν δύσκολη την εφαρμογή και τη χρήση των σεναρίων γραμμής εντολών. Ποια είναι αυτή η «άλλη αδυναμία», ίσως αναρωτηθείτε; Είναι κείμενο. Σε αυτές τις τεχνολογίες, τα πάντα είναι κείμενο. Η έξοδος μιας εντολής ή σεναρίου είναι κείμενο και πρέπει να αναλυθεί και να αναδιαμορφωθεί για να λειτουργήσει ως είσοδος για την επόμενη εντολή. Αυτό είναι το βασικό σημείο εκκίνησης που παίρνει το PowerShell από όλα τα παραδοσιακά κελύφη.

Παρουσίαση εργαλείων, εντολών και ενοτήτων PowerShell

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

Εργαλεία PowerShell

Το PowerShell εγκαθίσταται από προεπιλογή στα Windows 10, Windows 7, Windows Server 2008 R2 και σε νεότερες εκδόσεις των Windows. Οι νεότερες εκδόσεις του PowerShell προσθέτουν νέες δυνατότητες και "cmdlets" (όρος της Microsoft για τις εντολές PowerShell - προφέρεται "command-lets") και εγκαθίστανται με την αντίστοιχη έκδοση του Windows Management Framework (WMF).

Προς το παρόν, η τελευταία συνιστώμενη έκδοση είναι η WMF 5.1. Σε ορισμένες περιπτώσεις, ορισμένες νέες δυνατότητες εξαρτώνται από το λειτουργικό σύστημα, επιπλέον της έκδοσης WMF. Για παράδειγμα, τα Windows 8 και τα Windows Server 2012 υποστηρίζουν το cmdlet Test-NetConnection, το οποίο σας επιτρέπει να ελέγξετε τη συνδεσιμότητα σε μια συγκεκριμένη θύρα TCP/IP , αλλά αυτό το cmdlet δεν είναι διαθέσιμο στα Windows 7, ακόμη και όταν εκτελείται η τελευταία έκδοση του WMF.

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

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

cmdlets στο PowerShell

Η βάση των εντολών PowerShell είναι το cmdlet. Η Microsoft υιοθέτησε διάφορες στρατηγικές σχεδίασης κατά τη δημιουργία cmdlet στο PowerShell.

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

Τα cmdlet χρησιμοποιούν τη μορφή Verb-Noun, όπως στο Get-Service, Stop-Service ή Import-Csv. Το ρήμα στο όνομα του cmdlet υποδεικνύει την ενέργεια που εκτελείται στο ουσιαστικό. Συνήθως, τα cmdlet που χρησιμοποιούνται για την ανάκτηση πληροφοριών θα έχουν το ρήμα Get στο όνομά τους, όπως Get-Process ή Get-Content . Οι εντολές που χρησιμοποιούνται για την τροποποίηση κάποιου πράγματος συνήθως ξεκινούν με το ρήμα Set και οι εντολές που χρησιμοποιούνται για την προσθήκη μιας νέας οντότητας σε κάτι συνήθως ξεκινούν με Add ή New .

Δεύτερον, οι παράμετροι που χρησιμοποιούνται συνήθως στο PowerShell λαμβάνουν επίσης τυποποιημένα ονόματα. Για παράδειγμα, η παράμετρος -ComputerName επιτρέπει την εκτέλεση του cmdlet σε έναν ή περισσότερους απομακρυσμένους υπολογιστές. Το -Credential χρησιμοποιείται για την παροχή ενός αντικειμένου ελέγχου ταυτότητας, που περιέχει διαπιστευτήρια χρήστη, για την εκτέλεση της εντολής ως συγκεκριμένος χρήστης.

Ενότητες στο PowerShell

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

Στο PowerShell, ψευδώνυμα όπως DIR, CD, DEL και CLS αντιστοιχούν στα cmdlet Get-ChildItem, Set-Location, Remove-Item και Clear-Host, αντίστοιχα. Τα ψευδώνυμα παραμέτρων μπορούν να λειτουργήσουν με δύο τρόπους: μπορούν να χρησιμοποιήσουν ένα προκαθορισμένο ψευδώνυμο που παρέχεται από το cmdlet ή μπορούν να αποκτήσουν ψευδώνυμα εισάγοντας αρκετούς χαρακτήρες για να δημιουργήσουν μια μοναδική αντιστοίχιση μεταξύ των υποστηριζόμενων παραμέτρων του cmdlet.

Διαχείριση αρχείων και φακέλων

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

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

Το PowerShell έχει μια παρόμοια εντολή με τη μορφή του cmdlet Get-ChildItem . Το Get-ChildItem σάς επιτρέπει να δημιουργήσετε γρήγορα μια λίστα αρχείων σε έναν κατάλογο με τέτοιο τρόπο ώστε να μπορείτε να χειριστείτε τα αρχεία μέσω μιας εντολής pipe ή να αντιστοιχίσετε την έξοδο σε μια μεταβλητή.

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

Η παράμετρος -Filter είναι ένας τρόπος με τον οποίο μπορείτε να αναζητήσετε αρχεία. Από προεπιλογή, το Get-ChildItem επιστρέφει μόνο άμεσα θυγατρικά αρχεία του καταλόγου προορισμού. Αυτή η λειτουργικότητα μπορεί να επεκταθεί χρησιμοποιώντας την παράμετρο -Recurse , η οποία αναζητά αναδρομικά καταλόγους που περιέχονται στον τρέχοντα κατάλογο.

Στο PowerShell 4.0, το Get-ChildItem πρόσθεσε τη δυνατότητα περιορισμού των αποτελεσμάτων σε αρχεία ή καταλόγους χρησιμοποιώντας τον διακόπτη –File ή –Directory . Οι προηγούμενες εκδόσεις του PowerShell έπρεπε να μεταβιβάζουν τα αποτελέσματα στο Where-Object, φιλτράροντας την ιδιότητα PSIsContainer για να κάνουν αυτόν τον προσδιορισμό. Ένα παράδειγμα και των δύο τεχνικών που χρησιμοποιούνται για την επιστροφή καταλόγων που περιέχονται στο C:Users εμφανίζεται εδώ:

Get-ChildItem C:Users -Directory Get-ChildItem C:Users | Where-Object {$_.PSIsContainer –eq $true}

Για την ανίχνευση κρυφών αρχείων ή αρχείων συστήματος, πρέπει να χρησιμοποιηθεί  η συνάρτηση -Force . Η συνάρτηση Get-ChildItem στο PowerShell 4.0 και σε νεότερες εκδόσεις μπορεί επίσης να χρησιμοποιηθεί για την επιστροφή μόνο κρυφών αρχείων, αρχείων μόνο για ανάγνωση ή αρχείων συστήματος χρησιμοποιώντας τις συναρτήσεις -Hidden, -ReadOnly και –System αντίστοιχα. Παρόμοια λειτουργικότητα μπορούσε να επιτευχθεί σε προηγούμενες εκδόσεις φιλτράροντας την ιδιότητα Mode χρησιμοποιώντας τη συνάρτηση Where-Object:

Get-ChildItem C:Users | Where-Object {$_.Mode -like '*R*'}

Ελέγξτε αν υπάρχει αρχείο

Κανονικά, όταν εργαζόμαστε με αρχεία, το μόνο που χρειάζεται να γνωρίζουμε είναι αν το αρχείο υπάρχει ή αν η διαδρομή καταλόγου είναι έγκυρη. Το PowerShell παρέχει ένα cmdlet για να το κάνει αυτό με τη μορφή Test-Path, το οποίο επιστρέφει μια τιμή true ή false.

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

Αντιγραφή, μετακίνηση και διαγραφή αρχείων

Αντιγραφή-Στοιχείου: Αντιγράφει ένα ή περισσότερα αρχεία ή καταλόγους από μια τοποθεσία, που καθορίζεται από την παράμετρο -Διαδρομή, στη θέση που καθορίζεται από την επιλογή -Προορισμός.

Μετακίνηση-Στοιχείου: Μετακίνηση ενός αρχείου ή φακέλου.

Όταν αντιγράφεται ή μετακινείται μια δομή καταλόγου, θα πρέπει να χρησιμοποιείται η συνάρτηση -Recurse για να εκτελεστεί η ενέργεια στον κατάλογο και στα περιεχόμενά του από το cmdlet. Σε ορισμένες περιπτώσεις, απαιτείται επίσης η συνάρτηση -Force , όπως όταν ένα αρχείο μόνο για ανάγνωση αντικαθίσταται από μια λειτουργία αντιγραφής.

Αφαίρεση-Στοιχείου: Διαγραφή αρχείου, φακέλου.

Η εντολή Switch -Force θα πρέπει να χρησιμοποιείται όταν συναντάτε ένα αρχείο μόνο για ανάγνωση και η εντολή -Recurse θα πρέπει να χρησιμοποιείται όταν διαγράφετε έναν κατάλογο και τα περιεχόμενά του.

Χρήση των PowerShell -WhatIf και -Confirm

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

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

PowerShell Scripts = Αρχεία παρτίδας σε στεροειδή

Το ίδιο το PowerShell είναι γραμμένο στη γλώσσα προγραμματισμού .NET και βασίζεται σε μεγάλο βαθμό στο .NET Framework. Ως εκ τούτου, το PowerShell έχει σχεδιαστεί ως ένα αντικειμενοστρεφές κέλυφος και γλώσσα σεναρίων. Όλα στο PowerShell αντιμετωπίζονται ως αντικείμενα με όλες τις δυνατότητες του .NET Framework. Μια εντολή εκθέτει μια συλλογή αντικειμένων που μπορούν να χρησιμοποιηθούν χρησιμοποιώντας τις ιδιότητες και τις μεθόδους αυτού του τύπου αντικειμένου. Όταν θέλετε να μεταφέρετε την έξοδο μιας εντολής σε μια άλλη, το PowerShell στην πραγματικότητα μεταδίδει το αντικείμενο, όχι μόνο την έξοδο κειμένου της πρώτης εντολής. Αυτό δίνει στην επόμενη εντολή πλήρη πρόσβαση σε όλες τις ιδιότητες και τις μεθόδους του αντικειμένου που βρίσκονται στη διαδικασία.

Η αντιμετώπιση όλων των στοιχείων ως αντικειμένων και η δυνατότητα αποδοχής αντικειμένων μεταξύ εντολών αποτελεί μια μεγάλη αλλαγή στη θεωρία των βοηθητικών προγραμμάτων γραμμής εντολών. Ωστόσο, το PowerShell εξακολουθεί να λειτουργεί όπως ένα παραδοσιακό κέλυφος. Οι εντολές, τα σενάρια και τα εκτελέσιμα αρχεία μπορούν να πληκτρολογηθούν και να εκτελεστούν από τη γραμμή εντολών και τα αποτελέσματα εμφανίζονται ως κείμενο. Τα αρχεία .CMD και .BAT των Windows, τα VBScripts, τα JScripts και τα εκτελέσιμα αρχεία που εκτελούνται μέσα στο CMD.EXE εξακολουθούν να εκτελούνται στο PowerShell. Ωστόσο, επειδή δεν είναι αντικειμενοστραφή, δεν έχουν πλήρη πρόσβαση στα αντικείμενα που δημιουργούνται και χρησιμοποιούνται στο PowerShell. Αυτά τα παλαιότερα σενάρια και εκτελέσιμα αρχεία θα εξακολουθούν να αντιμετωπίζουν τα πάντα ως κείμενο, αλλά μπορείτε να συνδυάσετε το PowerShell με μια σειρά από άλλες τεχνολογίες. Αυτό είναι ιδιαίτερα σημαντικό εάν θέλετε να ξεκινήσετε να χρησιμοποιείτε το PowerShell με μια συλλογή από υπάρχοντα σενάρια που δεν μπορείτε να μετατρέψετε όλα ταυτόχρονα.

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

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

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

PowerShell και όλα όσα πρέπει να γνωρίζετε για αυτό το βοηθητικό πρόγραμμα
Η Get-Process παραθέτει όλες τις διεργασίες που εκτελούνται.

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

Get-Process -Name Slack

Στη συνέχεια, θα δείτε μόνο διεργασίες με το όνομα "slack":

PowerShell και όλα όσα πρέπει να γνωρίζετε για αυτό το βοηθητικό πρόγραμμα
Χρήση του Get-Process με παραμέτρους

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

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

Get-Help Get-Process

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

PowerShell και όλα όσα πρέπει να γνωρίζετε για αυτό το βοηθητικό πρόγραμμα
παράμετροι σύνταξης cmdlet

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

Σύμβολο

Ονομα

Εννοια

 

Τύμπανο

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

-

Ενωτικό

Καθορίστε το όνομα της παραμέτρου

<>

αγκύλες

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

[]

Παρενθέσεις

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

{}

αγκύλες

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

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

Get-Process [[-Name] ]

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

Get-Process -Id 

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

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

Get-Process -Id 3016

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

PowerShell και όλα όσα πρέπει να γνωρίζετε για αυτό το βοηθητικό πρόγραμμα
Χρήση της παραμέτρου Id σε cmdlets

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

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

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

PowerShell και όλα όσα πρέπει να γνωρίζετε για αυτό το βοηθητικό πρόγραμμα
Ταξινόμηση σεναρίων-Μεγάλα αρχεία PS1

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

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

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

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

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

PowerShell και όλα όσα πρέπει να γνωρίζετε για αυτό το βοηθητικό πρόγραμμα
Δημιουργία σεναρίου με το Σημειωματάριο

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

PowerShell και όλα όσα πρέπει να γνωρίζετε για αυτό το βοηθητικό πρόγραμμα
Χρήση σεναρίου PS1

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

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

Παράδειγμα σεναρίου PowerShell

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

Η εντολή DIR είναι μία από τις πιο συνηθισμένες εντολές στο CMD.EXE . Αυτή η εντολή εμφανίζει όλα τα αρχεία και τους υποκαταλόγους που περιέχονται σε έναν γονικό κατάλογο (όπως φαίνεται στο Σχήμα 1). Μαζί με το όνομα κάθε αντικειμένου, οι πληροφορίες που παρέχονται περιλαμβάνουν την ημερομηνία και ώρα της τελευταίας ενημέρωσης και το μέγεθος κάθε αρχείου. Η εντολή DIR εμφανίζει επίσης το συνδυασμένο μέγεθος όλων των αρχείων στον κατάλογο, καθώς και τον συνολικό αριθμό αρχείων και υποκαταλόγων.

PowerShell και όλα όσα πρέπει να γνωρίζετε για αυτό το βοηθητικό πρόγραμμα
Σχήμα 1

Η εκτέλεση του DIR στο PowerShell παράγει επίσης μια λίστα καταλόγου όπως στο Σχήμα 2, αλλά με ελαφρώς διαφορετικό τρόπο. Το PowerShell δεν διαθέτει εντολή DIR, αλλά έχει το Get-ChildItem, το οποίο εκτελεί την ίδια λειτουργία. Στο PowerShell, το DIR είναι ένα ψευδώνυμο για το Get-ChildItem. Δεν σκοπεύω να αναφερθώ σε ψευδώνυμα σε αυτό το άρθρο. Μπορείτε να σκεφτείτε το DIR στο PowerShell ως συντομογραφία του Get-ChildItem.

Το DIR στο PowerShell παρέχει πολλές από τις ίδιες πληροφορίες με αυτές που αναφέρθηκαν παραπάνω: μια λίστα αρχείων και φακέλων, την ημερομηνία και ώρα τελευταίας τροποποίησής τους και το μέγεθος κάθε αρχείου. Ωστόσο, δεν διαθέτει τις συνοπτικές πληροφορίες που παρέχει το DIR στο CMD.EXE: το συνολικό μέγεθος όλων των αρχείων στον φάκελο, τον συνολικό αριθμό αρχείων και τον συνολικό αριθμό υποφακέλων.

PowerShell και όλα όσα πρέπει να γνωρίζετε για αυτό το βοηθητικό πρόγραμμα
Σχήμα 2

Για το παράδειγμα, θα χρειαστεί να δημιουργήσετε ένα σενάριο PowerShell που προσομοιώνει την εντολή CMD.EXE DIR. Παρακάτω θα εξηγήσω τα πιο σημαντικά μέρη ενός σεναρίου.

DIR.PS1: Κεφαλίδα

Ένα σενάριο PowerShell αποτελείται από εντολές PowerShell σε ένα απλό αρχείο κειμένου με την επέκταση .PS1. Αντί για DIR, θα χρησιμοποιούσατε ένα αρχείο κειμένου που ονομάζεται DIR.PS1.

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

.DIR.PS1 X:Folder

Όπου X είναι το γράμμα του διαμερίσματος της μονάδας δίσκου (όπως C, D, E) και Folder είναι το όνομα του φακέλου.

Αν θέλετε να μάθετε κάποιες πληροφορίες σχετικά με το διαμέρισμα μιας μονάδας δίσκου, θα χρειαστεί να χρησιμοποιήσετε το Windows Management Instrumentation (WMI). Οι λεπτομέρειες του WMI είναι πέρα ​​από το πεδίο εφαρμογής αυτού του άρθρου, επομένως δεν θα επεκταθούμε σε αυτές εδώ. Αλλά ο κώδικας PowerShell παρακάτω είναι αρκετά εύκολος στην κατανόηση χωρίς τη χρήση WMI. Μπορείτε να δημιουργήσετε μια μεταβλητή "$filter" για χρήση με την εντολή Get-WmiObject. Αυτό το φίλτρο λέει στην εντολή Get-WmiObject ότι θέλετε μόνο πληροφορίες σχετικά με μια συγκεκριμένη μονάδα δίσκου. Τα αποτελέσματα της εντολής Get-WmiObject αποθηκεύονται σε μια μεταβλητή που ονομάζεται $volInfo. Θυμηθείτε, στο PowerShell όλα είναι ένα αντικείμενο. Το $volInfo είναι πλέον ένα αντικείμενο που επιστρέφεται από το Get-WmiObject.

$filter = "DeviceID = '" + $drive + ":'"
$volInfo = Get-WmiObject -Class Win32_LogicalDisk -Filter $filter

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

$serial = $volInfo.VolumeSerialNumber.SubString(0, 4) + "-" + `
$volInfo.VolumeSerialNumber.SubString(4, 4)

Τώρα που έχετε ένα αντικείμενο $volInfo, μπορείτε να γράψετε τις πληροφορίες κεφαλίδας DIR στην οθόνη. Εάν η μονάδα δίσκου δεν έχει όνομα, το κείμενο που γράφεται στην οθόνη θα είναι ελαφρώς διαφορετικό από ό,τι εάν η μονάδα δίσκου έχει όνομα. Μια απλή πρόταση If-Else χρησιμοποιείται για να ελέγξει εάν η ιδιότητα VolumeName είναι μια κενή συμβολοσειρά. Η πρόταση Write-Host χρησιμοποιείται για την εγγραφή κάθε γραμμής κειμένου στην οθόνη.

If ($volInfo.VolumeName -eq "") { Write-Host (" Volume in drive " + $drive + " has no label") } Else { Write-Host (" Volume in drive " + $drive + " is " + $volInfo.VolumeName) } Write-Host (" Volume Serial Number is " + $serial) Write-Host ("`n Directory of " + $args[0] + "`n")

Ο χαρακτήρας " `n " στην αρχή και στο τέλος της εντολής Write-Host χρησιμοποιείται για την εισαγωγή μιας νέας γραμμής πριν και μετά το κείμενο. Η εντολή Write-Host προσθέτει μια νέα γραμμή στο τέλος κάθε γραμμής. Έτσι, το αποτέλεσμα του " `n " είναι να δημιουργήσει μια κενή γραμμή πριν και μετά το κείμενο.

Παρατηρήσατε το "-eq" στην εντολή If; Είναι ένας τελεστής σύγκρισης ισότητας. Ο παρακάτω πίνακας σας δείχνει όλους τους τελεστές σύγκρισης:

-ισ, -ιεισ Σύγκριση κατά
-νε, -ιν Η σύγκριση δεν είναι ισότιμη
-gt, -igt Σύγκριση μεγαλύτερη από
-γε, -ιγκε Συγκρίνετε μεγαλύτερο ή ίσο με
-lt, -ilt Σύγκριση μικρότερου από
-λε, -ιλ Συγκρίνετε μικρότερο ή ίσο με

Ο χαρακτήρας -i πριν από τους τελεστές σύγκρισης υποδεικνύει ότι ο τελεστής δεν κάνει διάκριση πεζών-κεφαλαίων.

PowerShell και όλα όσα πρέπει να γνωρίζετε για αυτό το βοηθητικό πρόγραμμα
Σχήμα 3: Δεδομένα εξόδου του σεναρίου που έχετε αυτήν τη στιγμή

DIR.PS1: Λίστα αρχείων/φακέλων

Τώρα, είστε έτοιμοι να εμφανίσετε τα περιεχόμενα και τις ιδιότητες αυτού του φακέλου. Το πρώτο πράγμα που πρέπει να κάνετε είναι να καλέσετε την εντολή PowerShell Get-ChildItem για να λάβετε μια συλλογή αρχείων και να την περάσετε στο σενάριο ως παράμετρο. Η εντολή Get-ChildItem θα λάβει μια συλλογή αντικειμένων αρχείων και φακέλων, όχι μόνο τα ονόματά τους, αλλά θα μεταφέρει επίσης αυτά τα αντικείμενα απευθείας στην εντολή Sort-Object για να τα ταξινομήσει. Από προεπιλογή, η εντολή Sort-Object θα ταξινομήσει αντικείμενα με βάση την ιδιότητα Name. Επομένως, δεν χρειάζεται να καθορίσετε άλλες παραμέτρους. Η ταξινομημένη συλλογή αντικειμένων θα αποθηκευτεί στη συνέχεια σε μια μεταβλητή με όνομα $items.

$items = Get-ChildItem $args[0] | Sort-Object

Μόλις έχετε μια συλλογή από αντικείμενα αρχείων και φακέλων, πρέπει να τα επαναλάβετε και να εμφανίσετε τις κατάλληλες ιδιότητες. Η εντολή για αυτό είναι ForEach. Για κάθε αρχείο ή φάκελο, οι ιδιότητες που εμφανίζονται θα είναι η τελευταία τροποποιημένη ημερομηνία και ώρα, το όνομα, το μήκος ή το μέγεθος του αρχείου. Οι παράξενες συμβολοσειρές μέσα στις παρενθέσεις είναι κωδικοί μορφής συμβολοσειράς .NET. Χρησιμοποιούνται για την ευθυγράμμιση πεδίων αριστερά/δεξιά και τη μορφοποίηση ημερομηνιών, ωρών και αριθμών. Η κατανόηση αυτών των κωδικών μορφής συμβολοσειράς δεν είναι πολύ σημαντική, καθώς δεν είναι απαραίτητοι για τη φύση αυτού του σεναρίου.

Η εντολή If είναι το σημείο όπου καθορίζετε εάν ένα αντικείμενο είναι κατάλογος ή όχι. Εάν ο πρώτος χαρακτήρας του χαρακτηριστικού Mode είναι "d", το αντικείμενο είναι κατάλογος. Πρέπει να το ελέγξετε ξανά, επειδή ο κώδικας για τους καταλόγους είναι συχνά διαφορετικός από τον κώδικα για τα αρχεία.

Παρατηρήστε τη γραμμή $totalDirs++ μέσα στην πρόταση If. Αυτός είναι ένας μετρητής που είναι υπεύθυνος για την παρακολούθηση του αριθμού των καταλόγων. Ομοίως, υπάρχει μια μεταβλητή $totalFiles που χρησιμοποιείται για την παρακολούθηση του συνολικού μεγέθους όλων των αρχείων. Αυτές οι τιμές υπολογίζονται πάντα κατά την εκτέλεση. Αλλά εμφανίζονται μόνο όταν ολοκληρωθεί η διαδικασία καταχώρισης αρχείων.

ForEach ($i In $items)
{
$date = "{0, -20:MM/dd/yyyy hh:mm tt}" -f $i.LastWriteTime
$file = $i.Name
If ($i.Mode.SubString(0, 1) -eq "d")
{
$totalDirs++
$list = $date + " {0, -15}" -f "
" + " " + $file
}
Else
{
$totalFiles++
$size = "{0, 18:N0}" -f $i.Length
$list = $date + $size + " " + $file
}
$totalSize += $i.Length
Write-Host $list
}

PowerShell και όλα όσα πρέπει να γνωρίζετε για αυτό το βοηθητικό πρόγραμμα
Σχήμα 4: Εμφανίζει τα δεδομένα εξόδου του ενημερωμένου σεναρίου.

ΚΑΤΑΛΟΓΟΣ PS1: Υποσέλιδο

Το μόνο που απομένει να κάνετε είναι να γράψετε στην οθόνη τον συνολικό αριθμό αρχείων, τους καταλόγους, το συνολικό μέγεθος όλων των αρχείων και τον ελεύθερο χώρο σε αυτό το διαμέρισμα μονάδας δίσκου. Για να το κάνετε αυτό, θα χρειαστεί να χρησιμοποιήσετε τις μεταβλητές μετρητή ($totalFiles, $totalDirs, $totalSize) που δημιουργήθηκαν στην προηγούμενη ενότητα. Μπορείτε να μάθετε την ποσότητα του ελεύθερου χώρου από τη μεταβλητή $volInfo που δημιουργήθηκε στην αρχή του σεναρίου.

Write-Host ("{0, 16:N0}" -f $totalFiles + " File(s)" + `
"{0, 15:N0}" -f $totalSize + " bytes")
Write-Host ("{0, 16:N0}" -f $totalDirs + " Dir(s)" + `
"{0, 16:N0}" -f $volInfo.FreeSpace + " bytes free`n")

PowerShell και όλα όσα πρέπει να γνωρίζετε για αυτό το βοηθητικό πρόγραμμα
Σχήμα 5: Εμφανίζει τα πλήρη δεδομένα εξόδου του σεναρίου.

Οι προβλέψεις και οι βελτιώσεις μπορούν να είναι

Παρόλο που το σενάριο που δημιουργείτε παράγει σχεδόν πανομοιότυπο αποτέλεσμα με την εντολή CMD.EXE DIR, υπάρχουν ορισμένες προειδοποιήσεις που πρέπει να γνωρίζετε και ορισμένες βελτιώσεις που μπορούν να γίνουν.

  • Αυτό το σενάριο δεν εκτελεί κανέναν έλεγχο σφαλμάτων.
  • Εάν δεν δοθεί μια έγκυρη διαδρομή στο σενάριο, το σενάριο θα αποτύχει με ένα μήνυμα σφάλματος PowerShell.
  • Ο συνολικός αριθμός καταλόγων που δίνεται στο σενάριο είναι 2 μικρότερος από το αποτέλεσμα της εντολής CMD.EXE DIR, επειδή η εντολή Get-ChildItem δεν μετράει τους δύο καταλόγους “.” και “..” όπως στο CMD.EXE.
  • Το σκριπτ σας ταξινομεί μόνο κατά όνομα αρχείου, όνομα φακέλου και δεν παρέχει καμία άλλη ταξινόμηση κατά χαρακτηριστικά.
  • Το σκριπτ σας δεν είναι σε θέση να εμφανίσει τα περιεχόμενα του φακέλου και όλων των υποφακέλων.

Πώς το PowerShell σας βοηθά να αυτοματοποιήσετε οτιδήποτε στον υπολογιστή σας

Γράψτε απλά σενάρια PowerShell

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

Σημείωση : Εάν αντιμετωπίσετε κάποιο σφάλμα κατά την εκτέλεση του σεναρίου σχετικά με την πολιτική εκτέλεσης, ίσως χρειαστεί να επιτρέψετε προσωρινά την εκτέλεση του σεναρίου εκτελώντας την εντολή "Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass".

Μαζική μετονομασία αρχείων σε έναν φάκελο

Μπορείτε να χρησιμοποιήσετε το PowerShell για να αντιγράψετε, να μετακινήσετε και να διαγράψετε αρχεία στον υπολογιστή σας. Μπορείτε επίσης να μετονομάσετε αρχεία ενός συγκεκριμένου τύπου αρχείου μαζικά. Για παράδειγμα, δείτε πώς μπορείτε να μετονομάσετε πολλά αρχεία κειμένου αντικαθιστώντας το πρ��θεμα "oldco" με "newco" στα ονόματα αρχείων τους:

Get-ChildItem -Path "C:\CompanyFiles" -Filter "*.txt" | Rename-Item -NewName {$_.Name -replace "oldco","newco"}

Στο παραπάνω σενάριο, το ".txt" είναι το φίλτρο επέκτασης αρχείου. Μπορείτε να το τροποποιήσετε και να το ορίσετε σε .jpg, .docx, κ.λπ. για να αναζητήσετε διαφορετικούς τύπους αρχείων.

Αυτόματη εκκίνηση εφαρμογής

Αν ανοίγετε το ίδιο σύνολο εφαρμογών κάθε μέρα, μπορείτε να γράψετε ένα σενάριο PowerShell για να τις εκκινήσετε με ένα μόνο κλικ:

#Open multiple apps with a single click
Start-Process "notepad.exe"
Start-Process "calc.exe"
Start-Process "Chrome.exe"
Start-Process "slack.exe"

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

Αντιγραφή σημαντικών αρχείων σε μια θέση αντιγράφων ασφαλείας

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

#Copy MyFiles folder contents to MyFilesBackup in D:\
Copy-Item -Path "C:\Documents\MyFiles" -Destination "D:\MyFilesBackup" -Recurse

Γράψτε ένα σενάριο PowerShell για να οργανώνετε αυτόματα τα αρχεία καθημερινά

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

Ανοίξτε ένα νέο αρχείο του Σημειωματάριου και επικολλήστε το ακόλουθο σενάριο. Βεβαιωθείτε ότι έχετε αλλάξει τη διαδρομή του φακέλου προέλευσης στο σενάριο ώστε να ταιριάζει με τη διαδρομή του φακέλου Λήψεις:

# Change the source folder path below
$sourcePath = "E:\Downloads"
# Add file mapping folder names; the Others folder includes all the files that do not match file types in the other categories
$fileTypes = @{
"Documents" = @("*.docx", "*.pdf", "*.txt")
"Images" = @("*.jpg", "*.png", "*.gif")
"Media" = @("*.mp4", "*.mp3", "*.mov")
"Zip" = @("*.zip", "*.rar")
"ISO" = @("*.iso")
"Others" = @("*")
}
# Iterate through each folder type and prepare a destination folder for organizing files
foreach ($folder in $fileTypes.Keys) {
# Create the destination folder path
$destPath = Join-Path -Path $sourcePath -ChildPath $folder
# Check if the destination folder exists, and create it if it doesn't
if (!(Test-Path -Path $destPath)) {
New-Item -ItemType Directory -Path $destPath | Out-Null
}
# Move matching files from the source folder to the destination folder based on file type patterns
foreach ($pattern in $fileTypes[$folder]) {
Get-ChildItem -Path $sourcePath -Filter $pattern -File -ErrorAction SilentlyContinue | ForEach-Object {
try {
Move-Item -Path $_.FullName -Destination $destPath -Force -ErrorAction Stop
Write-Output "Moved: $($_.FullName) to $destPath"
} catch {
Write-Warning "Failed to move file: $($_.FullName). Error: $_"
}
}
}
}
Write-Output "Files organized successfully!"

Για να αποθηκεύσετε το αρχείο, κάντε κλικ στις επιλογές Αρχείο > Αποθήκευση ως και εισαγάγετε OrganizeDownloadsFolder.ps1 ως όνομα αρχείου. Στη συνέχεια, κάντε κλικ στην επιλογή Αποθήκευση ως Τύπος και επιλέξτε Όλα τα αρχεία . Κάντε διπλό κλικ στο αρχείο OrganizeDownloadsFolder.ps1 για να εκτελέσετε τη δέσμη ενεργειών.

Προγραμματισμός και εκτέλεση εργασιών

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

Ανοίξτε το PowerShell, αντιγράψτε και επικολλήστε το ακόλουθο σενάριο και πατήστε Enter . Βεβαιωθείτε ότι έχετε αντικαταστήσει το 'J:\OrganizeDownloadsFolder.ps1' με την πλήρη διαδρομή αρχείου προς το σενάριο OrganizeDownloadsFolder.ps1 .

$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File 'J:\OrganizeDownloadsFolder.ps1'"
$trigger = New-ScheduledTaskTrigger -Daily -At "5:00 PM"
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "OrganizeDownloadsFolderDaily"

Μόλις τελειώσετε, πατήστε Enter . Το σενάριο θα δημιουργήσει μια προγραμματισμένη εργασία στο Χρονοδιάγραμμα εργασιών για να εκτελεί το σενάριο οργάνωσης αρχείων κάθε μέρα στις 5:00 μ.μ. Εάν προτιμάτε διαφορετική ώρα, μπορείτε να την τροποποιήσετε στο παραπάνω σενάριο.

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

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

Tags: #System

Leave a Comment

Πώς να διορθώσετε το laptop που δεν συνδέεται στο WiFi, πώς να διορθώσετε το laptop που δεν λαμβάνει WiFi

Πώς να διορθώσετε το laptop που δεν συνδέεται στο WiFi, πώς να διορθώσετε το laptop που δεν λαμβάνει WiFi

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

Πώς μπορώ να ελέγξω αν η εκκίνηση μέσω USB έχει δημιουργηθεί με επιτυχία;

Πώς μπορώ να ελέγξω αν η εκκίνηση μέσω USB έχει δημιουργηθεί με επιτυχία;

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

6 δωρεάν εργαλεία που σας λένε ότι ο σκληρός σας δίσκος πρόκειται να παρουσιάσει βλάβη

6 δωρεάν εργαλεία που σας λένε ότι ο σκληρός σας δίσκος πρόκειται να παρουσιάσει βλάβη

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

5 Δωρεάν Εργαλεία για να Βρείτε Spyware και Adware στον Υπολογιστή σας

5 Δωρεάν Εργαλεία για να Βρείτε Spyware και Adware στον Υπολογιστή σας

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

Οδηγίες για τη διόρθωση του σφάλματος Δεν βρέθηκε διαδρομή δικτύου στα Windows

Οδηγίες για τη διόρθωση του σφάλματος Δεν βρέθηκε διαδρομή δικτύου στα Windows

Όταν, για παράδειγμα, ένας υπολογιστής, μια κινητή συσκευή ή ένας εκτυπωτής προσπαθεί να συνδεθεί σε έναν υπολογιστή με Microsoft Windows μέσω δικτύου, ενδέχεται να εμφανιστεί το μήνυμα σφάλματος "δεν βρέθηκε η διαδρομή δικτύου" — Σφάλμα 0x80070035.

Πώς να δημιουργήσετε μια μπλε οθόνη θανάτου (BSOD) για να κάνετε φάρσες στους φίλους σας

Πώς να δημιουργήσετε μια μπλε οθόνη θανάτου (BSOD) για να κάνετε φάρσες στους φίλους σας

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

Σύνοψη κοινών εντολών Run CMD

Σύνοψη κοινών εντολών Run CMD

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

Πώς να κάνετε τη γραμμή εργασιών διαφανή στα Windows 11

Πώς να κάνετε τη γραμμή εργασιών διαφανή στα Windows 11

Όπως και στα Windows 10, μπορείτε επίσης να χρησιμοποιήσετε λογισμικό τρίτων για να κάνετε τη γραμμή εργασιών των Windows 11 διαφανή.

Πώς να φτιάξετε το τέλειο, φθηνό σύστημα streaming σε μια μικροσκοπική φοιτητική εστία

Πώς να φτιάξετε το τέλειο, φθηνό σύστημα streaming σε μια μικροσκοπική φοιτητική εστία

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

Πώς να χρησιμοποιήσετε τη λειτουργία IE για να αντικαταστήσετε τον πρόσφατα διακοπτόμενο Internet Explorer

Πώς να χρησιμοποιήσετε τη λειτουργία IE για να αντικαταστήσετε τον πρόσφατα διακοπτόμενο Internet Explorer

Από τα Windows 11, ο Internet Explorer θα καταργηθεί. Σε αυτό το άρθρο, το WebTech360 θα σας καθοδηγήσει πώς να χρησιμοποιήσετε τον Internet Explorer στα Windows 11.

8 κρυφές χειρονομίες touchpad των Windows που κάνουν τη ροή εργασίας σας αστραπιαία γρήγορη

8 κρυφές χειρονομίες touchpad των Windows που κάνουν τη ροή εργασίας σας αστραπιαία γρήγορη

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

Πώς να αλλάξετε το εικονίδιο του κάδου ανακύκλωσης των Windows 11

Πώς να αλλάξετε το εικονίδιο του κάδου ανακύκλωσης των Windows 11

Η εναλλαγή του εικονιδίου του Κάδου Ανακύκλωσης στα Windows 11 απλοποιεί την προσαρμογή της ταπετσαρίας, δίνοντάς σας την εμφάνιση και την αίσθηση που ταιριάζει στο γούστο ή το θέμα σας.

Οδηγίες για τη χρήση του DISM για την επιδιόρθωση σφαλμάτων των Windows 11

Οδηγίες για τη χρήση του DISM για την επιδιόρθωση σφαλμάτων των Windows 11

Το DISM (Deployment Imaging and Servicing Management) είναι ένα σημαντικό εργαλείο μαζί με το SFC (System File Checker) για την αντιμετώπιση πολλών προβλημάτων συστήματος στα Windows 11.

9 εξαιρετικές ενσωματωμένες εφαρμογές και εργαλεία στα Windows 11 που δεν πρέπει να χάσετε

9 εξαιρετικές ενσωματωμένες εφαρμογές και εργαλεία στα Windows 11 που δεν πρέπει να χάσετε

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

Πώς να βρείτε τη μέγιστη χωρητικότητα RAM του υπολογιστή σας

Πώς να βρείτε τη μέγιστη χωρητικότητα RAM του υπολογιστή σας

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

Τι είναι το Cloudflare WARP; Πρέπει να το χρησιμοποιήσω;

Τι είναι το Cloudflare WARP; Πρέπει να το χρησιμοποιήσω;

Το WARP είναι ένα VPN που σας βοηθά να συνδεθείτε στο Διαδίκτυο χρησιμοποιώντας το DNS 1.1.1.1 του Cloudflare, βελτιστοποιώντας και ασφαλίζοντας (δηλαδή κρυπτογραφώντας) τη σύνδεσή σας. Το 1.1.1.1 είναι μία από τις ταχύτερες και πιο ασφαλείς επιλογές DNS.

Επιδιόρθωση προβλημάτων με τα πλήκτρα λειτουργιών που δεν λειτουργούν στα Windows 10

Επιδιόρθωση προβλημάτων με τα πλήκτρα λειτουργιών που δεν λειτουργούν στα Windows 10

Τα πλήκτρα λειτουργιών Fn σάς παρέχουν έναν ταχύτερο και ευκολότερο τρόπο ελέγχου ορισμένων λειτουργιών υλικού.

Πώς να αφαιρέσετε την προειδοποίηση κίτρινου τριγώνου σε μια μονάδα δίσκου C των Windows

Πώς να αφαιρέσετε την προειδοποίηση κίτρινου τριγώνου σε μια μονάδα δίσκου C των Windows

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

Πώς να διαγράψετε διπλότυπα αρχεία για να εξοικονομήσετε μνήμη στον υπολογιστή σας χρησιμοποιώντας το CCleaner

Πώς να διαγράψετε διπλότυπα αρχεία για να εξοικονομήσετε μνήμη στον υπολογιστή σας χρησιμοποιώντας το CCleaner

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

Διόρθωση σφάλματος αδυναμίας ανοίγματος της Ασφάλειας των Windows στα Windows 11

Διόρθωση σφάλματος αδυναμίας ανοίγματος της Ασφάλειας των Windows στα Windows 11

Αυτό το άρθρο θα σας βοηθήσει να διορθώσετε το σφάλμα "Η ασφάλεια των Windows δεν μπορεί να εκτελεστεί στα Windows 11".

Πώς να διορθώσετε το laptop που δεν συνδέεται στο WiFi, πώς να διορθώσετε το laptop που δεν λαμβάνει WiFi

Πώς να διορθώσετε το laptop που δεν συνδέεται στο WiFi, πώς να διορθώσετε το laptop που δεν λαμβάνει WiFi

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

Πώς μπορώ να ελέγξω αν η εκκίνηση μέσω USB έχει δημιουργηθεί με επιτυχία;

Πώς μπορώ να ελέγξω αν η εκκίνηση μέσω USB έχει δημιουργηθεί με επιτυχία;

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

6 δωρεάν εργαλεία που σας λένε ότι ο σκληρός σας δίσκος πρόκειται να παρουσιάσει βλάβη

6 δωρεάν εργαλεία που σας λένε ότι ο σκληρός σας δίσκος πρόκειται να παρουσιάσει βλάβη

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

5 Δωρεάν Εργαλεία για να Βρείτε Spyware και Adware στον Υπολογιστή σας

5 Δωρεάν Εργαλεία για να Βρείτε Spyware και Adware στον Υπολογιστή σας

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

Οδηγίες για τη διόρθωση του σφάλματος Δεν βρέθηκε διαδρομή δικτύου στα Windows

Οδηγίες για τη διόρθωση του σφάλματος Δεν βρέθηκε διαδρομή δικτύου στα Windows

Όταν, για παράδειγμα, ένας υπολογιστής, μια κινητή συσκευή ή ένας εκτυπωτής προσπαθεί να συνδεθεί σε έναν υπολογιστή με Microsoft Windows μέσω δικτύου, ενδέχεται να εμφανιστεί το μήνυμα σφάλματος "δεν βρέθηκε η διαδρομή δικτύου" — Σφάλμα 0x80070035.

Πώς να δημιουργήσετε μια μπλε οθόνη θανάτου (BSOD) για να κάνετε φάρσες στους φίλους σας

Πώς να δημιουργήσετε μια μπλε οθόνη θανάτου (BSOD) για να κάνετε φάρσες στους φίλους σας

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

Σύνοψη κοινών εντολών Run CMD

Σύνοψη κοινών εντολών Run CMD

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

Πώς να κάνετε τη γραμμή εργασιών διαφανή στα Windows 11

Πώς να κάνετε τη γραμμή εργασιών διαφανή στα Windows 11

Όπως και στα Windows 10, μπορείτε επίσης να χρησιμοποιήσετε λογισμικό τρίτων για να κάνετε τη γραμμή εργασιών των Windows 11 διαφανή.

Πώς να φτιάξετε το τέλειο, φθηνό σύστημα streaming σε μια μικροσκοπική φοιτητική εστία

Πώς να φτιάξετε το τέλειο, φθηνό σύστημα streaming σε μια μικροσκοπική φοιτητική εστία

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

Πώς να χρησιμοποιήσετε τη λειτουργία IE για να αντικαταστήσετε τον πρόσφατα διακοπτόμενο Internet Explorer

Πώς να χρησιμοποιήσετε τη λειτουργία IE για να αντικαταστήσετε τον πρόσφατα διακοπτόμενο Internet Explorer

Από τα Windows 11, ο Internet Explorer θα καταργηθεί. Σε αυτό το άρθρο, το WebTech360 θα σας καθοδηγήσει πώς να χρησιμοποιήσετε τον Internet Explorer στα Windows 11.