Súhrn

Po nainštalovaní aktualizácie zabezpečenia apríla 2017 podľa Microsoft update pokyny CVE-2017-0160 , príkaz prostredia PowerShell verzie 3.0 + zastaviť počítač zlyhá. Okrem toho ak aplikácie pomocou metódy riadenia napájania, ako vypnúť alebo reštartovať z trieda Win32_OperatingSystem a nastaviť atribút EnablePrivileges True uvádzajú rovnaké zlyhania. Chybové hlásenie "Nie je držiteľom oprávnenia".

Ďalšie informácie

Príznaky problému 1

Zákazníci, ktorí skúste vypnúť alebo reštartovať systém lokálny alebo vzdialený, pomocou príkazu stop počítača na PowerShell verzie 3.0 alebo novšej zobrazí nasledujúca chyba:

zastaviť počítač: oprávnenie nie je udelené.

V riadku: 1 char: 1

+ zastaviť počítač

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

Char: InvalidOperation: (< názov počítača >: reťazec) [Stop-Computer] ManagementE

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

Riešenie problému 1

Tento problém obísť, spustite príkaz "shutdown.exe" vypínanie a reštartovanie operácie na lokálnej alebo vzdialenej:

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

Ďalšie informácie a príkaz Pomocníka, spustite:

shutdown.exe -?

Príznaky problému 2

Zákazník aplikácie pomocou metódy riadenia napájania, ako vypnúť alebo reštartovať z trieda Win32_OperatingSystem a nastaviť atribút EnablePrivileges True, pozorovať rovnaké "Oprávnení nie rozhodol" chyba.

  • Príklad 1 (PowerShell) vráti chybu "Oprávnenie nie je udelené":   $computername= "." $win32OS = get-wmiobject win32_operatingsystem -computername $computername $win32OS.psbase.Scope.Options.EnablePrivileges = $true $win32OS.reboot()

    • Príklad 2 (kód C#) vráti chybu "Oprávnenie nie je udelené":   [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); } }

Riešenie problému 2

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

  • Príklad 2 (C# kód):   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"]); } } } }

Riešenie

Riešenie problému 1

Ak chcete vyriešiť tento problém, nainštalujte aktualizáciu v tabuľke nižšie podľa systému.

Operačný systém

Aktualizácia

Windows Server 2008

Pre rozhranie .NET Framework 2.0, nainštalujte aktualizáciu 4020511

Pre rozhranie .NET Framework 4.5.2, nainštalujte aktualizáciu 4020507

Pre rozhranie .NET Framework 4.6, nainštalujte aktualizáciu 4020503

Windows 7 a Windows Server 2008 R2

.NET Framework 3.5.1, nainštalujte aktualizáciu 4020513

.NET Framework 4.5.2, nainštalujte aktualizáciu 4020507

.NET Framework 4.6 alebo 4.6.1, nainštalujte aktualizáciu 4020503

.NET Framework 4.6.2, nainštalujte aktualizáciu 4020500

Windows Server 2012

Pre rozhranie .NET Framework 3.5, nainštalujte aktualizáciu 4020512

.NET Framework 4.5.2, nainštalujte aktualizáciu 4020506

.NET Framework 4.6 alebo 4.6.1, nainštalujte aktualizáciu 4020501

.NET Framework 4.6.2, nainštalujte aktualizáciu 4020498

Windows 8.1 a Windows Server 2012 R2

.NET Framework 3.5, nainštalujte aktualizáciu 4020514

.NET Framework 4.5.2, nainštalujte aktualizáciu 4020505

.NET Framework 4.6 alebo 4.6.1, nainštalujte aktualizáciu 4020502

.NET Framework 4.6.2, nainštalujte aktualizáciu 4020499

Windows 10 RTM

Nainštalujte aktualizáciu 4019474

Windows 10 verzie 1511

Nainštalujte aktualizáciu 4019473

Windows 10 verzií 1607 a Windows Server 2016

Nainštalujte aktualizáciu 4019472

Windows 10 verzií 1703

Nainštalujte aktualizáciu 4016871

Riešenie problému 2

Ak chcete vyriešiť tento problém, nainštalujte aktualizáciu v tabuľke nižšie podľa systému.

Verzia produktu

Ukážka kvality súhrnnej KB

Windows 10 Aktualizácia 1703 (RS2) Windows Server 2016

Katalóg 4034674

.NET framework 3.5

Katalóg 4038788

.NET framework 4.7

4034674

Windows 10 Aktualizácia 1607 Windows Server 2016

 

.NET framework 3.5

Catalog 4034661

Rozhranie .NET framework 4.6.2 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.7, 4.6.1, 4.6.2

4033989

Windows Server 2012

Catalog 4035037

.NET framework 3.5

4033995

.NET framework 4.5.2

4033992

.NET framework 4.6, 4.7, 4.6.1, 4.6.2

4033988

Windows 7 Windows Server 2008 R2

Catalog 4035036

Rozhranie .NET framework 3.5.1

4033996

.NET framework 4.5.2

4033993

.NET framework 4.6, 4.7, 4.6.1, 4.6.2

4033990

Windows Server 2008

Catalog 4035039

.NET framework 2.0

4033994

.NET framework 4.5.2

4033993

.NET framework 4.6

4033990

Vzťahuje sa na

Tento článok sa vzťahuje na nasledujúce produkty opísané v časti Vplyv produktovCVE-2017-0160:

Microsoft .NET Framework 2.0, 3.5 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7 na všetky podporované verzie systému Windows PowerShell 3.0 a v novších verziách.

 

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.