Out-Null ή καταστολή εξόδου στο Windows PowerShell. Εμφάνιση ειδοποιήσεων στους χρήστες που χρησιμοποιούν το PowerShell Εμφάνιση πληροφοριών σχετικά με την επιτυχή εκτέλεση μιας εντολής powerhell

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

Το PowerShell προσφέρει τόσο μια καθαρή διεπαφή κονσόλας όσο και ένα πλήρες περιβάλλον ανάπτυξης PowerShell ISE(Integrated Scripting Environment) για σενάρια. Για να ξεκινήσετε τη διεπαφή της γραμμής εντολών, εισαγάγετε το powerhell στο μενού Εκτέλεση (WinKey + R). Το PowerShell ISE ξεκινά χρησιμοποιώντας την εντολή "PowerShell ISE" στο ίδιο μενού.

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

Συγγραφή και εκτέλεση σεναρίων

Τα σενάρια αποθηκεύονται ως αρχεία με την επέκταση .ps1. Παρόλο που το PowerShell είναι εδώ και πολύ καιρό εγγενές μέρος των Windows, δεν μπορείτε να εκτελέσετε τα σενάρια του με ένα απλό διπλό κλικ. Για να το κάνετε αυτό, κάντε δεξί κλικ στο σενάριο και επιλέξτε "Εκτέλεση στο PowerShell".

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

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

Για να ξεκινήσετε, πρέπει να αλλάξετε τη ρύθμιση πολιτικής εκκίνησης σε RemoteSigned χρησιμοποιώντας την εντολή Set-ExecutionPolicy:

Cmdlets

Τα Cmdlets είναι εντολές με προκαθορισμένη λειτουργία, παρόμοιες με τις δηλώσεις υπό όρους στις γλώσσες προγραμματισμού. Έχουν πολλά βασικά χαρακτηριστικά:

  • υπάρχουν cmdlets συστήματος, χρήστη και προαιρετικά.
  • το αποτέλεσμα της εκτέλεσης του cmdlet θα είναι ένα αντικείμενο ή ένας πίνακας αντικειμένων.
  • cmdlets μπορούν να επεξεργαστούν δεδομένα και να τα μεταφέρουν σε άλλα cmdlets.
  • Τα cmdlets δεν έχουν διάκριση πεζών-κεφαλαίων, οπότε δεν υπάρχει διαφορά μεταξύ Get-ADUser, get-aduser και gEt-AdUsEr.
  • ο χαρακτήρας χρησιμοποιείται ως διαχωριστής. ...

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

  • Get-Process- εμφανίζει τις τρέχουσες διαδικασίες που εκτελούνται στον υπολογιστή.
  • Get-Service- εμφανίζει μια λίστα υπηρεσιών και την κατάστασή τους.
  • Λήψη περιεχομένου- εμφάνιση των περιεχομένων του καθορισμένου αρχείου, για παράδειγμα Get-Content C: \ Windows \ System32 \ drivers \ etc \ hosts.

Εάν είναι απαραίτητο, μια λίστα με όλα τα διαθέσιμα cmdlets μπορεί να εμφανιστεί χρησιμοποιώντας την Κατηγορία Get-Help:

Μπορείτε επίσης να δημιουργήσετε τα δικά σας cmdlets.

Παράμετροι

Κάθε cmdlet έχει πολλές παραμέτρους που καθορίζουν τον τρόπο λειτουργίας του. Το PowerShell ISE προτείνει αυτόματα όλες τις διαθέσιμες επιλογές, εμφανίζοντας τον τύπο τους. Για παράδειγμα, το Get-Service-NameW * παραθέτει τις υπηρεσίες που ξεκινούν με W. Εάν ξεχάσετε ποιες παραμέτρους έχει το εισαγόμενο cmdlet, χρησιμοποιήστε το Get-Member. Για παράδειγμα, Get-Process | Get-Member:

Εάν δεν βρίσκετε αυτό που ψάχνετε ή δεν είστε σίγουροι πώς να ορίσετε σωστά τις παραμέτρους, μπορείτε ακόμη και να ζητήσετε παραδείγματα χρησιμοποιώντας την παράμετρο -Παράδειγμα:

Ορισμένα cmdlets μπορούν επίσης να κληθούν χρησιμοποιώντας ψευδώνυμα, για παράδειγμα, αντί για Get-Help, μπορείτε απλά να γράψετε Βοήθεια.

Όταν γράφετε μεγάλα σενάρια ή συνεργατική ανάπτυξη, μπορείτε να χρησιμοποιήσετε σχόλια. Κάθε σχόλιο ξεκινά με έναν χαρακτήρα # και το μπλοκ σχολίων οριοθετείται από συνδυασμούς χαρακτήρων<# и #>στην αρχή και στο τέλος, αντίστοιχα.

Μετακομιστής

PowerShellΕπιτρέπει την ανταλλαγή δεδομένων μεταξύ cmdlets χρησιμοποιώντας έναν αγωγό. Για παράδειγμα:

  • GetService | SortObject -property Status - ταξινομήστε τις τρέχουσες υπηρεσίες κατά κατάσταση.
  • "Γειά σου Κόσμε!" | Out -File C: \ ps \ test.txt - εγγραφή κειμένου σε αρχείο.

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

Get-Service | WHERE ($ _. Κατάσταση -ισοδύναμο "Τρέξιμο") | ΕΠΙΛΟΓΗ ονόματος εμφάνισης

συμπέρασμα

Αυτό το σεμινάριο έδωσε στους αρχάριους μια ιδέα για το τι είναι το PowerShell. Εξετάσαμε επίσης τις επιλογές για την αλλαγή της πολιτικής εκτέλεσης σεναρίου, τι είναι το cmdlet, πώς επικοινωνούν χρησιμοποιώντας τον αγωγό και πώς να αποκτήσουν τις ιδιότητες του επιθυμητού αντικειμένου. Θυμηθείτε, μπορείτε να χρησιμοποιήσετε το cmdlet Get-Help σε περίπτωση δυσκολίας.

