メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

概要

Microsoft セキュリティ更新プログラム ガイダンス CVE-2017-0160 で説明されている 2017 年 4 月のセキュリティ更新プログラムを適用した後に、PowerShell v3.0 以降の stop-computer コマンドが失敗します。 また、アプリケーションで Win32_OperatingSystem クラスの shutdown または reboot などの電源管理メソッドを使用し、EnablePrivileges 属性を true に設定している場合にも、同じエラーが発生する可能性があります。 "保有されていない特権" エラー メッセージが返されます。

詳細

問題 1 の現象

PowerShell v3.0 以降でローカルまたはリモートで stop-computer コマンドを実行してシステムをシャットダウンしたり再起動したりすると、次のエラーが表示されます。

stop-computer : 保有されていない特権。

行: 1 文字: 1

+ stop-computer

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

+ CategoryInfo : InvalidOperation: (<コンピューター名>:String) [Stop-Computer], ManagementE

+ FullyQualifiedErrorId : StopComputerException,Microsoft.PowerShell.Commands.StopComputerCommand

問題 1 の回避策

この問題を回避するには、ローカルまたはリモート システムで次の “shutdown.exe” コマンドを実行してシャットダウン操作と再起動操作を実行してください。

shutdown.exe [-r] [-s] [-m \\computer]

詳細とコマンドのヘルプについては、次のコマンドを実行します。 

shutdown.exe -?

問題 2 の現象

ユーザー アプリケーションで Win32_OperatingSystem クラスの shutdown または reboot などの電源管理メソッドを使用し、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 Version 1511

更新プログラム 4019473 をインストールする

Windows 10 バージョン 1607 および Windows Server 2016

更新プログラム 4019472 をインストールする

Windows 10 Version 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 Version 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 の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×