סיכום
לאחר החלת עדכוני האבטחה 2017 באפריל המתוארות בהנחיות לגבי עדכון אבטחה של Microsoft CVE-2017-0160 , PowerShell גירסה 3.0 + מחשב עצירה הפקודה תיכשל. בנוסף, אם להשתמש בשיטות ניהול צריכת חשמל, כגון כיבוי או אתחול מחדש, מהמחלקה Win32_OperatingSystem ויישומים להגדיר את תכונת EnablePrivileges כ- true, הם עשויים לצפות הכשל אותו. הודעת שגיאה "לא קיימת הרשאה" מוחזרת.
מידע נוסף
סימפטומים לבעיה 1
לקוחות אשר מנסים לכבות או להפעיל מחדש את המערכת, מקומי או מרוחק, באמצעות הפקודה stop-מחשב ב- PowerShell גירסה 3.0 ומעלה, תופיע השגיאה הבאה:
המחשב עצירה: לא קיימת הרשאה.
בתו קו: 1:1
+ מחשב עצירה
+ ~~~~~~~~~~~~~
+ CategoryInfo: InvalidOperation: (< COMPUTERNAME >: מחרוזת) [Stop-מחשב], ManagementE
+ FullyQualifiedErrorId: StopComputerException,Microsoft.PowerShell.Commands.StopComputerCommand
לעקיפת בעיה 1
כדי לעקוף בעיה זו, הפעל את הפקודה "shutdown.exe" הבאה כדי להפעיל כוח כלפי מטה ולהפעיל מחדש את פעולות במערכות מקומי או מרוחק:
shutdown.exe [-r] [-s] [-m \\computer]
לקבלת מידע נוסף הפקודה עזרה, להפעיל:
shutdown.exe -?
סימפטומים לבעיה 2
לקוח יישומים באמצעות שיטות ניהול צריכת חשמל, כגון כיבוי או אתחול מחדש, מהמחלקה Win32_OperatingSystem להגדיר את תכונת EnablePrivileges כ- true, ייתכן לבחון את אותה שגיאה "הרשאה אינה נכללת".
-
דוגמה 1 (PowerShell) מחזירה שגיאה "לא קיימת הרשאה":
$computername= "." $win32OS = get-wmiobject win32_operatingsystem -computername $computername $win32OS.psbase.Scope.Options.EnablePrivileges = $true $win32OS.reboot()-
דוגמה 2 (C# קוד) מחזירה שגיאה "לא קיימת הרשאה":
[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); } }
-
לעקיפת בעיה 2
-
לדוגמה 1 (PowerShell):
$computername= "." $win32OS = get-wmiobject win32_operatingsystem -computername $computername -EnableAllPrivileges $win32OS.reboot() -
לדוגמה 2 (C# קוד):
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"]); } } } }
פתרון
הפתרון עבור בעיה 1
כדי לפתור בעיה זו, התקן את העדכון בטבלה להלן בהתאם למערכת שלך.
מערכת ההפעלה |
עדכון |
Windows Server 2008 |
עבור .NET Framework 2.0, התקנת עדכון 4020511 עבור .NET Framework 4.5.2, התקנת עדכון 4020507 עבור .NET Framework 4.6, התקנת עדכון 4020503 |
Windows 7 ו-Windows Server 2008 R2 |
עבור .NET Framework 3.5.1, התקנת עדכון 4020513 עבור .NET Framework 4.5.2, התקנת עדכון 4020507 עבור .NET Framework 4.6 או 4.6.1, התקן את עדכון 4020503 עבור .NET Framework 4.6.2, התקנת עדכון 4020500 |
Windows Server 2012 |
עבור .NET Framework 3.5, התקן את עדכון 4020512 עבור .NET Framework 4.5.2, התקנת עדכון 4020506 לקבלת 4.6 Framework של .NET או 4.6.1, התקנת עדכון 4020501 עבור .NET Framework 4.6.2, התקנת עדכון 4020498 |
Windows 8.1 ו-Windows Server 2012 R2 |
עבור .NET Framework 3.5, התקנת עדכון 4020514 עבור .NET Framework 4.5.2, התקנת עדכון 4020505 לקבלת 4.6 Framework של .NET או 4.6.1, התקנת עדכון 4020502 עבור .NET Framework 4.6.2, התקנת עדכון 4020499 |
RTM של windows 10 |
התקנת עדכון 4019474 |
10 Windows גירסה 1511 |
התקנת עדכון 4019473 |
10 Windows גירסה 1607, ו- Windows Server 2016 |
התקנת עדכון 4019472 |
10 Windows גירסה 1703 |
התקנת עדכון 4016871 |
הפתרון עבור בעיה 2
כדי לפתור בעיה זו, התקן את העדכון בטבלה להלן בהתאם למערכת שלך.
גירסת המוצר |
תצוגה מקדימה של סיכום איכות קילו-בתים |
---|---|
עדכון Windows 10 1703 (RS2)
|
|
.NET framework 3.5 |
|
.NET framework 4.7 |
|
עדכון Windows 10 1607
|
|
.NET framework 3.5 |
Catalog
|
.NET framework 4.6.2 ו- 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 |
חל על
מאמר זה חל על המוצרים הבאים, כמתואר בסעיף ' מוצרים מושפעים ' של CVE-2017-0160:
Microsoft .NET Framework 2.0, 3.5, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7 בכל הגירסאות הנתמכות של Windows פועל PowerShell 3.0 ובגירסאות מאוחרות יותר.