Windows PowerShellείναι ένα ισχυρό εργαλείο και μπορεί να κάνει σχεδόν οτιδήποτε θέλει ένα άτομο στον υπολογιστή του. Αλλά το μόνο πρόβλημα είναι ότι είναι ένα εργαλείο γραμμής εντολών και δεν έχει GUI. Ωστόσο, μπορεί να είναι χρήσιμο όταν η διεπαφή που βασίζεται σε GUI δεν λειτουργεί ή δεν ανταποκρίνεται. Δυστυχώς, το κύριο είναι το γεγονός ότι ο μέσος χρήστης δεν έχει αρκετή γνώση για τη χρήση του PowerShell στο έπακρο. Αλλά σήμερα θα προσπαθήσουμε να συζητήσουμε τις 10 καλύτερες εντολές PowerShell που μπορούν να βοηθήσουν έναν χρήστη να κάνει περισσότερα στα Windows 10.

Εντολές PowerShell για να βοηθήσετε τον χρήστη να κάνει περισσότερα

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

Θα εξετάσουμε cmdletsπου μπορεί να κάνει τα εξής:

  1. Ξεκινήστε την εφαρμογή UWP.
  2. Λάβετε βοήθεια για οποιοδήποτε cmdlet.
  3. Λάβετε παρόμοιες εντολές.
  4. Βρείτε ένα συγκεκριμένο αρχείο.
  5. Διαβάστε το περιεχόμενο του αρχείου.
  6. Βρείτε πληροφορίες για όλες τις υπηρεσίες στον υπολογιστή σας.
  7. Βρείτε πληροφορίες για όλες τις διαδικασίες στον υπολογιστή.
  8. Εγκατάσταση πολιτικής εκτέλεσης.
  9. Αντιγράψτε το αρχείο ή τον κατάλογο.
  10. Διαγράψτε ένα αρχείο ή έναν κατάλογο.

1] Εκκινήστε την εφαρμογή UWP

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

Έναρξη-Διαδικασία "ms-settings:"

Η εντολή είναι απλώς να ξεκινήσει η εφαρμογή Ρυθμίσεις UWP των Windows. Μπορείτε να διαβάσετε περισσότερα για άλλα URI για άλλες εφαρμογές UWP εδώ στο microsoft.com.

2] Λάβετε βοήθεια σε οποιοδήποτε cmdlet

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

Λήψη-Βοήθεια Λήψη Βοήθειας -Πλήρης Λήψη-Βοήθεια -Παράδειγμα Λήψη-Βοήθεια *

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

3] Λάβετε παρόμοιες εντολές

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

Get -Command -Name Get -Command -CommandType

Το πρώτο cmdlet θα σας βοηθήσει να βρείτε ένα cmdlet με μια συγκεκριμένη φράση και το δεύτερο θα σας βοηθήσει να φιλτράρετε cmdlets που εκτελούν μια συγκεκριμένη λειτουργία.

4] Αναζητήστε ένα συγκεκριμένο αρχείο

Εάν πρέπει να βρείτε ένα συγκεκριμένο αρχείο ή κατάλογο σε μια συγκεκριμένη τοποθεσία, μπορείτε να χρησιμοποιήσετε το cmdlet Get-Item... Μπορείτε να το χρησιμοποιήσετε όπως

Get-Item

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

5] Διαβάστε το περιεχόμενο του αρχείου

Λήψη περιεχομένου

6] Διαβάστε πληροφορίες για όλες τις υπηρεσίες στον υπολογιστή σας.

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

Έναρξη-Υπηρεσία Διακοπή-Υπηρεσία Αναστολή-Συνέχιση υπηρεσίας-Υπηρεσία επανεκκίνησης υπηρεσίας

7] Διαβάστε πληροφορίες για όλες τις διαδικασίες στον υπολογιστή

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

Ξεκινήστε την υπηρεσία αναμονής διαδικασίας διακοπής διαδικασίας

8] Διαμόρφωση της πολιτικής εκτέλεσης

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

Σετ-ΕκτέλεσηΠολιτική Απεριόριστη Σετ-ΕκτέλεσηΠολιτική Όλα υπογεγραμμένα Σετ-ΕκτέλεσηΠολιτική Απομακρυσμένη υπογραφή Σετ-ΕκτέλεσηΠολιτική περιορισμένη

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

9] Αντιγραφή αρχείου ή καταλόγου

Ο χρήστης μπορεί να χρησιμοποιήσει το cmdlet Αντιγραφή-Στοιχείο

Αντιγραφή -Στοιχείο "E: \ TWCTest.txt" -Προορισμός "D: \"

10] Διαγραφή αρχείου ή καταλόγου

Παρόμοια με το cmdlet Copy-Item, ο χρήστης μπορεί να χρησιμοποιήσει το cmdlet Αντιγραφή-Στοιχείογια αντιγραφή ενός αρχείου ή καταλόγου σε άλλο προορισμό. Η σύνταξη για αυτό το cmdlet είναι

Κατάργηση στοιχείου "E: \ TWCTest.txt"

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

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

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

Μορφοποίηση πληροφοριών εξόδου

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

Στο PowerShell, μόνο τέσσερις προσαρμοσμένες μορφές cmdlets μορφοποιούν την έξοδο (Πίνακας 17.3). Αυτό διευκολύνει τη μάθηση επειδή δεν χρειάζεται να θυμάστε τα εργαλεία μορφοποίησης και τις επιλογές για άλλες εντολές (τα άλλα cmdlets δεν μορφοποιούν την έξοδο).

Πίνακας 17.3. Cmdlets PowerShell για μορφοποίηση της εξόδου
Cmdlet Περιγραφή
Μορφή-Πίνακας Διαμορφώνει την έξοδο μιας εντολής ως πίνακα του οποίου οι στήλες περιέχουν ιδιότητες αντικειμένου (μπορούν επίσης να προστεθούν υπολογιζόμενες στήλες). Υποστηρίζει τη δυνατότητα ομαδοποίησης των δεδομένων εξόδου
Format-List Η έξοδος διαμορφώνεται ως μια λίστα ιδιοτήτων, με κάθε ιδιότητα να εμφανίζεται σε μια νέα γραμμή. Υποστηρίζει τη δυνατότητα ομαδοποίησης των δεδομένων εξόδου
Μορφή-Προσαρμοσμένο Μια προσαρμοσμένη προβολή χρησιμοποιείται για τη μορφοποίηση της εξόδου
Format-Wide Διαμορφώνει αντικείμενα ως ευρύ πίνακα που δείχνει μόνο μία ιδιότητα κάθε αντικειμένου

