PowerShell 5.1: Invoke-WebRequest: Αποτροπή εκτέλεσης δέσμης ενεργειών από περιεχόμενο Web

Ισχύει για
Win 10 Ent LTSB 2016 Win 10 Ent LTSC 2019 Windows 10 IoT Enterprise LTSC 2021 Windows 10, version 22H2, all editions Windows 11 Home and Pro, version 22H2 Windows 11 Enterprise Multi-Session, version 22H2 Windows 11 Enterprise and Education, version 22H2 Windows 11 IoT Enterprise, version 22H2 Windows 11 SE, version 23H2 Windows 11 Home and Pro, version 23H2 Windows 11 Enterprise and Education, version 23H2 Windows 11 Enterprise Multi-Session, version 23H2 Windows 11 version 24H2, all editions Windows 11 version 25H2, all editions Windows Server 2008 Premium Assurance Windows Server 2008 R2 Premium Assurance Windows Server 2012 ESU Windows Server 2012 R2 ESU Windows Server 2016 Windows Server 2019 Windows Server 2022 Windows Server 2025

Σημείωση

  • Αρχική ημερομηνία δημοσίευσης: 9 Δεκεμβρίου 2025
  • Αναγνωριστικό KB: 5074596

Σημείωση

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

Αρχείο καταγραφής αλλαγών
Αλλαγή ημερομηνίας Περιγραφή αλλαγών
20 Δεκεμβρίου 2025
  • Προστέθηκε η "Προειδοποίηση ασφαλείας" στην ενότητα "Σύνοψη".
  • Προστέθηκε η ακόλουθη παράγραφος στην ενότητα "Σύνοψη" για λόγους σαφήνειας:

    Η εντολή Invoke-WebRequest του PowerShell υποβάλλει μια αίτηση HTTP ή HTTPS σε έναν διακομιστή web και επιστρέφει τα αποτελέσματα. Αυτό το άρθρο τεκμηριώνει μια αλλαγή θωράκισης όπου το Windows PowerShell 5.1 εμφανίζει σκόπιμα ένα μήνυμα επιβεβαίωσης ασφαλείας κατά τη χρήση της εντολής Invoke-WebRequest για τη λήψη ιστοσελίδων χωρίς ειδικές παραμέτρους. Αυτή η συμπεριφορά παρουσιάζεται μετά την εγκατάσταση της εγκατάστασης των Windows σε υποστηριζόμενους υπολογιστές-πελάτες και διακομιστές Windows Ενημερώσεις που κυκλοφόρησαν στις και μετά τις 9 Δεκεμβρίου 2025. Για περισσότερες πληροφορίες, δείτε το CVE-2025-54100.
  • Προστέθηκαν οι ακόλουθες κουκκίδες στην επιλογή "Για αυτοματοποιημένες δέσμες ενεργειών ή προγραμματισμένες εργασίες" στην επιλογή 1 της ενότητας "Ανάληψη δράσης".
    • Για δέσμες ενεργειών που εκτελούνται με την επιλογή χωρίς προφίλ: Εάν η δέσμη ενεργειών έχει πολλές εμφανίσεις των κλήσεων Invoke-WebRequest, δηλώστε $PSDefaultParameterValues['Invoke-WebRequest:UseBasicParsing'] = $true στο επάνω μέρος της δέσμης ενεργειών.
    • Όταν χρησιμοποιείται το Invoke-WebRequest με την παράμετρο -UseBasicParsing , δεν είναι δυνατή η ανάλυση Full Document Object Model (DOM) με χρήση στοιχείων του Internet Explorer (HTMLDocument Interface (mshtml)).
  • Προστέθηκε η ακόλουθη κουκκίδα στο σημείο κουκκίδας "Εκσυγχρονίστε την προσέγγισή σας στις αλληλεπιδράσεις web" της επιλογής 2 στην ενότητα "Ανάληψη δράσης".
    • Το Invoke-Webrequest στο Powershell Core (έκδοση 7.x ή νεότερη) δεν υποστηρίζει ανάλυση DOM με χρήση στοιχείων του Internet Explorer. Η προεπιλεγμένη ανάλυσή του θα ανακτήσει με ασφάλεια το περιεχόμενο χωρίς εκτέλεση δέσμης ενεργειών.

Περίληψη

