Σύνοψη
Αφού εφαρμόσετε τις ενημερωμένες εκδόσεις ασφαλείας Απριλίου 2017 που περιγράφεται στις οδηγίες της ενημερωμένης έκδοσης ασφαλείας της Microsoft CVE-2017-0160 , το PowerShell v3.0 + stop υπολογιστή εντολή αποτυγχάνει. Επιπλέον, εάν οι εφαρμογές χρησιμοποιούν μεθόδους διαχείρισης ενέργειας, όπως τον τερματισμό ή επανεκκίνηση του υπολογιστή, από την κλάση Win32_OperatingSystem και ορίστε το χαρακτηριστικό EnablePrivileges σε true, ενδέχεται να παρατηρήσετε την ίδια αποτυχία. Επιστρέφει ένα μήνυμα σφάλματος "Δεν κατέχεται το δικαίωμα".
Περισσότερες πληροφορίες
Συμπτώματα για θέμα 1
Οι πελάτες που προσπαθείτε να απενεργοποιήσετε ή να ξεκινήσετε πάλι το σύστημα, τοπικά ή απομακρυσμένα, χρησιμοποιώντας την εντολή διακοπής υπολογιστή σε PowerShell v3.0 και νεότερη έκδοση, θα δείτε το ακόλουθο μήνυμα λάθους:
Διακοπή υπολογιστή: δεν κατέχεται το δικαίωμα.
Στη γραμμή: 1 χαρακτήρας: 1
+ Διακοπή υπολογιστή
+ ~~~~~~~~~~~~~
+ CategoryInfo: InvalidOperation: (< ΌΝΟΜΑ_ΥΠΟΛΟΓΙΣΤΉ >: συμβολοσειρά) [Stop-υπολογιστή] ManagementE
+ FullyQualifiedErrorId: StopComputerException,Microsoft.PowerShell.Commands.StopComputerCommand
Λύση για το ζήτημα 1
Για να επιλύσετε αυτό το ζήτημα, εκτελέστε την ακόλουθη εντολή "shutdown.exe" για την εκτέλεση της ενέργειας προς τα κάτω και κάντε επανεκκίνηση λειτουργιών σε τοπικούς και απομακρυσμένους υπολογιστές:
το Shutdown.exe [-r] [-s] [-m \\computer]
Για περισσότερες πληροφορίες και εντολή Βοήθειας, εκτελέστε:
shutdown.exe -?
Συμπτώματα για θέμα 2
Πελάτη εφαρμογές χρησιμοποιώντας μεθόδους διαχείρισης ενέργειας, όπως τον τερματισμό ή επανεκκίνηση του υπολογιστή, από την κλάση Win32_OperatingSystem και ορίστε την ιδιότητα EnablePrivileges στην τιμή true, ενδέχεται να παρατηρήσετε το ίδιο σφάλμα "Το δικαίωμα δεν τηρείται".
-
Παράδειγμα 1 (PowerShell) επιστρέφει το σφάλμα "Δεν κατέχεται το δικαίωμα":
$computername= "." $win32OS = get-wmiobject win32_operatingsystem -computername $computername $win32OS.psbase.Scope.Options.EnablePrivileges = $true $win32OS.reboot()-
Παράδειγμα 2 (κώδικα C#) επιστρέφει το σφάλμα "Δεν κατέχεται το δικαίωμα":
[STAThread] static void Main(string[] args) { ManagementClass mgmtObject = new ManagementClass("Win32_OperatingSystem"); foreach (ManagementObject iterMgmtObject in mgmtObject.GetInstances()) { iterMgmtObject.Scope.Options.EnablePrivileges = true; iterMgmtObject.InvokeMethod("Reboot", null, null); } }
-
Λύση για το ζήτημα 2
-
Για παράδειγμα, 1 (PowerShell):
$computername= "." $win32OS = get-wmiobject win32_operatingsystem -computername $computername -EnableAllPrivileges $win32OS.reboot() -
Για παράδειγμα 2 (κώδικα C#):
using System; using System.Collections.Generic; using System.Linq; using System.Management; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication { public class Program { static void Main(string[] args) { var mgmtScope = new ManagementScope( ManagementPath.DefaultPath, new ConnectionOptions() { EnablePrivileges = true }); var mgmtClass = new ManagementClass(mgmtScope, new ManagementPath("Win32_OperatingSystem"), null); foreach (ManagementObject mgmtInst in mgmtClass.GetInstances()) { var mgmtCallResult = mgmtInst.InvokeMethod("Reboot", null, null); Console.Out.WriteLine("Reboot() Return Value: {0}", mgmtCallResult["ReturnValue"]); } } } }
Προτεινόμενη αντιμετώπιση
Λύση για το Πρόβλημα 1
Για να επιλύσετε αυτό το ζήτημα, εγκαταστήστε την ενημερωμένη έκδοση στον παρακάτω πίνακα ανάλογα με το σύστημά σας.
Λειτουργικό σύστημα |
Η ενημερωμένη έκδοση |
Windows Server 2008 |
Για το .NET Framework 2.0, εγκαταστήστε την ενημερωμένη έκδοση 4020511 Για το .NET Framework 4.5.2, εγκαταστήστε την ενημερωμένη έκδοση 4020507 Για το .NET Framework 4.6, εγκαταστήστε την ενημερωμένη έκδοση 4020503 |
Windows 7 και Windows Server 2008 R2 |
Για το .NET Framework 3.5.1, εγκαταστήστε την ενημέρωση 4020513 Για το .NET Framework 4.5.2, εγκαταστήστε την ενημέρωση 4020507 Για το 4.6 Framework .NET ή 4.6.1, εγκαταστήστε την ενημερωμένη έκδοση 4020503 Για το .NET Framework 4.6.2, εγκαταστήστε την ενημέρωση 4020500 |
Windows Server 2012 |
Για το .NET Framework 3.5, εγκαταστήστε την ενημερωμένη έκδοση 4020512 Για το .NET Framework 4.5.2, εγκαταστήστε την ενημέρωση 4020506 Για το 4.6 του .NET Framework ή 4.6.1, εγκαταστήστε την ενημέρωση 4020501 Για το .NET Framework 4.6.2, εγκαταστήστε την ενημέρωση 4020498 |
Windows 8.1 και Windows Server 2012 R2 |
Για το .NET Framework 3.5, εγκαταστήστε την ενημέρωση 4020514 Για το .NET Framework 4.5.2, εγκαταστήστε την ενημέρωση 4020505 Για το 4.6 του .NET Framework ή 4.6.1, εγκαταστήστε την ενημέρωση 4020502 Για το .NET Framework 4.6.2, εγκαταστήστε την ενημέρωση 4020499 |
RTM των Windows 10 |
Εγκαταστήστε την ενημέρωση 4019474 |
Windows 10 έκδοση 1511 |
Εγκαταστήστε την ενημέρωση 4019473 |
Windows 10 έκδοση 1607 και 2016 διακομιστή των Windows |
Εγκαταστήστε την ενημέρωση 4019472 |
Windows 10 έκδοση 1703 |
Εγκαταστήστε την ενημέρωση 4016871 |
Λύση για το Πρόβλημα 2
Για να επιλύσετε αυτό το ζήτημα, εγκαταστήστε την ενημερωμένη έκδοση στον παρακάτω πίνακα ανάλογα με το σύστημά σας.
Έκδοση προϊόντος |
Προεπισκόπηση της συλλογής ενημερωμένων εκδόσεων ποιότητας KB |
---|---|
Η ενημερωμένη έκδοση των Windows 10 1703 (RS2) Windows Server 2016 |
|
.NET framework 3.5 |
|
.NET framework 4.7 |
|
Η ενημερωμένη έκδοση των Windows 10 1607 Windows Server 2016 |
|
.NET framework 3.5 |
Catalog 4034661 |
.NET framework 4.6.2 και 4.7 |
Catalog 4034658 |
Windows 8.1 Τα Windows RT 8.1 Windows Server 2012 R2 |
|
.NET framework 3.5 |
|
.NET framework 4.5.2 |
|
.NET framework 4.6, 4.6.1, 4.6.2, 4.7 |
|
Windows Server 2012 |
|
.NET framework 3.5 |
|
.NET framework 4.5.2 |
|
.NET framework 4.6, 4.6.1, 4.6.2, 4.7 |
|
Windows 7 Windows Server 2008 R2 |
|
.NET framework 3.5.1 |
|
.NET framework 4.5.2 |
|
.NET framework 4.6, 4.6.1, 4.6.2, 4.7 |
|
Windows Server 2008 |
|
.NET framework 2.0 |
|
.NET framework 4.5.2 |
|
.NET framework 4.6 |
Ισχύει για
Αυτό το άρθρο ισχύει για τα ακόλουθα προϊόντα, όπως περιγράφεται στην ενότητα Που επηρεάζονται τα προϊόντα της CVE-2017-0160:
Microsoft .NET Framework 2.0, 3.5, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7 σε όλες τις υποστηριζόμενες εκδόσεις των Windows που εκτελείται PowerShell 3.0 και νεότερες εκδόσεις.