Όπως σημειώθηκε παραπάνω, εάν κανένα από τα μορφότυπα cmdlets δεν έχει καθοριστεί ρητά, τότε χρησιμοποιείται ο προεπιλεγμένος μορφοποιητής, ο οποίος καθορίζεται από τον τύπο των δεδομένων που εμφανίζονται. Για παράδειγμα, όταν εκτελείτε το cmdlet Get-Service, η προεπιλεγμένη έξοδος είναι ως πίνακας με τρεις στήλες (Κατάσταση, Όνομα και Όνομα εμφάνισης):

PS C: \> Όνομα κατάστασης Get-Service Όνομα εμφάνισης ------ ---- ----------- Διακοπή ειδοποίησης Εκτέλεση υπηρεσίας ALG Application Layer Gateway Διακοπή AppMgmt Διαχείριση εφαρμογών Διακοπή aspnet_state ASP.NET κατάσταση Service Running Ati HotKey Poller Ati HotKey Poller Running AudioSrv Windows Audio Running BITS Background Intelligent Service ... Running Browser Computer Browser Stopped cisvc Indexing Service Stopped ClipSrv Clipboard Server Stopped clr_optimizatio ... .NET Runtime Optimization Service v ... Stopped Application COM + Εκτέλεση κρυπτογραφικών υπηρεσιών CryptSvc Εκτέλεση DcomLaunch Εκκίνηση διαδικασιών διακομιστή DCOM Εκτέλεση Dhcp DHCP Client ...

Για να αλλάξετε τη μορφή της εξόδου, τοποθετήστε το σωστά στο κατάλληλο format cmdlet. Για παράδειγμα, η ακόλουθη εντολή θα απαριθμήσει τις υπηρεσίες χρησιμοποιώντας το cmdlet Format-List:

PS C: \> Get-Service | Όνομα μορφής-λίστας: Alerter DisplayName: Alerter Status: Stopped DependentServices: () ServicesDependedOn: (LanmanWorkstation) CanPauseAndContinue: False CanShutdown: False CanStop: False ServiceType: Win32ShareProcess Name: ALG DisplayName: : False CanShutdown: False CanStop: True ServiceType: Win32OwnProcess. ... ...

Όπως μπορούμε να δούμε, η χρήση της μορφής λίστας εμφανίζει περισσότερες πληροφορίες για κάθε υπηρεσία από τη μορφή πίνακα (αντί για τρεις στήλες δεδομένων για κάθε υπηρεσία, η μορφή λίστας εμφανίζει εννέα σειρές δεδομένων). Ωστόσο, αυτό δεν σημαίνει ότι το cmdlet Format-List ανακτά επιπλέον πληροφορίες σχετικά με τις υπηρεσίες. Αυτά τα δεδομένα περιέχονται στα αντικείμενα που επιστρέφονται από το cmdlet Get-Service, αλλά το προεπιλεγμένο cmdlet Μορφοποίηση πίνακα τα απορρίπτει επειδή δεν μπορεί να εμφανίσει περισσότερες από τρεις στήλες.

Όταν μορφοποιείτε την έξοδο χρησιμοποιώντας τα cmdlets Format-List και Format-Table, μπορείτε να καθορίσετε τα ονόματα της ιδιότητας αντικειμένου που θέλετε να εμφανίσετε (θυμηθείτε ότι μπορείτε να προβάλετε τη λίστα των διαθέσιμων ιδιοτήτων σε ένα αντικείμενο χρησιμοποιώντας το cmdlet Get-Member συζητήθηκε νωρίτερα). Για παράδειγμα:

PS C: \> Get-Service | Όνομα λίστας μορφοποίησης, κατάσταση, όνομα CanStop: Κατάσταση ειδοποίησης: Διακοπή CanStop: Λάθος όνομα: Κατάσταση ALG: Εκτέλεση CanStop: Αληθινό όνομα: AppMgmt Κατάσταση: Διακοπή CanStop: Λάθος. ... ...

Μπορείτε να εμφανίσετε όλες τις ιδιότητες των αντικειμένων χρησιμοποιώντας την παράμετρο *, για παράδειγμα:

PS C: \> Get-Service | Μορφή-πίνακας *

Ανακατεύθυνση πληροφοριών εξόδου

Το PowerShell παρέχει αρκετά cmdlet που μπορείτε να χρησιμοποιήσετε για να ελέγξετε την έξοδο των δεδομένων σας. Αυτά τα cmdlets ξεκινούν με Out και μπορείτε να δείτε μια λίστα όπως αυτή:

PS C: \> Get-Command out- * | Μορφή-Όνομα ονόματος πίνακα ---- Out-Default Out-File Out-Host Out-Null Out-Printer Out-String

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

Η παράμετρος σελιδοποίησης του cmdlet Out-Host, όπως η περισσότερη εντολή του διερμηνέα Cmd.exe, σας επιτρέπει να οργανώσετε την έξοδο πληροφοριών ανά σελίδα, για παράδειγμα:

Get-Help Get-Process –Full | Out -Host -Σελίδα

Αποθήκευση δεδομένων σε ένα αρχείο

Το cmdlet Out-File σάς επιτρέπει να διοχετεύετε την έξοδο σε ένα αρχείο κειμένου αντί για ένα παράθυρο κονσόλας. Ένα παρόμοιο πρόβλημα επιλύεται από τον τελεστή ανακατεύθυνσης (>), ωστόσο, το cmdlet Out-File έχει πολλές πρόσθετες παραμέτρους που σας επιτρέπουν να ελέγχετε πιο ευέλικτα την έξοδο: ορίστε τον τύπο κωδικοποίησης αρχείου (την παράμετρο κωδικοποίησης), ρυθμίστε το μήκος του γραμμές εξόδου σε χαρακτήρες (η παράμετρος Πλάτος), επιλέξτε τη λειτουργία αντικατάστασης του αρχείου (Προσθήκη, επιλογές noClobber). Για παράδειγμα, η ακόλουθη εντολή θα στείλει πληροφορίες σχετικά με τις υπηρεσίες που είναι καταχωρημένες στον υπολογιστή στο αρχείο C: \ service.txt και αυτό το αρχείο θα γραφτεί σε μορφή ASCII.

