요약

Microsoft 보안 업데이트 지침 CVE-2017-0160에 설명된 2017년 4월 보안 업데이트를 적용한 후 PowerShell v3.0+ stop-computer 명령이 실패합니다. 또한 응용 프로그램에서 Win32_OperatingSystem 클래스에서 종료 및 재부팅 같은 전원 관리 방법을 사용하고 EnablePrivileges 특성을 true로 설정하는 경우에도 동일하게 실패할 수 있습니다. “권한 없음” 오류 메시지가 반환됩니다.

추가 정보

문제 1에 대한 증상:

PowerShell v3.0 이상에서 stop-computer 명령을 사용하여 로컬 또는 원격 시스템을 끄거나 다시 시작하려는 고객에게 다음과 같은 오류 메시지가 나타납니다.

stop-computer : 사용 권한을 가지고 있지 않습니다.

At line:1 char:1

+ stop-computer

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

+ CategoryInfo : InvalidOperation: (<COMPUTERNAME>:String) [Stop-Computer], 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 설치

.NET Framework 4.6 또는 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 설치

.NET Framework 4.6 또는 4.6.1의 경우 업데이트 4020502 설치

.NET Framework 4.6.2의 경우 업데이트 4020499 설치

Windows 10 RTM

업데이트 4019474 설치

Windows 10 버전 1511

업데이트 4019473 설치

Windows 10 버전 1607 및 Windows Server 2016

업데이트 4019472 설치

Windows 10 버전 1703

업데이트 4016871 설치

문제 2에 대한 해결 방법

이 문제를 해결하려면 사용 중인 시스템에 따라 아래 표에 나와 있는 업데이트를 설치하십시오.

제품 버전

품질 롤업 KB 미리 보기

Windows 10 업데이트 1703(RS2)
Windows Server 2016

카탈로그
4034674

.NET Framework 4.7

4034674

Windows 10 업데이트 1607
Windows Server 2016


 

.NET Framework 3.5

카탈로그
4034661

.NET Framework 4.6.2 및 4.7

카탈로그
4034658

Windows 8.1
Windows RT 8.1
Windows Server 2012 R2

카탈로그
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

카탈로그
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

카탈로그
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

카탈로그
4035039

.NET Framework 2.0

4033994

.NET Framework 4.5.2

4033993

.NET Framework 4.6

4033990

참고 Windows 10 버전 1703용 .NET Framework 3.5 업데이트는 향후 업데이트에 발표될 예정입니다.

적용 대상

이 문서의 내용은 CVE-2017-0160영향받는 제품 절에 설명된 다음 제품에 적용됩니다.

PowerShell 3.0 이상 버전이 실행되는 모든 지원되는 Windows 버전의 Microsoft .NET Framework 2.0, 3.5, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7

 

추가 도움이 필요하신가요?

기술 향상
교육 살펴보기
새로운 기능 우선 가져오기
Microsoft Insider 참가

이 정보가 유용한가요?

언어 품질에 얼마나 만족하시나요?
사용 경험에 어떠한 영향을 주었나요?

의견 주셔서 감사합니다!

×