Samenvatting
Nadat u de beveiligingsupdates voor April 2017 wordt beschreven in Microsoft security update-instructies CVE-2017-0160 , de PowerShell v3.0 + stop opdracht computer mislukt. Als toepassingen met power management methoden, zoals afsluiten of opnieuw opstarten van de klasse Win32_OperatingSystem en het kenmerk EnablePrivileges ingesteld op true, kunnen zij bovendien dezelfde storing zien. Een foutbericht "Niet bevoegd".
Meer informatie
Symptomen voor probleem 1
Klanten die u wilt uitschakelen of opnieuw opstarten van een systeem, lokaal of extern, met de opdracht stop computer op PowerShell v3.0 en hoger, verschijnt het volgende foutbericht:
Stop-computer: niet bevoegd.
Op regel 1: char: 1
+ stop-computer
+ ~~~~~~~~~~~~~
+ CategoryInfo: InvalidOperation: (< computernaam >: String) [Stop-Computer] ManagementE
+ FullyQualifiedErrorId: StopComputerException,Microsoft.PowerShell.Commands.StopComputerCommand
Oplossing voor probleem 1
Om dit probleem te omzeilen, voert u de opdracht "shutdown.exe" uitvoeren uitschakelen en opnieuw opstarten van bewerkingen op lokale of externe systemen:
Shutdown.exe [-r] [-s] [-m \\computer]
Help voor meer informatie en de opdracht, worden uitgevoerd:
shutdown.exe -?
Symptomen voor uitgifte 2
Klant toepassingen met behulp van power management methoden, zoals het afsluiten of opnieuw opstarten van de klasse Win32_OperatingSystem en stelt u het kenmerk EnablePrivileges op true, kunnen zich het probleem 'Niet bevoegdheid'.
-
Voorbeeld 1 (PowerShell) retourneert de fout 'Niet bevoegd':
$computername= "." $win32OS = get-wmiobject win32_operatingsystem -computername $computername $win32OS.psbase.Scope.Options.EnablePrivileges = $true $win32OS.reboot()-
Voorbeeld 2 (C#-code) retourneert de fout 'Niet bevoegd':
[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); } }
-
Oplossing voor probleem 2
-
Voorbeeld 1 (PowerShell):
$computername= "." $win32OS = get-wmiobject win32_operatingsystem -computername $computername -EnableAllPrivileges $win32OS.reboot() -
Voorbeeld 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"]); } } } }
Oplossing
Oplossing voor probleem 1
Installeer de update in de tabel hieronder volgens het systeem dit probleem op te lossen.
Besturingssysteem |
Update |
Windows Server 2008 |
Voor het .NET Framework 2.0 update installeren 4020511 Update voor het .NET Framework 4.5.2, installeren 4020507 Voor het .NET Framework 4.6, update installeren 4020503 |
Windows 7 en Windows Server 2008 R2 |
Voor het .NET Framework 3.5.1 installeren 4020513 bijwerken Voor het .NET Framework 4.5.2 update installeren 4020507 Voor het .NET Framework 4.6 of 4.6.1, installeert update 4020503 Voor het installeren van .NET Framework 4.6.2, , 4020500 bijwerken |
Windows Server 2012 |
Voor het .NET Framework 3.5, installeert update 4020512 Voor het .NET Framework 4.5.2 update installeren 4020506 Installatie werk voor het .NET Framework 4.6 of 4.6.1, , 4020501 Voor het installeren van .NET Framework 4.6.2, , 4020498 bijwerken |
Windows 8.1 en Windows Server 2012 R2 |
.NET Framework 3.5 installeren 4020514 bijwerken Voor het .NET Framework 4.5.2 update installeren 4020505 Installatie werk voor het .NET Framework 4.6 of 4.6.1, , 4020502 Voor het installeren van .NET Framework 4.6.2, , 4020499 bijwerken |
Windows 10 RTM |
Installeer update 4019474 |
Windows 10 versie 1511 |
Installeer update 4019473 |
1607-versie van Windows 10 en Windows Server 2016 |
Installeer update 4019472 |
Windows 10 versie 1703 |
Installeer update 4016871 |
Oplossing voor probleem 2
Installeer de update in de tabel hieronder volgens het systeem dit probleem op te lossen.
Versie van het product |
Voorbeeld van kwaliteit updatepakket KB |
---|---|
Windows 10 Update 1703 (RS2) Windows Server 2016 |
|
.NET framework 3.5 |
|
.NET framework 4.7 |
|
Windows 10 Update 1607 Windows Server 2016 |
|
.NET framework 3.5 |
Catalog 4034661 |
.NET framework 4.6.2 en 4.7 |
Catalog 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 |
Van toepassing op
Dit artikel is van toepassing op de volgende producten, zoals beschreven in de sectie Producten waarin dit probleem optreedt van CVE-2017-0160:
Microsoft .NET Framework 2.0, 3.5, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7 op alle ondersteunde versies van Windows PowerShell 3.0 en latere versies.