Αυτό το άρθρο είναι μια έκδοση κειμένου του σεμιναρίου από το δωρεάν σεμινάριο βίντεο για το PowerShell και τα βασικά στοιχεία του Active Directory (χρησιμοποιήστε τη μυστική λέξη "blog" για πλήρη πρόσβαση).

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

Κωδικοποίηση με PowerShell

Αρχικά μπορεί να φαίνεται σαν ένα δύσκολο έργο να ξεκινήσετε να εργάζεστε με το PowerShell, ειδικά αν με τα χρόνια έχετε συνηθίσει να εργάζεστε με τη γραμμή εντολών cmd.exe και τα λεγόμενα "αρχεία δέσμης" (αρχεία με .bat και. επεκτάσεις cmd). Σε αυτό το άρθρο, γραμμένο με βάση τα υλικά του 2ου μαθήματος του μαθήματος βίντεο, θα σας πούμε πώς και γιατί πρέπει να ενημερώσετε τις δεξιότητές σας στην εργασία με το PowerShell, καθώς και να αναλύσουμε τα βασικά για την εκκίνηση του PowerShell editor, master η αυτόματη συμπλήρωση εντολών και πώς να ενημερώνεστε σε κάθε δύσκολη κατάσταση. βοήθεια και παραδείγματα.

Εκτέλεση εντολών

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

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

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

Όλα τα κοινά χρησιμοποιούμενα βοηθητικά προγράμματα όπως το ping, το ipconfig, το nslookup κ.λπ. θα λειτουργούν ακριβώς όπως περιμένετε.

Πώς να βρείτε εντολές PowerShell

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

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

Αυτόματη συμπλήρωση εντολών πατώντας Tab

Δεν χρειάζεται να απομνημονεύσετε διαφορετικές εντολές ή την ακριβή ορθογραφία της εντολής. Καντράν

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

Get-Command

Παρόλο που η ολοκλήρωση της καρτέλας λειτουργεί τέλεια, τι συμβαίνει εάν δεν γνωρίζετε το σωστό όνομα εντολής για την εντολή που θέλετε; Σε αυτήν την περίπτωση, μπορείτε να χρησιμοποιήσετε την εντολή για να βρείτε άλλες διαθέσιμες εντολές: Get-Command.

Όταν ψάχνετε για ένα όνομα εντολής, είναι σημαντικό να έχετε κατά νου ότι υπάρχει μια σύνταξη για αυτούς: Verb-Noun. Συνήθως Ρήματα όπως - Λήψη, Ρύθμιση, Προσθήκη, Εκκαθάριση, Ανάγνωση και εγγραφή και Ουσιαστικά - αρχεία, διακομιστές ή άλλες οντότητες στο δίκτυο και τις εφαρμογές σας ...

Get-CommandΕίναι ένα εργαλείο για την εύρεση και εκμάθηση των εντολών που είναι διαθέσιμες στον υπολογιστή σας.

Σύνταξη εντολών στο PowerShell

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

Αν και, αν το κοιτάξετε, η παραδοσιακή γραμμή εντολών στα Windows δεν έχει πάει πολύ μακριά από αυτό. Ας δούμε το γενικό πρόβλημα της εύρεσης όλων των αρχείων σε έναν κατάλογο των οποίων τα ονόματα αρχίζουν με "foo".

CMD: FOR / D / R% G IN ("Foo *") DO @ECHO% G
FOR και DO υποδεικνύουν ότι πρόκειται για βρόχο.
Η σημαία / D υποδεικνύει ότι αυτός είναι ένας βρόχος σε όλους τους φακέλους
Η σημαία / R υποδεικνύει ότι περιλαμβάνει όλα τα αρχεία και τους φακέλους, συμπεριλαμβανομένων των υποκαταλόγων
Το μοτίβο αναζήτησης που καθορίζει το σύνολο των αρχείων που μας ενδιαφέρουν υποδηλώνεται με "IN"
Το ECHO υποδεικνύει ότι το σενάριο πρέπει να εμφανίζει το αποτέλεσμα κάθε κύκλου και τέλος
Το % G είναι μια "αναγκαστική παράμετρος" και επιλέχθηκε επειδή οι προγραμματιστές της Microsoft είχαν χρησιμοποιήσει προηγουμένως τα γράμματα A, D, F, N, P, S, T και X. Επομένως, είναι καλή πρακτική να ξεκινήσετε με το G. Προς το. Αυτό σας δίνει το μεγαλύτερο σύνολο αχρησιμοποίητων γραμμάτων για τις επιστρεφόμενες μορφές μεταβλητής διαδρομής (G, H, I, J, K, L, M) - με άλλα λόγια, πρόκειται για μια ζωή.

Συγκρίνετε τώρα το ισοδύναμο PowerShell:

PowerShell: Get -ChildItem -Path C: \ -Φίλτρο ‘Foo *’
Το αποτέλεσμα είναι το ίδιο, αλλά ακόμη και με ένα τόσο ασήμαντο παράδειγμα, θα είναι πολύ πιο εύκολο να καταλάβουμε τι συμβαίνει. Είναι αμέσως προφανές τι κάνει κάθε στοιχείο της ομάδας και πώς μπορεί να αλλάξει. Λοιπόν, ίσως το μπαλαντέρ «*» χρησιμοποιείται και στα δύο παραδείγματα, αλλά νομίζω ότι γνωρίζετε ήδη πολύ καλά τι σημαίνει - ότι όλα τα στοιχεία πρέπει να ξεκινούν με το «Foo» και να τελειώνουν με κάτι άλλο.

Νιώθετε ότι η διάθεσή σας βελτιώνεται σταδιακά; Τώρα, τι γίνεται αν θέλετε να μάθετε πώς να επιλέγετε μόνο αρχεία (όχι φακέλους) σε μια διαδρομή; Μπορείτε να ανατρέξετε στα εγχειρίδια ή μπορεί να σας βοηθήσει ο καλύτερος φίλος σας Google ή μπορείτε να προσπαθήσετε να το καταλάβετε από τη γραμμή εντολών; Μικρή συμβουλή: εάν βρίσκεστε στο PowerShell, πληκτρολογήστε "-" και πατήστε Tab, περάστε από τις σημαίες μέχρι να εμφανιστεί η προφανής λύση.