Το Windows PowerShell 5.1 εμφανίζει τώρα ένα μήνυμα επιβεβαίωσης ασφαλείας όταν χρησιμοποιείτε την εντολή Invoke-WebRequest για τη λήψη ιστοσελίδων χωρίς ειδικές παραμέτρους.

Σημείωση

  • Προειδοποίηση ασφαλείας: Κίνδυνος εκτέλεσης δέσμης ενεργειών Invoke-WebRequest αναλύει το περιεχόμενο της ιστοσελίδας. Ο κώδικας δέσμης ενεργειών στην ιστοσελίδα μπορεί να εκτελείται όταν αναλύεται η σελίδα.
  • ΠΡΟΤΕΙΝΟΜΕΝΗ ΕΝΕΡΓΕΙΑ: Χρησιμοποιήστε το διακόπτη -UseBasicParsing για να αποφύγετε την εκτέλεση κώδικα δέσμης ενεργειών.
  • Θέλετε να συνεχίσετε;

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

Η εντολή Invoke-WebRequest του PowerShell κάνει μια αίτηση HTTP ή HTTPS σε έναν διακομιστή web και επιστρέφει τα αποτελέσματα. Αυτό το άρθρο τεκμηριώνει μια αλλαγή θωράκισης όπου το Windows PowerShell 5.1 εμφανίζει σκόπιμα ένα μήνυμα επιβεβαίωσης ασφαλείας κατά τη χρήση της εντολής Invoke-WebRequest για τη λήψη ιστοσελίδων χωρίς ειδικές παραμέτρους. Αυτή η συμπεριφορά παρουσιάζεται αφού οι υποστηριζόμενοι υπολογιστές-πελάτες και διακομιστές Windows έχουν εγκαταστήσει τα Windows Ενημερώσεις που κυκλοφόρησαν στις και μετά τις 9 Δεκεμβρίου 2025. Για περισσότερες πληροφορίες, δείτε το CVE-2025-54100.

Τι άλλαξε;

  • Προηγούμενη συμπεριφορά

    • Ανάλυση Full Document Object Model (DOM) με χρήση στοιχείων του Internet Explorer (HTMLDocument Interface (mshtml)), η οποία θα μπορούσε να εκτελέσει δέσμες ενεργειών από περιεχόμενο που έχετε κατεβάσει.
  • Νέα συμπεριφορά

    • Ερώτηση επιβεβαίωσης ασφαλείας: Μετά την εγκατάσταση των ενημερώσεων των Windows που κυκλοφόρησαν στις ή μετά τις 9 Δεκεμβρίου 2025, η εκτέλεση της εντολής Invoke-WebRequest (γνωστή και ως μπούκλα) στο PowerShell 5.1 θα ενεργοποιήσει μια προτροπή ασφαλείας (όταν δεν χρησιμοποιείται ειδική παράμετρος). Το μήνυμα εμφανίζεται στην κονσόλα PowerShell με μια προειδοποίηση σχετικά με τον κίνδυνο εκτέλεσης δέσμης ενεργειών

      Αυτό σημαίνει ότι το PowerShell κάνει παύση για να σας προειδοποιήσει ότι, χωρίς προφυλάξεις, το περιεχόμενο της δέσμης ενεργειών ιστοσελίδας θα μπορούσε να εκτελεστεί στο σύστημά σας όταν υποβληθεί σε επεξεργασία. Από προεπιλογή, εάν πατήσετε το πλήκτρο Enter (ή επιλέξετε Όχι), η λειτουργία θα ακυρωθεί για λόγους ασφαλείας. Το PowerShell θα εμφανίσει ένα μήνυμα ότι ακυρώθηκε λόγω ζητημάτων ασφαλείας και προτείνει την εκ νέου εκτέλεση της εντολής χρησιμοποιώντας το κουμπί
      -Παράμετρος UseBasicParsing για ασφαλή επεξεργασία. Εάν επιλέξετε Ναι, το PowerShell θα προχωρήσει στην ανάλυση της σελίδας χρησιμοποιώντας την παλαιότερη μέθοδο (πλήρης ανάλυση HTML), που σημαίνει ότι θα φορτώσει το περιεχόμενο και τυχόν ενσωματωμένα σενάρια όπως παλιά. Ουσιαστικά, η επιλογή "Ναι " σημαίνει ότι αποδέχεστε τον κίνδυνο και επιτρέπετε στην εντολή να εκτελεστεί όπως πριν, ενώ η επιλογή "Όχι " (προεπιλογή) διακόπτει την ενέργεια για λόγους προστασίας σας.

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

