Conectați-vă cu Microsoft
Conectați-vă sau creați un cont
Salut,
Selectați un alt cont.
Aveți mai multe conturi
Alegeți contul cu care doriți să vă conectați.

Rezumat

După ce aplicați actualizările de securitate aprilie 2017 descrisă în Ghid de actualizare de securitate Microsoft CVE-2017-0160 , comenzi PowerShell v3.0 + stop computer nu reușește. În plus, dacă aplicațiile utilizează metode de gestionare alimentare, cum ar fi închiderea sau repornirea sistemului, din clasa Win32_OperatingSystem setat atributul EnablePrivileges la true, ele pot observa aceeași eroare. Se returnează un mesaj de eroare "Privilegiu nu a avut loc".

Mai multe informații

Simptome pentru problema 1

Clienții care încercați să dezactivați sau să reporniți un sistem, fie local sau la distanță, utilizând comanda stop computer PowerShell v3.0 și mai târziu, veți vedea următorul mesaj de eroare:

Stop computer: privilegii nu a avut loc.

La linia: 1 char: 1

+ stop-computer

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

+ CategoryInfo: InvalidOperation: (< NUMECOMPUTER >: String) [Stop-Computer], ManagementE

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

Soluție pentru problema 1

Pentru a rezolva această problemă, executați comanda următoare "shutdown.exe" pentru a executa oprire și reporniți operațiuni pe sistemele local sau la distanță:

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

Pentru mai multe informații și comandă ajutor, executați:

shutdown.exe -?

Simptome pentru problema 2

Client aplicațiile cu power management metode, cum ar fi închiderea sau repornirea sistemului, din clasa Win32_OperatingSystem și setat atributul EnablePrivileges la true, poate observa același eroarea "Privilegii nu a avut loc".

  • Exemplu 1 (PowerShell) returnează "Privilegiu nu a avut loc" eroare:
      $computername= "." $win32OS = get-wmiobject win32_operatingsystem -computername $computername $win32OS.psbase.Scope.Options.EnablePrivileges = $true $win32OS.reboot()

    • Exemplu 2 (cod C#) returnează "Privilegiu nu a avut loc" eroare:
        [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); } }

Soluție pentru problema 2

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

  • De exemplu 2 (C# cod):
      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"]); } } } }

Rezolvare

Rezoluţia pentru Problema 1

Pentru a rezolva această problemă, instalați actualizarea în tabelul de mai jos în funcţie de sistemul dvs.

Sistem de operare

Actualizare

Windows Server 2008

Pentru .NET Framework 2.0, instalați actualizarea 4020511

Pentru .NET Framework 4.5.2, instalați actualizarea 4020507

Pentru .NET Framework 4.6, instalați actualizarea 4020503

Windows 7 și Windows Server 2008 R2

Pentru a instala .NET Framework 3.5.1, actualizarea 4020513

Pentru a instala .NET Framework 4.5.2, actualizarea 4020507

Pentru .NET Framework 4.6 sau 4.6.1, instalați actualizarea 4020503

Pentru a instala .NET Framework 4.6.2, actualizarea 4020500

Windows Server 2012

Pentru .NET Framework 3.5, instalați actualizarea 4020512

Pentru a instala .NET Framework 4.5.2, actualizarea 4020506

Pentru .NET Framework 4.6 sau 4.6.1, instalați actualizarea 4020501

Pentru a instala .NET Framework 4.6.2, actualizarea 4020498

Windows 8.1 și Windows Server 2012 R2

Pentru .NET Framework 3.5, instalați actualizarea 4020514

Pentru a instala .NET Framework 4.5.2, actualizarea 4020505

Pentru .NET Framework 4.6 sau 4.6.1, instalați actualizarea 4020502

Pentru a instala .NET Framework 4.6.2, actualizarea 4020499

Windows 10 RTM

Instalați actualizarea 4019474

Windows 10 versiunea 1511

Instalați actualizarea 4019473

Windows 10 versiunea 1607 și Windows Server 2016

Instalați actualizarea 4019472

Windows 10 versiunea 1703

Instalați actualizarea 4016871

Rezoluţia pentru Problema 2

Pentru a rezolva această problemă, instalați actualizarea în tabelul de mai jos în funcţie de sistemul dvs.

Versiune produs

Examinarea calitate set KB

Actualizarea Windows 10 1703 (RS2)
Windows Server 2016

Catalog
4034674

.NET framework 3.5

Catalog
4038788

.NET framework 4,7

4034674

Actualizarea Windows 10 1607
Windows Server 2016


 

.NET framework 3.5

Catalog
4034661

.NET framework 4.6.2 și 4,7

Catalog
4034658

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

Se aplică la

Acest articol se aplică pentru următoarele produse, cum este descris în secțiunea Afectate produseCVE-2017-0160:

Microsoft .NET Framework 2.0, 3.5 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7 din toate versiunile de Windows PowerShell 3.0 şi versiunile ulterioare.

 

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?
Apăsând pe Trimitere, feedbackul dvs. va fi utilizat pentru a îmbunătăți produsele și serviciile Microsoft. Administratorul dvs. IT va avea posibilitatea să colecteze aceste date. Angajamentul de respectare a confidențialității.

Vă mulțumim pentru feedback!

×