Ringkasan
Setelah Anda menerapkan pembaruan keamanan April 2017 dijelaskan dalam panduan pemutakhiran keamanan Microsoft CVE 2017 0160 , v3.0 + komputer berhenti perintah PowerShell gagal. Selain itu, jika aplikasi menggunakan metode manajemen daya, seperti mematikan atau menghidupkan ulang, dari kelas Win32_OperatingSystem dan menetapkan atribut EnablePrivileges true, mereka dapat mengamati kegagalan yang sama. Pesan galat "Hak tidak disimpan" dikembalikan.
Informasi lebih lanjut
Gejala untuk masalah 1
Pelanggan yang mencoba untuk mematikan atau memulai ulang sistem, lokal atau jauh, dengan menggunakan perintah komputer berhenti PowerShell v3.0 dan kemudian, akan melihat galat berikut ini:
komputer berhenti: hak tidak disimpan.
Baris: 1 char: 1
+ stop-komputer
+ ~~~~~~~~~~~~~
+ CategoryInfo: InvalidOperation: (< COMPUTERNAME >: String) [Stop-komputer], ManagementE
+ FullyQualifiedErrorId: StopComputerException,Microsoft.PowerShell.Commands.StopComputerCommand
Penyelesaian masalah 1
Untuk mengatasi masalah ini, jalankan perintah berikut "shutdown.exe" untuk menjalankan kekuatan-down dan restart operasi pada sistem lokal atau jauh:
shutdown.exe [-r] [-s] [-m \\computer]
Untuk informasi lebih lanjut dan perintah bantuan, jalankan:
shutdown.exe -?
Gejala untuk masalah 2
Pelanggan aplikasi menggunakan metode manajemen daya, seperti mematikan atau menghidupkan ulang, dari kelas Win32_OperatingSystem dan menetapkan atribut EnablePrivileges true, dapat mengamati "Hak tidak disimpan" kesalahan yang sama.
-
Contoh 1 (PowerShell) mengembalikan galat "Hak tidak disimpan":
$computername= "." $win32OS = get-wmiobject win32_operatingsystem -computername $computername $win32OS.psbase.Scope.Options.EnablePrivileges = $true $win32OS.reboot()-
Contoh 2 (C# kode) mengembalikan galat "Hak tidak disimpan":
[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); } }
-
Penyelesaian masalah 2
-
Contoh 1 (PowerShell):
$computername= "." $win32OS = get-wmiobject win32_operatingsystem -computername $computername -EnableAllPrivileges $win32OS.reboot() -
Sebagai contoh 2 (C# kode):
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"]); } } } }
Pemecahan masalah
Penyelesaian untuk masalah 1
Untuk mengatasi masalah ini, instal pemutakhiran di tabel berikut sesuai sistem Anda.
Sistem operasi |
Pemutakhiran |
Windows Server 2008 |
Untuk .NET Framework 2.0, menginstal pemutakhiran 4020511 Untuk .NET Framework 4.5.2, menginstal pemutakhiran 4020507 Untuk .NET Framework 4.6, menginstal pemutakhiran 4020503 |
Windows 7 dan Windows Server 2008 R2 |
.NET Framework 3.5.1, instal pemutakhiran 4020513 .NET Framework 4.5.2, instal pemutakhiran 4020507 Untuk .NET Framework 4.6 atau 4.6.1, instal pemutakhiran 4020503 .NET Framework 4.6.2, instal pemutakhiran 4020500 |
Windows Server 2012 |
Untuk .NET Framework 3.5, instal pemutakhiran 4020512 .NET Framework 4.5.2, instal pemutakhiran 4020506 Untuk .NET Framework 4.6 atau 4.6.1, instal pemutakhiran 4020501 .NET Framework 4.6.2, instal pemutakhiran 4020498 |
Windows 8.1 dan Windows Server 2012 R2 |
Untuk .NET Framework 3.5, instal pemutakhiran 4020514 .NET Framework 4.5.2, instal pemutakhiran 4020505 Untuk .NET Framework 4.6 atau 4.6.1, instal pemutakhiran 4020502 .NET Framework 4.6.2, instal pemutakhiran 4020499 |
Windows 10 RTM |
Instal pemutakhiran 4019474 |
10 Windows versi 1511 |
Instal pemutakhiran 4019473 |
10 Windows versi 1607, dan Windows Server 2016 |
Instal pemutakhiran 4019472 |
10 Windows versi 1703 |
Instal pemutakhiran 4016871 |
Penyelesaian untuk masalah 2
Untuk mengatasi masalah ini, instal pemutakhiran di tabel berikut sesuai sistem Anda.
Versi produk |
Pratinjau kualitas Batal KB |
---|---|
Pemutakhiran Windows 10 1703 (RS2)
|
|
.NET framework 3.5 |
|
.NET framework 4.7 |
|
Pemutakhiran Windows 10 1607
|
|
.NET framework 3.5 |
Catalog
|
.NET framework 4.6.2 dan 4,7 |
Catalog
|
Windows 8.1
|
|
.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
|
|
.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 |
Berlaku untuk
Artikel ini berlaku untuk produk-produk berikut ini, seperti yang dijelaskan di bagian Produk terpengaruhCVE 2017 0160:
Microsoft .NET Framework 2.0, 3.5, 4.5.2 4.6, 4.6.1, 4.6.2, 4,7 pada semua versi yang didukung Windows PowerShell 3.0 dan versi yang lebih baru.