Galat "Hak tidak disimpan" dengan perintah PowerShell "stop-komputer" dan metode manajemen daya kelas Win32_OperatingSystem: penyelesaian setelah April 2017 pembaruan keamanan dari CVE 2017 0160

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)
Windows Server 2016

Katalog
4034674

.NET framework 3.5

Katalog
4038788

.NET framework 4.7

4034674

Pemutakhiran Windows 10 1607
Windows Server 2016


 

.NET framework 3.5

Catalog
4034661

.NET framework 4.6.2 dan 4,7

Catalog
4034658

Windows 8.1
Windows RT 8.1
Windows Server 2012 R2

Catalog
4035038

.NET framework 3.5

4033997

.NET framework 4.5.2

4033991

.NET framework 4.6, 4.6.1, 4.6.2, 4.7

4033989

Windows Server 2012

Catalog
4035037

.NET framework 3.5

4033995

.NET framework 4.5.2

4033992

.NET framework 4.6, 4.6.1, 4.6.2, 4.7

4033988

Windows 7
Windows Server 2008 R2

Catalog
4035036

.NET framework 3.5.1

4033996

.NET framework 4.5.2

4033993

.NET framework 4.6, 4.6.1, 4.6.2, 4.7

4033990

Windows Server 2008

Catalog
4035039

.NET framework 2.0

4033994

.NET framework 4.5.2

4033993

.NET framework 4.6

4033990

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.

 

Perlu bantuan lainnya?

Kembangkan keterampilan Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung Microsoft Insider

Apakah informasi ini bermanfaat?

Terima kasih atas umpan balik Anda!

Terima kasih atas umpan balik Anda! Sepertinya menghubungkan Anda ke salah satu agen dukungan Office kami akan sangat membantu.

×