Sau khi bạn áp dụng bản Cập Nhật bảo mật ngày 2017 được mô tả trong hướng dẫn Cập Nhật bảo mật của Microsoft CVE-2017-0160 , v3.0 + máy tính ngừng lệnh PowerShell không thành công. Ngoài ra, nếu ứng dụng sử dụng phương pháp quản lý nguồn điện, chẳng hạn như tắt hoặc khởi động lại, lớp
Win32_OperatingSystem và đặt thuộc tính EnablePrivileges đúng, họ có thể tuân theo cùng một lỗi. Thông báo lỗi "Không giữ quyền" được trả về. Khách hàng phải tắt hoặc khởi động lại hệ thống, địa phương hoặc từ xa, bằng cách sử dụng
máy tính ngừng lệnh PowerShell v3.0 và sau đó sẽ thấy lỗi sau: máy tính dừng: đặc quyền không. Ký tự dòng: 1:1 + máy tính dừng + ~~~~~~~~~~~~~ + CategoryInfo: InvalidOperation: [< tên máy tính >: chuỗi] [dừng máy tính], ManagementE + FullyQualifiedErrorId: StopComputerException,Microsoft.PowerShell.Commands.StopComputerCommand Để khắc phục sự cố này, hãy chạy
lệnh "shutdown.exe" thực thi quyền xuống và khởi động lại trên hệ thống cục bộ hoặc từ xa: shutdown.exe [-r] [/ s] [/ m \\computer] Để biết thêm thông tin và lệnh trợ giúp, hãy chạy: shutdown.exe -? Khách hàng ứng dụng sử dụng phương pháp quản lý nguồn điện, chẳng hạn như tắt hoặc khởi động lại, lớp
Win32_OperatingSystem và thiết lập các thuộc tính EnablePrivileges đúng, có thể quan sát "Đặc quyền không giữ" lỗi tương tự. Ví dụ 1 [PowerShell] trả về lỗi "Không giữ quyền": Ví dụ 2 [C# mã] trả về lỗi "Không giữ quyền": Ví dụ 1 [PowerShell]: Ví dụ 2 [C# mã]: Để giải quyết vấn đề này, cài đặt bản Cập Nhật trong bảng bên dưới theo hệ thống của bạn. Hệ Điều hành Bản Cập Nhật Windows Server 2008 Đối với các .NET Framework 2.0, cài đặt bản Cập Nhật 4020511 Cho .NET Framework 4.5.2, cài đặt bản Cập Nhật 4020507 Đối với các .NET Framework 4.6, cài đặt bản Cập Nhật 4020503 Windows 7 và Windows Server 2008 R2 Để cài đặt .NET Framework 3.5.1, Cập Nhật 4020513 Để cài đặt .NET Framework 4.5.2, Cập Nhật 4020507 Cho .NET Framework 4.6 hoặc 4.6.1, cài đặt bản Cập Nhật 4020503 Để cài đặt .NET
Framework 4.6.2, Cập Nhật 4020500 Windows Server 2012 Cho công .NET Framework 3.5, cài đặt bản Cập Nhật 4020512 Để cài đặt .NET Framework 4.5.2, Cập Nhật 4020506 .NET Framework 4.6 hoặc 4.6.1, cài đặt bản Cập Nhật 4020501 Để cài đặt
.NET Framework 4.6.2, Cập Nhật 4020498 Windows 8.1 và Windows Server 2012 R2 Cho .NET Framework 3.5, cài đặt bản Cập Nhật 4020514 Để cài đặt .NET Framework 4.5.2, Cập Nhật 4020505 .NET Framework 4.6 hoặc 4.6.1, cài đặt bản Cập Nhật 4020502 Để cài đặt .NET
Framework 4.6.2, Cập Nhật 4020499 Windows 10 RTM Cài đặt bản Cập Nhật 4019474 Windows 10 phiên bản 1511 Cài đặt bản Cập Nhật 4019473 Windows 10 phiên bản 1607 và Windows Server 2016 Cài đặt bản Cập Nhật 4019472 Windows 10 phiên bản 1703 Cài đặt bản Cập Nhật 4016871 Để giải quyết vấn đề này, cài đặt bản Cập Nhật trong bảng bên dưới theo hệ thống của bạn.Tóm tắt
Thông tin khác
Hiện tượng cho vấn đề 1
Giải pháp cho vấn đề 1
Hiện tượng cho vấn đề 2
$computername= "." $win32OS = get-wmiobject win32_operatingsystem -computername $computername
$win32OS.psbase.Scope.Options.EnablePrivileges = $true $win32OS.reboot[]
[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]; } } Giải pháp cho vấn đề 2
$computername= "." $win32OS = get-wmiobject win32_operatingsystem -computername $computername -EnableAllPrivileges $win32OS.reboot[]
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"]]; } } } } Giải pháp
Giải pháp cho vấn đề 1
Giải pháp cho vấn đề 2
Bản cập nhật Windows 10 1703 [RS2] | Danh mục |
.NET framework 3.5 | Danh mục |
.NET framework 4.7 | 4034674 |
Bản cập nhật Windows 10 1607 | |
.NET framework 3.5 | Catalog |
.NET framework 4.6.2 và 4.7 | Catalog |
Windows 8.1 | Catalog |
.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 |
.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 | Catalog |
.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 |
.NET framework 2.0 | 4033994 |
.NET framework 4.5.2 | 4033993 |
.NET framework 4.6 | 4033990 |
Áp dụng cho
Bài viết này áp dụng cho các sản phẩm, như được mô tả trong Sản phẩm ảnh hưởng của CVE-2017-0160:
Microsoft .NET Framework 2.0, 3.5 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7 trên tất cả phiên bản Windows PowerShell 3.0 và các phiên bản được hỗ trợ.