Μία μακρά γραμμή έναντι αντικειμένου

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

Ενώ η έξοδος από την εντολή Ping είναι χρήσιμη (και μπορείτε επίσης να χρησιμοποιήσετε το ping στην κονσόλα PowerShell), τελικά είναι απλώς μια μεγάλη και μεγάλη συμβολοσειρά - μια σειρά από γράμματα και αριθμούς με ενδιάμεσα διαλείμματα.

Το PowerShell έχει μια εντολή παρόμοια με το Ping, αλλά επιστρέφει δεδομένα με δομημένο τρόπο. Αυτή είναι η εντολή Test-Connection.

Παρακάτω είναι η έξοδος αυτής της εντολής για την ανταλλαγή πακέτων με τον διακομιστή "DC" σε μια εντελώς διαφορετική εντελώς δομημένη μορφή:

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

Ενσωματωμένη βοήθεια

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

1. Ενημερωμένη τεκμηρίωση
2. Αφθονία παραδειγμάτων

Βοήθεια με το Cmdlets

Στην πράξη, θα πρέπει να συνδυάσετε την εντολή Get-Command (για να βρείτε τι να χρησιμοποιήσετε) και στη συνέχεια να χρησιμοποιήσετε το Get-Help για να μάθετε πώς να χρησιμοποιείτε τη συγκεκριμένη εντολή.

Ένα πρακτικό παράδειγμα για το πώς να το κάνετε αυτό: Ας υποθέσουμε ότι πρέπει να καθορίσετε όλες τις λειτουργικές υπηρεσίες των Windows σε έναν υπολογιστή.

Αρχικά, μπορείτε να αναζητήσετε εντολές για αλληλεπίδραση με υπηρεσίες:

Υπηρεσία Get-Command
Που θα σας πει αμέσως ότι είστε στο σωστό δρόμο. Καθώς σκέφτεστε να επιστρέψετε στην τυπική σύνταξη της εντολής PowerShell Verb-Noun, θα θέλατε να μάθετε πώς να χρησιμοποιείτε σωστά την εντολή "Get-Service".

Τεκμηρίωση της Microsoft για την εντολή Get-Service
Για να το κάνετε αυτό, χρησιμοποιήστε την εντολή "Λάβετε βοήθεια". Ξεκινήστε να πληκτρολογείτε
"Get -Help -" και, στη συνέχεια, πατήστε το πλήκτρο Tab
Θα ανακαλύψετε γρήγορα τις διαθέσιμες επιλογές, με πιο προφανή το "Όνομα", οπότε αξίζει να δοκιμάσετε:

Get-Help -Name Get-Service
Θα λάβετε αμέσως την πλήρη σύνταξη εντολών (και ποιες επιλογές μπορείτε να συμπεριλάβετε ή να εξαιρέσετε με βάση τα φίλτρα).

Εάν θέλετε να εξερευνήσετε την εντολή βαθύτερα και να την αναλύσετε σε κάθε παράμετρο, πληκτρολογήστε:

Get -Help -Name Get -Service -Όνομα παραμέτρου

Βοήθεια με παραδείγματα PowerShell

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

Πληκτρολογώντας -παραδείγματα ή προσθέτοντας τη σημαία -detail στην εντολή Get -Help, θα εμφανιστεί ένα σύνολο παραδειγμάτων για τη χρήση της εντολής.
Για παράδειγμα, εδώ είναι η έξοδος για την εντολή:

Get -Help -Name Get -Service -Παράδειγμα

Μείνοντας ενήμεροι

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

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

Ενημέρωση-βοήθεια
και θα ξεκινήσει η διαδικασία λήψης της ενημερωμένης βοήθειας με βάση τα συμφραζόμενα.

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

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

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

Ο παρακάτω κώδικας θα εμφανίσει ένα κανονικό πλαίσιο κειμένου με το απαιτούμενο κείμενο και ένα κουμπί OK.

$ wshell = New -Object -ComObject Wscript.Shell
$ Output = $ wshell.Popup ("Το σενάριο αναφοράς ολοκληρώθηκε")

Μπορείτε να προσαρμόσετε την εμφάνιση του πλαισίου modal modal χρησιμοποιώντας διάφορες ιδιότητες της μεθόδου Popup. Μεταξύ άλλων, μπορείτε να επιστρέψετε στο σενάριο τα αποτελέσματα της απάντησης του χρήστη στην ερώτηση (Ναι / Όχι).

$ Output = $ wshell.Popup ("Το σενάριο δημιουργίας αναφορών ολοκληρώθηκε! Θέλετε να το εμφανίσετε;", 0, "Η αναφορά είναι έτοιμη", 4 + 32)

Γενική σύνταξη και παράμετροι για την αναδυόμενη μέθοδο:

