Lỗi khi cài đặt window powershell

Tóm tắt

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ề.

Thông tin khác

Hiện tượng cho vấn đề 1

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

Giải pháp cho vấn đề 1

Để 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 -?

Hiện tượng cho vấn đề 2

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":
      $computername= "." $win32OS = get-wmiobject win32_operatingsystem -computername $computername $win32OS.psbase.Scope.Options.EnablePrivileges = $true $win32OS.reboot[]

    • Ví dụ 2 [C# mã] trả về lỗi "Không giữ quyền":
        [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

  • Ví dụ 1 [PowerShell]:
      $computername= "." $win32OS = get-wmiobject win32_operatingsystem -computername $computername -EnableAllPrivileges $win32OS.reboot[]

  • Ví dụ 2 [C# mã]:
      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 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 pháp cho vấn đề 2

Để 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.

Phiên bản sản phẩm

Xem chất lượng Nhật KB

Bản cập nhật Windows 10 1703 [RS2]
Windows Server 2016

Danh mục
4034674

.NET framework 3.5

Danh mục
4038788

.NET framework 4.7

4034674

Bản cập nhật Windows 10 1607
Windows Server 2016

.NET framework 3.5

Catalog
4034661

.NET framework 4.6.2 và 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

Á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ợ.

Cần thêm trợ giúp?

Chủ Đề