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)
|
|
.NET Framework 3.5 |
|
.NET Framework-4.7 |
|
Uppdatering för Windows 10 1607
|
|
.NET Framework 3.5 |
Catalog
|
.NET Framework 4.6.2 och 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 |
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.