Zusammenfassung
Nachdem Sie die im Microsoft-Leitfaden für Sicherheitsupdates CVE-2017-0160 beschriebenen Sicherheitsupdates vom April 2017 angewendet haben, schlägt der PowerShell v3.0+-Befehl stop-computer fehl. Wenn darüber hinaus Anwendungen Energieverwaltungsmethoden wie beispielsweise Herunterfahren oder Neustart in der Win32_OperatingSystem-Klasse verwenden und das EnablePrivileges-Attribute auf „True“ festgelegt wird, wird möglicherweise dieselbe Fehlermeldung angezeigt. Die Fehlermeldung „Berechtigung wurde aufgehoben“ wird angezeigt.
Weitere Informationen
Problembeschreibung für Problem 1
Kunden, die versuchen, ein lokales System oder ein Remotesystem mithilfe des Befehls stop-computer in PowerShell v3.0 und höher auszuschalten oder neu zu starten, wird folgende Fehlermeldung angezeigt:
stop-computer : Privilege not held.
At line:1 char:1
+ stop-computer
+ ~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (<COMPUTERNAME>:String) [Stop-Computer], ManagementE
+ FullyQualifiedErrorId : StopComputerException,Microsoft.PowerShell.Commands.StopComputerCommand
Problemumgehung für Problem 1
Um dieses Problem zu umgehen, führen Sie den folgenden Befehl “shutdown.exe” aus, um Ausschalt- und Neustartvorgänge für lokale Systeme oder Remotesysteme durchzuführen:
shutdown.exe [-r] [-s] [-m \\computer]
Führen Sie folgenden Befehl aus, um weitere Informationen und Hilfe zu diesem Befehl zu erhalten:
shutdown.exe -?
Problembeschreibung für Problem 2
Kundenanwendungen, die Energieverwaltungsmethoden wie beispielsweise Herunterfahren oder Neustart in der Win32_OperatingSystem-Klasse verwenden und für die das EnablePrivileges-Attribute auf „True“ festgelegt wird, wird möglicherweise dieselbe Fehlermeldung „Berechtigung wurde aufgehoben“ angezeigt.
-
Beispiel 1 (PowerShell) gibt die Fehlermeldung „Berechtigung wurde aufgehoben“ zurück:
$computername= "." $win32OS = get-wmiobject win32_operatingsystem -computername $computername $win32OS.psbase.Scope.Options.EnablePrivileges = $true $win32OS.reboot()-
Beispiel 2 (C#-Code) gibt die Fehlermeldung „Berechtigung wurde aufgehoben“ zurück:
[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); } }
-
Problemumgehung für Problem 2
-
Für Beispiel 1 (PowerShell):
$computername= "." $win32OS = get-wmiobject win32_operatingsystem -computername $computername -EnableAllPrivileges $win32OS.reboot() -
Für Beispiel 2 (C#-Code):
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ösung
Lösung für Problem 1
Um dieses Problem zu beheben, installieren Sie das Update für Ihr System nach der folgenden Tabelle.
Betriebssystem |
Update |
Windows Server 2008 |
Für .NET Framework 2.0 installieren Sie das Update 4020511 Für .NET Framework 4.5.2 installieren Sie das Update 4020507 Für .NET Framework 4.6 installieren Sie das Update 4020503 |
Windows 7 und Windows Server 2008 R2 |
Für .NET Framework 3.5.1 installieren Sie das Update 4020513 Für .NET Framework 4.5.2 installieren Sie das Update 4020507 Für .NET Framework 4.6 oder 4.6.1 installieren Sie das Update 4020503 Für .NET Framework 4.6.2 installieren Sie das Update 4020500 |
Windows Server 2012 |
Für .NET Framework 3.5 installieren Sie das Update 4020512 Für .NET Framework 4.5.2 installieren Sie das Update 4020506 Für .NET Framework 4.6 oder 4.6.1 installieren Sie das Update 4020501 Für .NET Framework 4.6.2 installieren Sie das Update 4020498 |
Windows 8.1 und Windows Server 2012 R2 |
Für .NET Framework 3.5 installieren Sie das Update 4020514 Für .NET Framework 4.5.2 installieren Sie das Update 4020505 Für .NET Framework 4.6 oder 4.6.1 installieren Sie das Update 4020502 Für .NET Framework 4.6.2 installieren Sie das Update 4020499 |
Windows 10 RTM |
Installieren von Update 4019474 |
Windows 10 Version 1511 |
Installieren von Update 4019473 |
Windows 10 Version 1607 und Windows Server 2016 |
Installieren von Update 4019472 |
Windows 10 Version 1703 |
Installieren von Update 4016871 |
Lösung für Problem 2
Um dieses Problem zu beheben, installieren Sie das Update für Ihr System nach der folgenden Tabelle.
Produktversion |
KB-Artikel mit Vorschau des Qualitätsrollups |
---|---|
Windows 10 Update 1703 (RS2) Windows Server 2016 |
|
.NET Framework 4.7 |
|
Windows 10 Update 1607 Windows Server 2016 |
|
.NET Framework 3.5 |
Katalog 4034661 |
.NET Framework 4.6.2 und 4.7 |
Katalog 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 |
Hinweis Ein Update von .NET Framework 3.5 für Windows 10 Version 1703 ist für einen späteren Zeitpunkt geplant.
Die Informationen in diesem Artikel beziehen sich auf
Die Informationen in diesem Artikel beziehen sich auf die folgenden Produkte gemäß der Beschreibung im Abschnitt Betroffene Produkte in CVE-2017-0160:
Microsoft .NET Framework 2.0, 3.5, 4.5.2, 4.6, 4.6.1, 4.6.2 und 4.7 unter allen unterstützten Windows-Versionen mit PowerShell 3.0 und höheren Versionen.