Configuration Manager コマンドレットの概要

Configuration Manager (現在のブランチ) に適用

Windows PowerShellを使用して、Configuration Manager階層を管理します。 PowerShell スクリプトを使用して、WMI と C# を使用して、ドキュメントに記載されている他の方法と同様のConfiguration Managerを自動化または拡張できます。 詳細については、「Configuration Manager SDK」を参照してください。

Configuration Manager コンソールまたはWindows PowerShell セッションから、PowerShell でConfiguration Managerコマンドレットとスクリプトを実行します。 Configuration Manager コンソールを使用してConfiguration Managerコマンドレットを実行すると、セッションはサイトのコンテキストで自動的に実行されます。

注:

現在サポートされているすべてのバージョンのConfiguration Manager現在のブランチでは、バージョン 5.1 Windows PowerShellサポートされています。 PowerShell バージョン 7 を既にインストールしている場合でも、PowerShell バージョン 5.1 を使用できます。 詳細については、「Windows PowerShell 5.1 での PowerShell 7 のサイド バイ サイドの使用」を参照してください。

Configuration Manager PowerShell コマンドレット ライブラリでは、PowerShell 7 がサポートされています。 詳細については、「 PowerShell バージョン 7 のサポート」を参照してください。

バージョン 2103 以降、ConfigurationManager PowerShell モジュールには Microsoft .NET バージョン 4.7.2 以降が必要です。

Configuration Manager コンソールからの PowerShell

PowerShell を開く最も簡単な方法は、Configuration Manager コンソールから直接行います。

  1. Configuration Manager コンソールを起動します。 左上隅には青い四角形があります。 青い四角形の白い矢印を選択し、[Windows PowerShell経由で接続] を選択します。

  2. Windows PowerShell読み込まれた後、サイト コードを含むプロンプトが表示されます。 たとえば、サイト コードが "ABC" の場合、プロンプトは次のようになります。 PS ABC:\>

  3. 動作を確認するには、 Get-CMSite コマンドレットを使用します。 このコマンドレットは、現在接続しているConfiguration Manager サイトと子サイトに関する情報を返します。 たとえば、サイト サーバー名、インストール ディレクター、サイト名、バージョンなどです。

注:

Configuration Manager コンソールから PowerShell または PowerShell ISE を起動すると、プロセス スコープに AllSigned 実行ポリシーが使用されます。 この既定のセキュリティで保護された構成が環境に対して多すぎる場合は、次の 2 つの方法で回避できます。

Configuration Manager PowerShell モジュールをインポートする

Configuration Manager モジュールを手動で読み込むことで、既存のWindows PowerShell セッションからConfiguration Managerに接続します。

  1. [スタート] メニューからWindows PowerShell セッションを開きます。

  2. Import-Module コマンドレットを使用して、Configuration Manager モジュールをインポートします。 Configuration Manager モジュールへのパスを指定するか、モジュールを含むディレクトリに変更します。 既定では、モジュールは次のパスにあります。 C:\Program Files (x86)\Microsoft Endpoint Manager\AdminConsole\bin\ConfigurationManager.psd1

    バージョン 2111 以降、Configuration Manager コンソールをインストールすると、モジュールへのパスがシステム環境変数 PSModulePath に追加されるようになりました。 詳細については、「 about_PSModulePath」を参照してください。 この変更により、モジュールの名前だけでモジュールをインポートできます。 Import-Module ConfigurationManager

    重要

    別のフォルダーに存在する可能性がある古いバージョンのモジュールをインポートしないようにしてください。 モジュールをインポートした後、次のコマンドを使用してモジュールのバージョンとパスを確認します。

    (Get-Module -Name ConfigurationManager).Version
    (Get-Module -Name ConfigurationManager).Path
    

    次の例では、モジュールのディレクトリに変更を加え、それをインポートします。

    Set-Location 'C:\Program Files (x86)\Microsoft Endpoint Manager\AdminConsole\bin'
    Import-Module .\ConfigurationManager.psd1
    

    ヒント

    SMS_ADMIN_UI_PATH環境変数を使用することもできます。 以下に例を示します。

    Set-Location "$env:SMS_ADMIN_UI_PATH\..\"
    

    また、 Cd エイリアスを使用して 、Set-Location コマンドレットの代わりにディレクトリを変更することもできます。

  3. このコンピューターでConfiguration Manager モジュールを初めてインポートする場合は、サイト ドライブの作成が必要になる場合があります。 例えば:

    New-PSDrive -Name "ABC" -PSProvider "CMSite" -Root "siteserver.contoso.com" -Description "Primary site"
    

    ヒント

    コンソールから PowerShell を起動すると、現在接続されているサイトの利便性のために PSDrive が自動的に作成されます。 階層内の場合は、 New-PSDrive を使用して各サイトのドライブを作成します。

  4. Configuration Manager コマンドレットを実行するには、Configuration Manager サイトへのパスを切り替える必要があります。 次の例では、サイト コードは です ABC

    Set-Location ABC:
    
  5. Get-CMSite コマンドレットを使用して、PowerShell によって Configuration Manager モジュールが正しく読み込まれたことを確認します。