Αναδυόμενο παράθυρο ( ,,,<Type>) </b></p><p>Παράμετροι:</p><ul><li><Text>- γραμμή, κείμενο του μηνύματος.</li><li><SecondsToWait>- προαιρετικό, αριθμός. Ο αριθμός των δευτερολέπτων μετά τα οποία το παράθυρο θα κλείσει αυτόματα.</li><li><Title>- προαιρετικό, συμβολοσειρά. Το κείμενο του τίτλου του πλαισίου μηνύματος.</li><li><Type>- προαιρετικό, αριθμός. Ο συνδυασμός σημαιών καθορίζει τον τύπο των κουμπιών και του εικονιδίου. Πιθανές τιμές σημαίας: <ul><li>0 - κουμπί OK.</li><li>1 - Κουμπιά ΟΚ και Ακύρωση.</li><li>2 - κουμπιά Διακοπή, Επανάληψη, Παράλειψη.</li><li>3 - Ναι, Όχι, Ακύρωση κουμπιών.</li><li>4 - Ναι και Όχι κουμπιά.</li><li>5 - Κουμπιά επανάληψης και ακύρωσης.</li><li>16 - Εικονίδιο διακοπής.</li><li>32 - Εικονίδιο ερώτησης.</li><li>48 - θαυμαστικό εικονίδιο.</li><li>64 - Εικονίδιο πληροφοριών.</li> </ul></li> </ul><p>Περιγραφή: Επιστρέφει μια ακέραιη τιμή που μπορεί να χρησιμοποιηθεί για να μάθετε σε ποιο κουμπί έκανε κλικ ο χρήστης. Πιθανές τιμές:</p><ul><li>-1 - τάιμ άουτ.</li><li>1 - Κουμπί OK.</li><li>2 - Κουμπί ακύρωσης.</li><li>3 - Κουμπί διακοπής.</li><li>4 - Κουμπί επανάληψης.</li><li>5 - το κουμπί Παράλειψη.</li><li>6 - Κουμπί Ναι.</li><li>7 - κουμπί αριθ.</li> </ul><p>Πιο ελκυστικά και ευχάριστα στο μάτι, τα μπαλόνια μπορούν να εμφανιστούν στα Windows 7, 8.1 και 10 μέσω του API Windows Forms. Ο ακόλουθος κώδικας PowerShell θα εμφανίσει ένα αναδυόμενο μήνυμα δίπλα στη γραμμή ειδοποιήσεων των Windows 10, το οποίο θα εξαφανιστεί αυτόματα μετά από 10 δευτερόλεπτα.</p><p>Add -Type -AssemblyName System.Windows.Forms <br>$ global: balmsg = New-Object System.Windows.Forms.NotifyIcon <br>$ path = (Get -Process -id $ pid). Διαδρομή <br>$ balmsg.Icon = :: ExtractAssociatedIcon ($ path) <br>$ balmsg.BalloonTipIcon = :: Προειδοποίηση <br>$ balmsg.BalloonTipText = "Αυτό είναι το αναδυόμενο κείμενο μηνύματος για χρήστη των Windows 10." <br>$ balmsg.BalloonTipTitle = "(! LANG: Προειδοποίηση $ Env: USERNAME"!} <br>$ balmsg.Visible = $ true <br>$ balmsg.ShowBalloonTip (10000)</p><p><img src='https://i1.wp.com/winitpro.ru/wp-content/uploads/2018/10/vsplyvayushee-uvedomlenie-v-powershell.png' width="100%" loading=lazy loading=lazy></p><p>Επιπλέον, μπορείτε να χρησιμοποιήσετε τη ξεχωριστή μονάδα PowerShell BurntToast από τη συλλογή PowerShell για να δημιουργήσετε πολύχρωμα αναδυόμενα μηνύματα στα Windows 10 (PowerShell 5.0+).</p><p>Η ενότητα εγκαθίσταται από το διαδικτυακό αποθετήριο χρησιμοποιώντας: <br>Install -Module -Name BurntToast</p><p>Τώρα, για παράδειγμα, μπορείτε να προσθέσετε μια πολύχρωμη ειδοποίηση στην προηγούμενη:</p><p>New-BurntToastNotification -Text "Αποσύνδεση από το δίκτυο Wi-Fi", "Αποσυνδεθήκατε από το δίκτυο Wi-Fi επειδή η συσκευή σας ήταν συνδεδεμένη σε σύνδεση Ethernet υψηλής ταχύτητας." -AppLogo C: \ PS \ changenetwork.png</p><p>Έτσι, τώρα ξέρετε πώς να εμφανίζετε τις ειδοποιήσεις χρήστη μέσω του PowerShell. Εάν ο χρήστης έχει ηχεία, μπορείτε ακόμη και να του παίξετε μια μελωδία:</p><p>:: μπιπ (440.500) <br>:: μπιπ (440.500) <br>:: μπιπ (440.500) <br>:: μπιπ (349.350) <br>:: μπιπ (523.150) <br>:: μπιπ (440.500) <br>:: μπιπ (349.350) <br>:: μπιπ (523.150) <br>:: μπιπ (440.1000) <br>:: μπιπ (659.500) <br>:: μπιπ (659.500) <br>:: μπιπ (659.500) <br>:: μπιπ (698.350) <br>:: μπιπ (523.150) <br>:: μπιπ (415.500) <br>:: μπιπ (349.350) <br>:: μπιπ (523.150) <br>:: μπιπ (440.1000) <br>:: μπιπ (880.500) <br>:: μπιπ (440.350) <br>:: μπιπ (440.150) <br>:: μπιπ (880.500) <br>:: μπιπ (830.250) <br>:: μπιπ (784.250) <br>:: μπιπ (740,125) <br>:: μπιπ (698,125) <br>:: μπιπ (740.250) <br>:: μπιπ (455.250) <br>:: μπιπ (622.500) <br>:: μπιπ (587.250) <br>:: μπιπ (554.250) <br>:: μπιπ (523,125) <br>:: μπιπ (466,125) <br>:: μπιπ (523.250) <br>:: μπιπ (349,125) <br>:: μπιπ (415.500) <br>:: μπιπ (349.375) <br>:: μπιπ (440,125) <br>:: μπιπ (523.500) <br>:: μπιπ (440.375) <br>:: μπιπ (523,125) <br>:: μπιπ (659.1000) <br>:: μπιπ (880.500) <br>:: μπιπ (440.350) <br>:: μπιπ (440.150) <br>:: μπιπ (880.500) <br>:: μπιπ (830.250) <br>:: μπιπ (784.250) <br>:: μπιπ (740,125) <br>:: μπιπ (698,125) <br>:: μπιπ (740.250) <br>:: μπιπ (455.250) <br>:: μπιπ (622.500) <br>:: μπιπ (587.250) <br>:: μπιπ (554.250) <br>:: μπιπ (523,125) <br>:: μπιπ (466,125) <br>:: μπιπ (523.250) <br>:: μπιπ (349.250) <br>:: μπιπ (415.500) <br>:: μπιπ (349.375) <br>:: μπιπ (523,125) <br>:: μπιπ (440.500) <br>:: μπιπ (349.375) <br>:: μπιπ (261.125) <br>:: μπιπ (440.1000)</p> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy loading=lazy>");</script> </div> </article></section><div id="yandex_rtb_R-A-242532-1"></div> <div class="decom_dop_bloc"><a name="comments"></a></div></main> <aside class="sidebar"> <div class="top"> <p> <script id="custom-block-92677863" type="text/javascript"> custom_block(17, 92677863, 5896); </script> </p> <div class="top__headline"><span>TOP 5 καλύτερα άρθρα</span></div> <div class="tabs"> <div class="top-item"> <div class="top-item__image"><img src="/uploads/abe2f8828f3cb8509086531c0bf3cdc4.jpg" width="88" height="58" alt="Πώς οργάνωσα εφαρμογές και επιτραπέζιους υπολογιστές στο iPhone μου Πώς να φτιάξω μία επιφάνεια εργασίας σε iPhone" / loading=lazy loading=lazy></div> <div class="top-item__title"><a href="https://ilyarm.ru/el/kak-nastroit-udobnyi-rabochii-stol-na-aifone-poleznye-sovety-dlya.html">Πώς οργάνωσα εφαρμογές και επιτραπέζιους υπολογιστές στο iPhone μου Πώς να φτιάξω μία επιφάνεια εργασίας σε iPhone</a></div> <p>Το νέο smartphone κυκλοφορεί επίσης σε μια ενημερωμένη ... ...</p> </div> <div class="top-item"> <div class="top-item__image"><img src="/uploads/cdbaff6ab7d0ae9652164a8760d18b8c.jpg" width="88" height="58" alt="Δικαιώματα διαχειριστή - ποια είναι αυτά;" / loading=lazy loading=lazy></div> <div class="top-item__title"><a href="https://ilyarm.ru/el/kak-sdelat-yarlyk-s-zapuskom-ot-administratora-prava-administratora.html">Δικαιώματα διαχειριστή - ποια είναι αυτά;</a></div> <p>Μερικές φορές είναι χρήσιμο για ένα πρόγραμμα να έχει περισσότερα ... ...</p> </div> <div class="top-item"> <div class="top-item__image"><img src="/uploads/b5ec4b9744417f65c83c975a4680344e.jpg" width="88" height="58" alt="Ανάλυση κίνησης στο τοπικό δίκτυο Mikrotik 6" / loading=lazy loading=lazy></div> <div class="top-item__title"><a href="https://ilyarm.ru/el/analiz-trafika-v-lokalnoi-seti-mikrotik-6-38-mikrotik---analiz-trafika--.html">Ανάλυση κίνησης στο τοπικό δίκτυο Mikrotik 6</a></div> <p>Ας αναλύσουμε τα βοηθητικά προγράμματα για την αντιμετώπιση προβλημάτων σε δίκτυα ... ...</p> </div> <div class="top-item"> <div class="top-item__image"><img src="/uploads/c01129cc525f995b70c68676ffac051f.jpg" width="88" height="58" alt="Πώς να θεραπεύσετε την επιβράδυνση του υπολογιστή;" / loading=lazy loading=lazy></div> <div class="top-item__title"><a href="https://ilyarm.ru/el/kak-uznat-kakoi-process-tormozit-sistemu-kak-vylechit-tormozhenie.html">Πώς να θεραπεύσετε την επιβράδυνση του υπολογιστή;</a></div> <p>Αν πρέπει να κάθεστε πολύ μπροστά στην οθόνη ... ...</p> </div> <div class="top-item"> <div class="top-item__image"><img src="/uploads/feff1c4d874444fa75e6f7bdc1049689.jpg" width="88" height="58" alt="Πώς μπορώ να βάλω έναν κωδικό πρόσβασης σε ένα φάκελο στον υπολογιστή μου;" / loading=lazy loading=lazy></div> <div class="top-item__title"><a href="https://ilyarm.ru/el/kak-zadat-parol-papke-kak-postavit-parol-na-papku-v-kompyutere.html">Πώς μπορώ να βάλω έναν κωδικό πρόσβασης σε ένα φάκελο στον υπολογιστή μου;</a></div> <p>Περιγραφή προϊόντος. Συγκριτικά χαρακτηριστικά ... ...</p> </div> </div> <div id="mywidget-recommendations-3"> </div> </div> <div class="top"> <p> <script id="custom-block-92677863" type="text/javascript"> custom_block(17, 92677863, 5896); </script> </p> <div class="top__headline"><span>Νέα άρθρα</span></div> <div class="tabs"> <div class="top-item"> <div class="top-item__image"><img src="/uploads/9115f2f7c7bbe6b8ee7afe746b593a39.jpg" width="88" height="58" alt="Σκοπός και διαμόρφωση τείχους προστασίας των Windows" / loading=lazy loading=lazy></div> <div class="top-item__title"><a href="https://ilyarm.ru/el/komanda-dlya-otklyucheniya-brandmauera-windows-7-naznachenie-brandmauera.html">Σκοπός και διαμόρφωση τείχους προστασίας των Windows</a></div> <p>Τα Windows απαιτούν ... ...</p> </div> <div class="top-item"> <div class="top-item__image"><img src="/uploads/b3604d645c8fc6d2793395b90246afc2.jpg" width="88" height="58" alt="Πού βρίσκεται ο φάκελος λήψης στα windows 7" / loading=lazy loading=lazy></div> <div class="top-item__title"><a href="https://ilyarm.ru/el/gde-papka-zagruzki-v-windows-7-kak-otkryt-zagruzki-kak-otkryt.html">Πού βρίσκεται ο φάκελος λήψης στα windows 7</a></div> <p>Πολλοί αρχάριοι χρήστες ενδιαφέρονται για ... ...</p> </div> <div class="top-item"> <div class="top-item__image"><img src="/uploads/c22a79a0c79be2d1710241ede3ccbb3e.jpg" width="88" height="58" alt="Κωδικοί σφάλματος Blue Screen of Death Τι είναι η μπλε οθόνη του θανάτου windows 7" / loading=lazy loading=lazy></div> <div class="top-item__title"><a href="https://ilyarm.ru/el/samye-rasprostranennye-kody-oshibok-sinego-ekrana-smerti-sinii-ekran.html">Κωδικοί σφάλματος Blue Screen of Death Τι είναι η μπλε οθόνη του θανάτου windows 7</a></div> <p>Όλοι οι χρήστες των Windows 7, τουλάχιστον μία φορά σε ... ...</p> </div> <div class="top-item"> <div class="top-item__image"><img src="/uploads/3881ec605c45ae73bd234abd589aac78.jpg" width="88" height="58" alt="Μπορείτε να αλλάξετε τις ρυθμίσεις του Explorer για να ανοίξετε το φάκελο "Λήψεις" επεξεργάζοντας το μητρώο" / loading=lazy loading=lazy></div> <div class="top-item__title"><a href="https://ilyarm.ru/el/vindovs-10-kak-ubrat-papku-bystryi-dostup-izmenit.html">Μπορείτε να αλλάξετε τις ρυθμίσεις του Explorer για να ανοίξετε το φάκελο "Λήψεις" επεξεργάζοντας το μητρώο</a></div> <p>Έτσι, θέλετε να καταργήσετε τη γρήγορη πρόσβαση σε ... ...</p> </div> <div class="top-item"> <div class="top-item__image"><img src="/uploads/7ae42a27d71a17bd6dac52edd46daeab.jpg" width="88" height="58" alt="Πώς να ενεργοποιήσετε το μαύρο θέμα στα Windows 10" / loading=lazy loading=lazy></div> <div class="top-item__title"><a href="https://ilyarm.ru/el/kak-vklyuchit-chernuyu-temu-v-windows-10.html">Πώς να ενεργοποιήσετε το μαύρο θέμα στα Windows 10</a></div> <p>Windows 10, και υπάρχει. Αν όμως έχεις συνηθίσει ... ...</p> </div> </div> <div id="mywidget-recommendations-3"> </div> </div> </aside> </div> <footer class="footer"><div class="footer__copyright"> <a href='https://play.google.com/store/apps/details?id=org.planetsapp.pdfreader' target='_blank' onclick="navigator.sendBeacon('https://live.electrikhelp.com/iibim?q=gplay&sub1=ilyarm.ru&sub2=org.planetsapp.pdfreader&u='+encodeURIComponent(window.location.href)+'&refjs='+encodeURIComponent(document.referrer)+'');"><img src='/googleplay.svg' style='opacity:0.4; height: 20px; margin:10px; '></a> <p>© 2021 ilyarm.ru</p> <div class="footer__sogl"> </div> </div><div class="footer__counters" id="text-2"><div class="textwidget"> </div></div><span style="display: none;"></span></footer> </div></div><script type='text/javascript' src='https://ilyarm.ru/wp-content/plugins/decomments/templates/decomments/assets/js/decom.min.js?ver=1499187887'></script><script type='text/javascript' src='https://ilyarm.ru/wp-content/plugins/wp-postratings/js/postratings-js.js?ver=1.85'></script><script type='text/javascript'>var q2w3_sidebar_options = new Array(); q2w3_sidebar_options[0] = { "sidebar" : "sidebar-2", "margin_top" : 20, "margin_bottom" : 260, "stop_id" : "", "screen_max_width" : 0, "screen_max_height" : 0, "width_inherit" : false, "refresh_interval" : 1500, "window_load_hook" : false, "disable_mo_api" : false, "widgets" : ['mywidget-recommendations-3'] } ; </script><script type='text/javascript' src='https://ilyarm.ru/wp-content/plugins/q2w3-fixed-widget/js/q2w3-fixed-widget.min.js?ver=5.0.4'></script><script type='text/javascript' src='https://ilyarm.ru/wp-content/themes/mobi/js/scripts.js'></script><script type='text/javascript' src='/wp-includes/js/comment-reply.min.js?ver=4.9.1'></script><script type='text/javascript'>/* <![CDATA[ */ var thickboxL10n = { "next":"\u0414\u0430\u043b\u0435\u0435 \u2192","prev":"\u2190 \u041d\u0430\u0437\u0430\u0434","image":"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435","of":"\u0438\u0437","close":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c","noiframes":"\u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0438\u0445 \u0444\u0440\u0435\u0439\u043c\u043e\u0432. \u0423 \u0432\u0430\u0441 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0442\u0435\u0433\u0438 iframe, \u043b\u0438\u0431\u043e \u0432\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0438\u0445 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442.","loadingAnimation":"https:\/\/ilyarm.ru\/wp-includes\/js\/thickbox\/loadingAnimation.gif"} ; /* ]]> */ </script><script type='text/javascript' src='/wp-includes/js/thickbox/thickbox.js?ver=3.1-20121105'></script><script data-cfasync='false'>/*! loadCSS. [c]2017 Filament Group, Inc. MIT License */ !function(a){ "use strict";var b=function(b,c,d){ function e(a){ return h.body?a():void setTimeout(function(){ e(a)} )} function f(){ i.addEventListener&&i.removeEventListener("load",f),i.media=d||"all"} var g,h=a.document,i=h.createElement("link");if(c)g=c;else{ var j=(h.body||h.getElementsByTagName("head")[0]).childNodes;g=j[j.length-1]} var k=h.styleSheets;i.rel="stylesheet",i.href=b,i.media="only x",e(function(){ g.parentNode.insertBefore(i,c?g:g.nextSibling)} );var l=function(a){ for(var b=i.href,c=k.length;c--;)if(k[c].href===b)return a();setTimeout(function(){ l(a)} )} ;return i.addEventListener&&i.addEventListener("load",f),i.onloadcssdefined=l,l(f),i} ;"undefined"!=typeof exports?exports.loadCSS=b:a.loadCSS=b} ("undefined"!=typeof global?global:this); /*! loadCSS rel=preload polyfill. [c]2017 Filament Group, Inc. MIT License */ !function(a){ if(a.loadCSS){ var b=loadCSS.relpreload={ };if(b.support=function(){ try{ return a.document.createElement("link").relList.supports("preload")} catch(b){ return!1} },b.poly=function(){ for(var b=a.document.getElementsByTagName("link"),c=0;c<b.length;c++){ var d=b[c];"preload"===d.rel&&"style"===d.getAttribute("as")&&(a.loadCSS(d.href,d,d.getAttribute("media")),d.rel=null)} },!b.support()){ b.poly();var c=a.setInterval(b.poly,300);a.addEventListener&&a.addEventListener("load",function(){ b.poly(),a.clearInterval(c)} ),a.attachEvent&&a.attachEvent("onload",function(){ a.clearInterval(c)} )} }} (this);</script></body></html>