SCCM を使用して PowerShell スクリプトを展開するためのステップバイステップ ガイド
<本文>
このステップバイステップ ガイドでは、SCCM を使用して PowerShell スクリプトをデプロイする方法を説明します。スクリプトの実行機能を使用すると、Configuration Manager が管理するクライアント コンピューターに重要なスクリプトを展開できます。
Configuration Manager には、PowerShell スクリプトを作成して実行するための組み込み機能が含まれています。この強力なツールを使用すると、理解しやすく、コミュニティ内で広く共有できる高度な自動スクリプトを作成できます。
これらのスクリプトを展開する主な目的は、ソフトウェア管理用のカスタム管理ツールの開発を合理化し、反復的なタスクを簡素化し、大規模な操作をより効率的かつ一貫して完了できるようにすることです。 Windows デバイスを使用している組織は、Intune を使用して PowerShell スクリプトを展開することもできます。
Patch My PC を使用してサードパーティ アプリケーションをインストールおよび更新する
スクリプトのデプロイメント方法
SCCM で PowerShell スクリプトを実行するには、次の 2 つの主な方法を使用します。
-
スクリプトの実行機能: 私の意見では、これはスクリプトを実行するための推奨される方法です。クライアントに対して即座にリアルタイムのスクリプトを実行するには、このメソッドを使用します。
-
スクリプトをアプリケーションまたはパッケージとしてパッケージ化する: 検出の有無にかかわらず、スクリプトをソフトウェア インストール用のアプリケーションまたはパッケージとしてパッケージ化できます。
スクリプトの実行機能
Configuration Manager のスクリプトの実行機能を使用して、次のことを行うことができます。
-
スクリプトを作成、編集し、ロールとセキュリティ スコープを通じてスクリプトの使用を管理します。
-
スクリプトを別のフォルダーに整理します。
-
コレクションまたはオンプレミスで管理されている個々の Windows PC でスクリプトを実行します。
-
コレクションまたはオンプレミスで管理されている個々の Windows PC 上でスクリプトの実行時間を UTC でスケジュールします。
-
クライアントデバイスから集約されたスクリプト結果を迅速に取得します。
-
スクリプトの実行を監視し、スクリプト出力からレポート結果を表示します。
前提条件
以下の表は、SCCM 経由で PS スクリプトを効果的に展開するための前提条件の概要を示しています。
前提条件 |
説明—|—PowerShell |
クライアントは PowerShell バージョン 3.0 以降を実行している必要があります。ターゲット マシン上の PS 実行ポリシーでスクリプトの実行が許可されていることを確認してください。
SCCM バージョン |
Configuration Manager クライアントはバージョン 1706 以降を使用する必要があります。
権限 |
適切な Configuration Manager セキュリティ ロールのメンバーである必要があります。
-
スクリプトをインポートして作成するには: アカウントには SMS スクリプトの作成権限が必要です。
-
スクリプトを承認または拒否するには – アカウントには SMS スクリプトの承認権限が必要です。
-
スクリプトを実行するには: アカウントには、コレクションに対するスクリプトの実行権限が必要です。
スクリプトのテスト |
スクリプトを Windows デバイスに展開する前に、徹底的にテストしてください。
SCCM を使用して PowerShell スクリプトをデプロイする手順
次に、SCCM で PowerShell スクリプトを作成して実行する手順を説明します。以下の手順では、Windows デバイスでスクリプトを実行するためにスクリプトの実行機能を使用します。
ステップ 1: PowerShell スクリプトを作成する
最初の要件は、PowerShell スクリプトを展開できる状態にすることです。ルート ディレクトリに「 LogFiles 」という名前のフォルダーを作成する、非常に基本的な PowerShell スクリプトを使用します。このスクリプトを createfolder.ps1 という名前で保存します。
New-Item -Path "C:\" -Name "Logfiles" -ItemType "Directory"
コピー
New-Item
-
Path
"C:\"
-
Name
"Logfiles"
-
ItemType
"Directory"
Configuration Manager コンソールを開きます。 ソフトウェア ライブラリ > 概要 > スクリプト に移動します。 「スクリプト」を右クリックし、「スクリプトの作成」を選択します。
SCCM でスクリプトを作成する
スクリプト作成ウィザードの「スクリプト」ページで、次のように構成します。
-
スクリプト名: スクリプトの名前を入力します。
-
スクリプトの説明: スクリプトの説明をオプションで追加できます。
-
スクリプト言語: 現在、PowerShell スクリプトのみがサポートされています。
-
スクリプトのタイムアウト秒数: スクリプトを実行する時間を指定します (60 秒 – 1800 秒)。
-
インポート: インポート ボタンをクリックし、PowerShell スクリプトを選択します。スクリプトが「スクリプト」フィールドに表示されます。
「次へ」をクリックして続行します。
PowerShell スクリプトのインポート
概要ページでスクリプトの詳細を確認し、「次へ」をクリックします。 「完了」ページで、「閉じる」をクリックします。
SCCM で PowerShell スクリプトを作成する
ステップ 2: スクリプトを承認する
クライアント コンピュータでスクリプトを実行する前に、スクリプトが承認される必要があります。スクリプトを作成し、SCCM の承認オプションがグレー表示になっている場合は、仕様上、ユーザーが作成したスクリプトを承認できないために発生します。この問題を解決するには、「スクリプト作成者には追加のスクリプト承認者が必要」オプションを無効にします。
スクリプトを承認するには、ソフトウェア ライブラリ > スクリプト に移動します。 PowerShell スクリプトを右クリックし、承認 を選択します。
PowerShell スクリプトを承認してください
スクリプトの承認または拒否ウィザードを実行し、スクリプトの詳細を最終的に確認する必要があります。 「次へ」をクリックします。
PowerShell スクリプトを承認する
スクリプトの承認 ページで、承認 を選択します。 「次へ」をクリックします。
PowerShell スクリプトを承認する
承認または拒否スクリプト ウィザードを閉じます。
PowerShell スクリプトを承認する
上記の手順を実行したら、コンソールを更新すると、スクリプトの承認状態が「承認済み」と表示されることがわかります。これが表示されたら、正しく行っていることになり、次のステップに進みます。
コンソールで PowerShell スクリプトが承認されました
ステップ 3: ターゲット デバイスでスクリプトを実行する
スクリプトが承認されると、単一のデバイスまたはコレクションに対してスクリプトを実行できます。 Configuration Manager コンソールでスクリプトを実行するには、資産とコンプライアンス > デバイス コレクション をクリックします。選択したコレクションを選択し、右クリックして スクリプトの実行 を選択します。
ターゲットデバイスでスクリプトを実行してください
「スクリプトの実行」ウィザードの「スクリプト」ページで、リストからスクリプトを選択します。ここにスクリプトが表示されない場合は、まだ承認されていないことを意味します。 「次へ」をクリックします。
ターゲットデバイスでスクリプトを実行してください
SCCM バージョン 2309 以降では、UTC でスクリプトの実行時間をスケジュールできるようになりました。これは、特定の時間にスクリプトを実行したい管理者にとって非常に便利な機能です。スクリプトをスケジュールしたくない場合は、「次へ」をクリックします。
スクリプトの実行スケジュールを設定してください
スクリプト ステータスの監視 ページでは、スクリプトの実行をリアルタイムで監視し、後で特定のスクリプト実行のステータスと結果に戻ることができます。ウィザードを閉じます。
スクリプトステータスの監視
スクリプトの実行が開始されると、優先度の高いシステムを通じてすぐに起動され、1 時間でタイムアウトになります。
ステップ 4: スクリプトの実行を監視する
多数のクライアントでスクリプトを実行する場合、コンソールの監視ワークスペースでスクリプト展開の進行状況を監視できます。コンソールで、監視ワークスペース > スクリプト ステータス に移動します。監視するスクリプトを右クリックし、「ステータスの表示」を選択します。ここでは、スクリプトの実行完了ステータスを確認できます。
注: クライアントがオフラインの場合、スクリプトの実行は失敗します。スクリプトを実行するにはクライアントがオンラインである必要があります。 1 時間以内にターゲット デバイスの電源がオフになった場合は、ターゲット デバイスを再度実行する必要があります。
SCCM でのスクリプト実行の監視
特定の時刻にスクリプトを実行するようにスケジュールした場合は、監視 > スケジュールされたスクリプト ノードでその実行ステータスを監視できます。
ログ ファイル
次のログ ファイルは、SCCM のスクリプト実行機能のトラブルシューティングに役立ちます。
-
クライアントで、Scripts.log と CcmMessaging.log を確認します。これらのログは C:\Windows\CCM\logs フォルダーにあります。
-
MP で、C:\SMS_CCM\Logs フォルダーにある MP_RelayMsgMgr.log を確認します。
-
サイト サーバーで、C:\Program Files\Configuration Manager\Logs フォルダーにある SMS_Message_Processing_Engine.log を確認します。
他のログのリストについては、Configuration Manager クライアントとサーバーのログの包括的なリストを確認してください。
SCCM での PowerShell スクリプトの展開を監視する
構成マネージャーからスクリプトを削除する
スクリプトのデプロイが完了したら、不要になった場合はコンソールから安全に削除できます。 SCCM コンソールから PowerShell スクリプトを削除するには、ソフトウェア ライブラリ > 概要 > スクリプト に移動します。スクリプトを選択し、「削除」をクリックします。 はい を選択してスクリプトの削除を確認します。
SCCM コンソールから PowerShell スクリプトを削除する
注: コンソールからスクリプトを削除すると、元に戻すことはできません。スクリプトを完全に削除する前に、バックアップを取ることをお勧めします。 SCCM サーバーを効率的にバックアップする方法を学びます。
スクリプト実行機能の制限事項
実行スクリプトを使用する場合、次の制限が適用されます。
-
スクリプト言語: PowerShell のみをサポートします。
-
パラメータのタイプ: 整数、文字列、リスト。
Windows PowerShell を使用した実行スクリプトの自動化
次の PowerShell コマンドレットを利用して、スクリプトの実行機能を自動化できます。
まだサポートが必要ですか?
上記の記事についてさらにサポートが必要な場合、または他の技術的な問題について議論したい場合は、これらのオプションのいくつかを確認してください。
フォーラム
電報
連絡してください
*️⃣ 出典リンク:
PowerShell スクリプトの作成と実行、PowerShell スクリプトを展開するための Intune、
、PS 実行ポリシー、スクリプト作成者には追加のスクリプト承認者が必要、SCCM バージョン 2309、Configuration Manager クライアントとサーバーのログの包括的なリスト、SCCM サーバーのバックアップ効率的に、
フォーラム
、 電報、
連絡してください
、