Özet
Microsoft güvenlik güncelleştirmesi kılavuzunda açıklanan Nisan 2017 güvenlik güncelleştirmeleri uygulandıktan sonra CVE 2017 0160 , PowerShell v3.0 + Dur computer komutu başarısız olur. Ayrıca, uygulamaları kapatma veya yeniden başlatma Win32_OperatingSystem sınıfında gibi güç yönetimi yöntemlerini kullanın ve EnablePrivileges özniteliği true olarak ayarlamak, bunlar aynı hatayı farketmiş. "Alınmayan ayrıcalık" hata iletisi döndürülür.
Daha fazla bilgi
Sorun 1 için Belirtiler
Kapatmak veya PowerShell v3.0 ve daha sonra bilgisayar stop komutunu kullanarak yerel veya uzak bir sistem yeniden deneyin müşteriler aşağıdaki hata görürsünüz:
Bilgisayar DUR: Ayrıcalık tutulmadı.
Satır: 1 karakter: 1
+ Dur-bilgisayar
+ ~~~~~~~~~~~~~
+ CategoryInfo: InvalidOperation: (< bilgisayaradı >: dize) [Stop-bilgisayar] ManagementE
+ FullyQualifiedErrorId: StopComputerException,Microsoft.PowerShell.Commands.StopComputerCommand
Sorun 1'için geçici çözüm
Bu soruna geçici bir çözüm için aşağıdaki "shutdown.exe" komutu kapanma yürütmek ve yerel veya uzak sistemlerde işlemlerini yeniden çalıştırın:
Shutdown.exe [-r] [-s] [-m \\computer]
Daha fazla bilgi ve komut için Yardım, çalıştırın:
shutdown.exe -?
Sorun 2 için Belirtiler
Müşteri uygulamaları kapatma veya yeniden başlatma Win32_OperatingSystem sınıfında gibi güç yönetimi yöntemleri kullanarak ve EnablePrivileges özniteliği true olarak ayarlamak, aynı "Ayrıcalık tutulmadı" hata gözlemlemek.
-
Örnek 1 (PowerShell) "alınmayan ayrıcalık" hata verir:
$computername= "." $win32OS = get-wmiobject win32_operatingsystem -computername $computername $win32OS.psbase.Scope.Options.EnablePrivileges = $true $win32OS.reboot()-
Örnek 2 (C# kodu) "alınmayan ayrıcalık" hata döndürür:
[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); } }
-
Sorun 2'için geçici çözüm
-
Örneğin 1 (PowerShell):
$computername= "." $win32OS = get-wmiobject win32_operatingsystem -computername $computername -EnableAllPrivileges $win32OS.reboot() -
Örneğin 2 (C# kodu):
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"]); } } } }
Çözüm
Sorun 1 için çözüm
Bu sorunu gidermek için sisteminize göre aşağıdaki tabloda güncelleştirmeyi yükleyin.
İşletim Sistemi |
Güncelleştirme |
Windows Server 2008 |
İçin .NET Framework güncelleştirmesini 2.0 4020511 Güncelleştirmeyi yüklemek için .NET Framework 4.5.2, 4020507 İçin .NET Framework güncelleştirmesini 4.6, 4020503 |
Windows 7 ve Windows Server 2008 R2 |
.NET Framework 3.5.1, yüklemek için 4020513 güncelleştirme 4.5.2, .NET Framework yüklemeniz için 4020507 güncelleştirme .NET Framework 4.6 veya 4.6.1, 4020503 güncelleştirmesini yükleyin. 4.6.2, .NET Framework yüklemeniz için 4020500 güncelleştirme |
Windows Server 2012 |
İçin .NET Framework 4020512 güncelleştirmesini yükleyin 3.5, 4.5.2, .NET Framework yüklemeniz için 4020506 güncelleştirme .NET Framework 4.6 veya 4.6.1 için 4020501 güncelleştirme yükleme 4.6.2, .NET Framework yüklemeniz için 4020498 güncelleştirme |
8.1 Windows ve Windows Server 2012 R2 |
.NET Framework 3.5 için güncelleştirme yükleme 4020514 4.5.2, .NET Framework yüklemeniz için 4020505 güncelleştirme .NET Framework 4.6 veya 4.6.1 için 4020502 güncelleştirme yükleme 4.6.2, .NET Framework yüklemeniz için 4020499 güncelleştirme |
10 Windows RTM |
|
Windows 10 sürüm 1511 |
|
Windows 10 1607 sürümü ve Windows Server 2016 |
|
Windows 10 sürüm 1703 |
Sorun 2 için çözüm
Bu sorunu gidermek için sisteminize göre aşağıdaki tabloda güncelleştirmeyi yükleyin.
Ürün sürümü |
Önizleme kalitesi toplama KB |
---|---|
10 Windows Update 1703 (RS2)
|
|
.NET framework 3.5 |
|
.NET framework 4.7 |
|
10 Windows Update 1607
|
|
.NET framework 3.5 |
Catalog
|
.NET framework 4.6.2 ve 4.7 |
Catalog
|
Windows 8.1
|
|
.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
|
|
.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 |
Şunun için geçerlidir:
Bu makale CVE 2017 0160: Etkilenen yazılımlar bölümünde açıklandığı şekilde aşağıdaki ürünler için geçerlidir
Microsoft .NET Framework 2.0, 3.5, 4.5.2, 4.6, 4.6.1, 4.6.2, Windows PowerShell 3.0 ve sonraki sürümlerini çalıştıran tüm desteklenen sürümleri üzerinde 4.7.