Sammanfattning

När du har installerat säkerhetsuppdateringar för April 2017 som beskrivs i Microsoft security update vägledning 0160-CVE-2017 , PowerShell v3.0 + stop-dator misslyckas kommandot. Om program använder power management-metoder, till exempel avstängning eller omstart från klassen Win32_OperatingSystem och attributet EnablePrivileges till true, kan de se att samma fel. Felmeddelandet ”Privilegium saknas” returneras.

Mer information

Symptom på problem 1

Kunder som försöker stänga av eller starta om en lokal eller fjärransluten system med hjälp av kommandot stop-dator på PowerShell version 3.0 och senare, visas följande felmeddelande:

stoppa datorn: Privilegium saknas.

På rad: 1 tecken: 1

+ stop-dator

+ ~~~~~~~~~~~~~

+ CategoryInfo: InvalidOperation: (< datornamn >: String) [Stop-dator] ManagementE

+ FullyQualifiedErrorId: StopComputerException,Microsoft.PowerShell.Commands.StopComputerCommand

Lösning på problem 1

Undvik problemet genom att köra kommandot ”shutdown.exe” köra avstängning och omstart operationer på lokala datorer eller fjärrdatorer:

Shutdown.exe [-r] [-s] [-m \\computer]

Mer information och kommandot hjälp, kör:

shutdown.exe -?

Symptom på problem 2

Kund program med power management-metoder, till exempel avstängning eller omstart från klassen Win32_OperatingSystem och attributet EnablePrivileges till true, kanske samma ”privilegium finns inte” fel.

  • Exempel 1 (PowerShell) returnerar ”Privilegium saknas” fel:   $computername= "." $win32OS = get-wmiobject win32_operatingsystem -computername $computername $win32OS.psbase.Scope.Options.EnablePrivileges = $true $win32OS.reboot()

    • Exempel 2 (C#-kod) returnerar ”Privilegium saknas” fel:   [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); } }

Lösning på problem 2

  • Exempel 1 (PowerShell):   $computername= "." $win32OS = get-wmiobject win32_operatingsystem -computername $computername -EnableAllPrivileges $win32OS.reboot()

  • Exempel 2 (C#-kod):   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"]); } } } }

Lösning

Lösning på problem 1

Lös problemet genom att installera uppdateringen i tabellen nedan enligt systemet.

Operativsystem

Uppdatering

Windows Server 2008

För the.NET Framework 2.0, installera uppdateringen 4020511

För the.NET Framework 4.5.2, installera uppdateringen 4020507

För the.NET Framework 4.6, installera uppdateringen 4020503

Windows 7 och Windows Server 2008 R2

För.NET Framework 3.5.1 Installera uppdatera 4020513

För att installera.NET Framework 4.5.2, uppdatera 4020507

För the.NET Framework 4.6 och 4.6.1, installera uppdateringen 4020503

För att installera.NET Framework 4.6.2, uppdatera 4020500

Windows Server 2012

För the.NET Framework 3.5, installera uppdateringen 4020512

För att installera.NET Framework 4.5.2, uppdatera 4020506

För.NET Framework 4.6 och 4.6.1 Installera uppdatera 4020501

För att installera.NET Framework 4.6.2, uppdatera 4020498

Windows 8.1 och Windows Server 2012 R2

För.NET Framework 3.5, installera uppdatera 4020514

För att installera.NET Framework 4.5.2, uppdatera 4020505

För.NET Framework 4.6 och 4.6.1 Installera uppdatera 4020502

För att installera.NET Framework 4.6.2, uppdatera 4020499

Windows 10 RTM

Installera uppdatering 4019474

Windows 10 version 1511

Installera uppdatering 4019473

Windows 10 version 1607 och Windows Server 2016

Installera uppdatering 4019472

Windows 10 version 1703

Installera uppdatering 4016871

Lösning på problem 2

Lös problemet genom att installera uppdateringen i tabellen nedan enligt systemet.

Produktversion

Förhandsgranskning av kvalitet samlade KB

Uppdatering för Windows 10 1703 (RS2) Windows Server 2016

Katalog 4034674

.NET Framework 3.5

Katalog 4038788

.NET Framework-4.7

4034674

Uppdatering för Windows 10 1607 Windows Server 2016

 

.NET Framework 3.5

Catalog 4034661

.NET Framework 4.6.2 och 4.7

Catalog 4034658

Windows 8.1 Windows RT 8.1Windows 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

Gäller för

Den här artikeln gäller följande produkter enligt beskrivningen i avsnittet Produkter som påverkas av CVE-2017-0160:

Microsoft.NET Framework 2.0, 3,5, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7 i alla versioner av Windows PowerShell 3.0 och senare versioner som stöds.

 

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.