Αναλάβετε δράση

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

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

Επιλογή 1: Χρησιμοποιήστε τη νέα ασφαλή προεπιλογή

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

Για διαδραστική χρήση, απλώς απαντήστε "Όχι " στη νέα προτροπή ασφαλείας (ή πατήστε το πλήκτρο Enter για να αποδεχτείτε την προεπιλογή) και εκτελέστε ξανά την εντολή σας με την παράμετρο -UseBasicParsing για να ανακτήσετε με ασφάλεια το περιεχόμενο. Αυτό θα αποφύγει την εκτέλεση οποιουδήποτε κώδικα δέσμης ενεργειών στη σελίδα που ανακτήθηκε. Εάν λαμβάνετε συχνά αλληλεπιδραστικά περιεχόμενο web, εξετάστε το ενδεχόμενο να χρησιμοποιήσετε την παράμετρο -UseBasicParsing από προεπιλογή στις εντολές σας για να παραλείψετε εντελώς την ερώτηση και να εξασφαλίσετε τη μέγιστη ασφάλεια.

Για αυτοματοποιημένες δέσμες ενεργειών ή προγραμματισμένες εργασίες, ενημερώστε τις ώστε να περιλαμβάνουν την παράμετρο -UseBasicParsing στις κλήσεις Invoke-WebRequest . Αυτό προεπιλέγει την ασφαλή συμπεριφορά, έτσι ώστε να μην εμφανιστεί η προτροπή και η δέσμη ενεργειών σας να συνεχίσει να εκτελείται χωρίς διακοπή. Με αυτόν τον τρόπο, διασφαλίζετε ότι ο αυτοματισμός σας εκτελείται απρόσκοπτα μετά την ενημέρωση, ενώ εξακολουθείτε να εκμεταλλεύεστε τη βελτιωμένη ασφάλεια.

  • Για δέσμες ενεργειών που εκτελούνται με την επιλογή -NoProfile: Εάν η δέσμη ενεργειών έχει πολλές εμφανίσεις κλήσεων Invoke-WebRequest , δηλώστε $PSDefaultParameterValues['Invoke-WebRequest:UseBasicParsing'] = $true στο επάνω μέρος της δέσμης ενεργειών.
  • Όταν χρησιμοποιείται το Invoke-WebRequest με την παράμετρο -UseBasicParsing , δεν είναι δυνατή η ανάλυση Full Document Object Model (DOM) με χρήση στοιχείων του Internet Explorer (HTMLDocument Interface (mshtml)).
Επιλογή 2: Refactor δέσμες ενεργειών για μακροπρόθεσμη ασφάλεια

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

  • Χρησιμοποιήστε εναλλακτικές μεθόδους ανάλυσης ή βιβλιοθήκες (για παράδειγμα, χειριστείτε το περιεχόμενο της ιστοσελίδας ως απλό κείμενο ή XML, χρησιμοποιώντας βιβλιοθήκες ανάλυσης regex ή XML/HTML που δεν εκτελούν δέσμες ενεργειών).

  • Εκσυγχρονίστε την προσέγγισή σας στις αλληλεπιδράσεις web, ίσως χρησιμοποιώντας το νεότερο PowerShell Core (έκδοση 7.x ή νεότερη), το οποίο δεν εξαρτάται από τον μηχανισμό του Internet Explorer και αποφεύγει την εκτέλεση δεσμών ενεργειών, ή χρησιμοποιώντας εξειδικευμένα εργαλεία απόξεσης web που χειρίζονται περιεχόμενο με μεγαλύτερη ασφάλεια. Περιορίστε την εξάρτηση από δυνατότητες ειδικά για τον Internet Explorer, επειδή ο Internet Explorer είναι υπό απόσυρση. Σχεδιάστε να ξαναγράψετε τμήματα των δεσμών ενεργειών σας που εξαρτώνται από αυτές τις δυνατότητες, ώστε να μπορούν να λειτουργούν σε ένα περιβάλλον όπου το περιεχόμενο ιστού αντιμετωπίζεται με ασφάλεια.

    • Το Invoke-WebRequest στο PowerShell Core (έκδοση 7.x ή νεότερη) δεν υποστηρίζει ανάλυση DOM με χρήση στοιχείων του Internet Explorer. Η προεπιλεγμένη ανάλυσή του θα ανακτήσει με ασφάλεια το περιεχόμενο χωρίς εκτέλεση δέσμης ενεργειών.
  • Ο στόχος με το refactoring είναι να επιτύχετε την απαιτούμενη λειτουργικότητά σας χωρίς να εκθέσετε τον εαυτό σας σε κινδύνους ασφαλείας, αγκαλιάζοντας έτσι τις ασφαλέστερες προεπιλογές που εισάγει αυτή η αλλαγή.