ヘルプの更新

Configuration Manager PowerShell モジュールの最新情報を取得するには、Update-Help コマンドレットを使用します。 このコンテンツは、 ConfigurationManager モジュールの Microsoft Learn で公開されているものと同じです。

重要

バージョン 2103 のリリースで更新可能なコンテンツの構造と公開方法が変更されているため、バージョン 2010 サイトでは Update-Help を使用しないでください。 サイトをバージョン 2103 以降に更新し、ローカル ヘルプ コンテンツを更新します。

詳細については、「 PowerShell バージョン 2103 リリース ノート」を参照してください。

このコマンドレットを実行するコンピューターには、インターネット アクセス (具体的には pshelpprod.blob.core.windows.net) が必要です。 次に、管理者特権の PowerShell セッションから次のコマンドを実行します。

Update-Help -Module ConfigurationManager

Configuration Manager コマンドレットのヘルプを更新した後は、Get-Help コマンドレットを使用してコマンドレットに関するヘルプを取得できます。 以下に例を示します。

Get-Help Get-CMDevice
Get-Help Get-CMDevice -Examples
Get-Help Get-CMDevice -Parameter *

詳細については、次の PowerShell ブログ投稿を参照してください。 ヘルプが表示されています

共通パラメーター

すべてのConfiguration Managerコマンドレットは、一般的な PowerShell パラメーターをサポートしています。

  • デバッグ
  • ErrorAction
  • ErrorVariable
  • InformationAction
  • InformationVariable
  • OutVariable
  • OutBuffer
  • PipelineVariable
  • 詳細
  • WarningAction
  • WarningVariable

詳細については、「about_CommonParameters」を参照してください。

PowerShell バージョン 7 のサポート

Configuration Manager PowerShell コマンドレット ライブラリでは、PowerShell バージョン 7 がサポートされています。 PowerShell 7 の詳細については、ダウンロードしてインストールする方法の指示など、「 Windows に PowerShell をインストールする」を参照してください。

ヒント

PowerShell 7 は として pwsh.exe実行されます。 以前のバージョンの PowerShell は として powershell.exe実行されます。

PowerShell バージョン 7 をサポートしていないコマンドレット

次のコマンドレットでは、PowerShell 7 はサポートされていません。

  • Import-CMPackage
  • Import-CMDriverPackage
  • Import-CMTaskSequence
  • Export-CMPackage
  • Export-CMDriverPackage
  • Export-CMTaskSequence
  • Add-CMReportingServicePoint
  • Get-CMReportingServicePoint
  • Remove-CMReportingServicePoint
  • Set-CMReportingServicePoint

PowerShell バージョン 7 で使用される .NET Core ではなく、.NET Frameworkが必要です。

バージョン 2103 以降、PowerShell バージョン 7 セッションでこれらのコマンドレットを使用しようとすると、次のエラーで失敗します。 This cmdlet only supports the ".NET Framework" runtime.

PowerShell バージョン 7 に関する既知の問題

PowerShell に関するフィードバック

Configuration Manager PowerShell コマンドレットに関するフィードバックがある場合は、Configuration Manager コンソールで同じオプションを使用してフィードバックを送信します。 詳細については、「 製品のフィードバック」を参照してください。

Frown を送信する場合は、PowerShell に固有の次の追加情報を含めます。

  • Microsoft が問題の再現を試みることができるように、使用した正確なスクリプトまたはコマンド構文。

  • 実際の動作と比較して、予期した動作。

  • Verbose 共通パラメーターを使用して実行する場合の完全な出力。

  • ConfigurationManager モジュールのバージョンとパス。 たとえば、次のコマンドの出力を含めます。

    (Get-Module -Name ConfigurationManager).Version
    (Get-Module -Name ConfigurationManager).Path
    
  • コマンドレットがエラーを返す場合は、次のコマンドを使用して例外の詳細を取得します。

    $Error[0].Exception | Format-List * -Force
    

リリース ノートのプレビュー

コア ドキュメント ライブラリのテクニカル プレビュー機能に関する記事には、PowerShell のリリース ノートが含まれています。 たとえば、「 Technical preview version 2202」を参照してください。

次の手順

Configuration Managerの最新リリースで変更された内容の詳細については、目次から最新のリリース ノートを選択してください。

個々のコマンドレットの詳細については、「Configuration Manager コマンドレットリファレンス」を参照してください

Windows PowerShellの学習と概要の詳細については、「PowerShell 101」を参照してください。