Sammendrag

Når du har brukt April 2017 sikkerhetsoppdateringene som er beskrevet i Microsoft security update veiledning CVE-2017 0160 , PowerShell v3.0 + Stopp datamaskin - kommandoen mislykkes. Hvis programmer bruke power management metoder, for eksempel avslutning eller omstart, fra klassen Win32_OperatingSystem og angi EnablePrivileges -attributtet til true, kan de også hende du ser den samme feilen. Feilmeldingen "Ikke privilegium" returneres.

Mer informasjon

Symptomer på problemet 1

Kunder som forsøker å slå av eller starte på nytt system, enten lokalt eller eksternt, ved hjelp av kommandoen stop-datamaskin på PowerShell v3.0 og senere, vises følgende feilmelding:

Stopp-datamaskin: ikke privilegium.

På linje: 1 tegn: 1

+ stop-datamaskin

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

+ CategoryInfo: InvalidOperation: (< DATAMASKINNAVN >: String) Stopp-datamaskin, ManagementE

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

Løsningen på problemet 1

Hvis du vil omgå dette problemet, kjører du kommandoen nedenfor "shutdown.exe" kjøre strøm-ned og starte operasjoner på lokale eller eksterne systemer:

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

For mer informasjon og kommandoen hjelp, kan du kjøre:

shutdown.exe -?

Symptomer på problemet 2

Kunde programmer bruker power management metoder, for eksempel avslutning eller omstart, fra klassen Win32_OperatingSystem og angi EnablePrivileges -attributtet til true, kan følge den samme feilen "Kan ikke holdes".

  • Eksempel 1 (PowerShell) returnerer "Ikke privilegium" feil:   $computername= "." $win32OS = get-wmiobject win32_operatingsystem -computername $computername $win32OS.psbase.Scope.Options.EnablePrivileges = $true $win32OS.reboot()

    • Eksempel 2 (C#-kode) returnerer "Ikke privilegium" feil:   [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øsningen på problemet 2

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

  • For eksempel 2 (C#-kode):   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å problemet 1

Hvis du vil løse dette problemet ved å installere oppdateringen i tabellen nedenfor, i henhold til systemet.

Operativsystemet

Oppdatering

Windows Server 2008

For for .NET Framework 2.0, installerer oppdateringen 4020511

For the .NET Framework 4.5.2, installere oppdateringen 4020507

For the .NET Framework 4.6, installere oppdateringen 4020503

Windows 7 og Windows Server 2008 R2

Installer oppdatering for .NET Framework 3.5.1-funksjoner, 4020513

Installer oppdatering for .NET Framework 4.5.2, 4020507

For .NET Framework 4.6 eller 4.6.1, installere oppdateringen 4020503

Installer oppdatering for .NET Framework 4.6.2, 4020500

Windows Server 2012

For the .NET Framework 3.5, installere oppdateringen 4020512

Installer oppdatering for .NET Framework 4.5.2, 4020506

Installer oppdatering for .NET Framework 4.6 eller 4.6.1, 4020501

Installer oppdatering for .NET Framework 4.6.2, 4020498

Windows 8.1 og Windows Server 2012 R2

Installer oppdatering for .NET Framework 3.5, 4020514

Installer oppdatering for .NET Framework 4.5.2, 4020505

Installer oppdatering for .NET Framework 4.6 eller 4.6.1, 4020502

Installer oppdatering for .NET Framework 4.6.2, 4020499

Windows 10 RTM

Installer oppdatering 4019474

10 for Windows versjon 1511

Installer oppdatering 4019473

10 for Windows versjon 1607 og Windows Server 2016

Installer oppdatering 4019472

10 for Windows versjon 1703

Installer oppdatering 4016871

Løsning på problemet 2

Hvis du vil løse dette problemet ved å installere oppdateringen i tabellen nedenfor, i henhold til systemet.

Produktversjon

Forhåndsvisning av kvalitet samleoppdatering KB

Oppdatering for Windows 10 1703 (RS2) Windows Server 2016

Katalogen 4034674

.NET framework 3.5

Katalogen 4038788

.NET framework 4.7

4034674

Oppdatering for Windows 10 1607 Windows Server 2016

 

.NET framework 3.5

Catalog 4034661

.NET framework 4.6.2 og 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.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-funksjoner

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

Gjelder

Denne artikkelen gjelder for følgende produkter, som beskrevet i delen Berørte produkter i CVE-2017 0160:

Microsoft .NET Framework 2.0, 3,5-tommers, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7 på alle støttede versjoner av Windows kjører PowerShell 3.0 og senere versjoner.

 

Trenger du mer hjelp?

Vil du ha flere alternativer?

Utforsk abonnementsfordeler, bla gjennom opplæringskurs, finn ut hvordan du sikrer enheten og mer.