Επιλογή 3: Opt-in to legacy behavior (trusted scenarios only)

Εάν έχετε κάποια συγκεκριμένη ανάγκη να χρησιμοποιήσετε τις πλήρεις δυνατότητες ανάλυσης HTML της εντολής Invoke-WebRequest (όπως η αλληλεπίδραση με πεδία φόρμας ή η απόξεση δομημένων δεδομένων) και εμπιστεύεστε την προέλευση του περιεχομένου web, μπορείτε να συνεχίσετε με τη συμπεριφορά ανάλυσης παλαιού τύπου κατά περίπτωση. Σε αλληλεπιδραστικές συνεδρίες, αυτό σημαίνει απλώς να επιλέξετε "Ναι " στην προτροπή επιβεβαίωσης για να επιτρέψετε τη συνέχιση της λειτουργίας. Θα λαμβάνετε μια υπενθύμιση για τον κίνδυνο ασφαλείας κάθε φορά που το κάνετε. Η διαδικασία χωρίς την παράμετρο -UseBasicParsing θα πρέπει να περιορίζεται σε σενάρια όπου εμπιστεύεστε πλήρως το περιεχόμενο ιστού (για παράδειγμα, εσωτερικές εφαρμογές web υπό τον έλεγχό σας ή γνωστές ασφαλείς τοποθεσίες Web).

Σημαντικό

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

Συνήθεις ερωτήσεις

Επηρεάζει αυτή η αλλαγή τις δέσμες ενεργειών μου;

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

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

Πώς μπορώ να αποφύγω τη νέα προτροπή επιβεβαίωσης στα σενάριά μου;

Χρησιμοποιείτε πάντα την παράμετρο -UseBasicParsing με την εντολή Invoke-WebRequest σε δέσμες ενεργειών PowerShell για να εξασφαλίσετε ασφαλή, μη αλληλεπιδραστική εκτέλεση.

Αυτή η αλλαγή απαιτεί κάποια ενέργεια για δέσμες ενεργειών παλαιού τύπου;

Ναι. Οι δέσμες ενεργειών, ανάλογα με την ανάλυση παλαιού τύπου, πρέπει να ενημερωθούν για να συμμετάσχουν ή να αλλάξουν τον παράγοντα.

Πώς αντικατοπτρίζεται αυτή η αλλαγή στις ενημερώσεις hotpatch και στις τυπικές ενημερώσεις;

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

Αυτή η αλλαγή ευθυγραμμίζεται με το PowerShell 7;

Ναι. Το PowerShell 7 χρησιμοποιεί ήδη την ασφαλή ανάλυση από προεπιλογή.

Τι πρέπει να κάνω για τις δέσμες ενεργειών ή τις λειτουργικές μονάδες τρίτων;

Επικοινωνήστε με τους κατόχους λειτουργικών μονάδων για προγράμματα υποστήριξης. Χρησιμοποιήστε την προσωρινή επιλογή για αξιόπιστο περιεχόμενο κατά τη μετεγκατάσταση.

Πώς γίνεται επαληθεύσω ότι το περιβάλλον μου είναι έτοιμο;

Για να προετοιμαστείτε για αυτήν την αλλαγή και να την επικυρώσετε, συνιστούμε:

  • Προσδιορίστε δέσμες ενεργειών χρησιμοποιώντας δυνατότητες DOM.
  • Δοκιμή αυτοματισμού με τη νέα προεπιλογή.
  • Περιορίστε τη συγκατάθεση παλαιού τύπου σε αξιόπιστες πηγές.
  • Σχεδιασμός αναδιαμόρφωσης για μη αξιόπιστο περιεχόμενο.