Configuration Manager コンソールから PowerShell スクリプトを作成して実行するCreate and run PowerShell scripts from the Configuration Manager console

適用対象:Configuration Manager (Current Branch)Applies to: Configuration Manager (current branch)

Configuration Manager には、PowerShell スクリプトを実行するための統合機能があります。Configuration Manager has an integrated ability to run PowerShell scripts. PowerShell には、高度な自動化されたスクリプトを作成できるという利点があります。PowerShell スクリプトは、多くの方が参加するコミュニティで理解され、共有されています。PowerShell has the benefit of creating sophisticated, automated scripts that are understood and shared with a larger community. このスクリプトを使用すると、ソフトウェアを管理するカスタム ツールを簡単に構築できます。また、大規模なジョブをより簡単に、一貫した方法で実行できるので、日常のタスクをすぐに完了できるようになります。The scripts simplify building custom tools to administer software and let you accomplish mundane tasks quickly, allowing you to get large jobs done more easily and more consistently.

注意

バージョン 2006 以前では、このオプション機能は Configuration Manager で既定で無効になっています。In version 2006 and earlier, Configuration Manager doesn't enable this optional feature by default. この機能は、使用する前に有効にする必要があります。You must enable this feature before using it. 詳細については、「Enable optional features from updates」 (更新プログラムのオプション機能の有効化) を参照してください。For more information, see Enable optional features from updates.

Configuration Manager でのこの統合により、スクリプトの実行 機能を使用して以下を実行することができます。With this integration in Configuration Manager, you can use the Run Scripts functionality to do the following things:

  • Configuration Manager と共に使用するようにスクリプトを作成して編集する。Create and edit scripts for use with Configuration Manager.
  • ロールとセキュリティ スコープを使用してスクリプトの使用法を管理する。Manage script usage through roles and security scopes.
  • コレクションまたは個々のオンプレミスの管理対象 Windows PC でスクリプトを実行する。Run scripts on collections or individual on-premises managed Windows PCs.
  • クライアント デバイスから高速に集計されたスクリプト結果を取得する。Get rapid aggregated script results from client devices.
  • スクリプトの実行を監視し、スクリプトの出力からレポート結果を表示する。Monitor script execution and view reporting results from script output.

警告

  • スクリプトを利用する場合は、目的を持って注意して使用することをお勧めします。Given the power of scripts, we remind you to be intentional and careful with their usage. 分離されたロールとスコープという、開発時に役立つ追加の保護策も組み込まれています。We have built in additional safeguards to assist you; segregated roles and scopes. 意図しないスクリプトの実行を防ぐために、実行前にスクリプトが正しいことを検証し、信頼できる発行元のスクリプトであることを確認してください。Be sure to validate the accuracy of scripts before running them and confirm they are from a trusted source, to prevent unintended script execution. 拡張文字や他の難読化を配慮し、スクリプトのセキュリティ保護について学習してください。Be mindful of extended characters or other obfuscation and educate yourself about securing scripts. PowerShell スクリプトのセキュリティの詳細情報Learn more about PowerShell script security
  • 特定のマルウェア対策ソフトウェアでは、誤って Configuration Manager 実行スクリプトまたは CMPivot 機能に対してイベントがトリガーされることがあります。Certain anti-malware software may inadvertently trigger events against the Configuration Manager Run Scripts or CMPivot features. %Windir%\CCM\ScriptStore を除外することをお勧めします。これにより、マルウェア対策ソフトウェアでこれらの機能を許可し、干渉なしで実行することができます。It is recommended to exclude %windir%\CCM\ScriptStore so that the anti-malware software permits those features to run without interference.

[前提条件]Prerequisites

  • PowerShell スクリプトを実行するには、クライアントで PowerShell バージョン 3.0 以降を実行している必要があります。To run PowerShell scripts, the client must be running PowerShell version 3.0 or later. ただし、実行するスクリプトに、より新しいバージョンの PowerShell の機能が含まれている場合、スクリプトを実行するクライアントがそのバージョンの PowerShell を実行している必要があります。However, if a script you run contains functionality from a later version of PowerShell, the client on which you run the script must be running that version of PowerShell.
  • Configuration Manager クライアントがスクリプトを実行するには、1706 リリース以降のクライアントを実行している必要があります。Configuration Manager clients must be running the client from the 1706 release, or later in order to run scripts.
  • スクリプトを使用するには、適切な Configuration Manager のセキュリティ ロールのメンバーである必要があります。To use scripts, you must be a member of the appropriate Configuration Manager security role.
  • スクリプトをインポートおよび作成するには: SMS スクリプト への 作成 アクセス許可がアカウントに付与されている必要があります。To import and author scripts - Your account must have Create permissions for SMS Scripts.
  • スクリプトを承認または拒否するには: SMS スクリプト への 承認 アクセス許可がアカウントに付与されている必要があります。To approve or deny scripts - Your account must have Approve permissions for SMS Scripts.
  • スクリプトを実行するには: コレクション への スクリプトの実行 アクセス許可がアカウントに付与されている必要があります。To run scripts - Your account must have Run Script permissions for Collections.

Configuration Manager セキュリティ ロールの詳細については、以下を参照してください。For more information about Configuration Manager security roles:
スクリプトの実行のセキュリティ スコープSecurity scopes for run scripts
スクリプトの実行のセキュリティ ロールSecurity roles for run scripts
ロール ベース管理の基礎Fundamentals of role-based administration.

制限事項Limitations

現在、スクリプトの実行は以下をサポートしています。Run Scripts currently supports:

  • スクリプト言語:PowerShellScripting languages: PowerShell
  • パラメーターの型: 整数、文字列、リスト。Parameter types: integer, string, and list.

警告

パラメーターを使用する場合、潜在的な PowerShell インジェクション攻撃のリスクが伴うことに注意してください。Be aware that when using parameters, it opens a surface area for potential PowerShell injection attack risk. パラメーター入力を検証するための正規表現の使用や、定義済みパラメーターの使用など、さまざまな緩和および回避方法があります。There are various ways to mitigate and work around, such as using regular expressions to validate parameter input or using predefined parameters. 通常は PowerShell スクリプトのシークレットに含めないことをお勧めします (パスワードなしなど)。Common best practice is not to include secrets in your PowerShell scripts (no passwords, etc.). PowerShell スクリプトのセキュリティの詳細情報Learn more about PowerShell script security

スクリプトの実行の作成者と承認者Run Script authors and approvers

スクリプトの実行では、スクリプトの実装と実行に別のロールとして スクリプト作成者スクリプト承認者 の概念を使用しています。Run Scripts uses the concept of script authors and script approvers as separate roles for implementation and execution of a script. 作成者ロールと承認者ロールが分かれているので、スクリプトの実行という強力なツールの重要なプロセス チェックが可能になります。Having the author and approver roles separated allows an important process check for the powerful tool that Run Scripts is. スクリプトの実行は許可するが、スクリプトの作成や承認は許可しない、追加の "スクリプト ランナー" ロールがあります。There's an additional script runners role that allows execution of scripts, but not creation or approval of scripts. スクリプトのセキュリティ ロールの作成」を参照してください。See Create security roles for scripts.

スクリプト ロールの制御Scripts roles control

既定では、ユーザーは自分が作成したスクリプトを承認できません。By default, users can't approve a script they've authored. スクリプトは強力で用途が広く、多くのデバイスに展開される可能性があるため、スクリプトを作成する人と、そのスクリプトを承認する人とでロールを分けることができます。Because scripts are powerful, versatile, and potentially deployed to many devices, you can separate the roles between the person that authors the script and the person that approves the script. ロールを分けることで、監視なしのスクリプト実行に対してセキュリティ レベルがさらに高くなります。These roles give an additional level of security against running a script without oversight. テストの場合は、便宜的に二次的承認を無効にすることもできます。You're able to turn off secondary approval, for ease of testing.

スクリプトの承認または拒否Approve or Deny a script

スクリプトを実行するには、スクリプト承認者 ロールが事前に承認する必要があります。Scripts must be approved, by the script approver role, before they can be run. スクリプトを承認するには、次の手順を実行します。To approve a script:

  1. Configuration Manager コンソールで、 [ソフトウェア ライブラリ] をクリックします。In the Configuration Manager console, click Software Library.
  2. [ソフトウェア ライブラリ] ワークスペースで [スクリプト] をクリックします。In the Software Library workspace, click Scripts.
  3. [スクリプト] リストで、承認または拒否するスクリプトを選択し、 [ホーム] タブの [スクリプト] グループで、 [承認]/[拒否] をクリックします。In the Script list, choose the script you want to approve or deny and then, on the Home tab, in the Script group, click Approve/Deny.
  4. [スクリプトの承認/拒否] ダイアログ ボックスで、スクリプトの [承認] または [拒否] を選択します。In the Approve or deny script dialog box, select Approve, or Deny for the script. 必要に応じて、決定に関するコメントを入力します。Optionally, enter a comment about your decision. スクリプトを拒否すると、クライアント デバイス上でそのスクリプトを実行できません。If you deny a script, it can't be run on client devices.
    スクリプト - 承認Script - Approval
  5. ウィザードを完了します。Complete the wizard. [スクリプト] リストの [承認状態] 列は、行った操作に応じて変わります。In the Script list, you see the Approval State column change depending on the action you took.

ユーザーが自身のスクリプトを承認できるようにするAllow users to approve their own scripts

この承認は、主にスクリプト開発のテスト フェーズで使用されます。This approval is primarily used for the testing phase of script development.

  1. Configuration Manager コンソールで、 [管理] をクリックします。In the Configuration Manager console, click Administration.
  2. [管理] ワークスペースで [サイトの構成] を展開して、 [サイト] をクリックします。In the Administration workspace, expand Site Configuration, and then click Sites.
  3. サイトの一覧で、自分のサイトを選択し、 [ホーム] タブの [サイト] グループで [階層設定] をクリックします。In the list of sites, choose your site and then, on the Home tab, in the Sites group, click Hierarchy Settings.
  4. [階層設定のプロパティ] ダイアログ ボックスの [全般] タブで、 [スクリプトの作成者には追加のスクリプト承認者が必要] チェック ボックスをオフにします。On the General tab of the Hierarchy Settings Properties dialog box, clear the checkbox Script authors require additional script approver.

重要

ベスト プラクティスとして、スクリプト作成者に自分のスクリプトの承認を許可しないようにする必要があります。As a best practice, you shouldn't allow a script author to approve their own scripts. これは、ラボ設定でのみ許可する必要があります。It should only be allowed in a lab setting. 運用環境でこの設定を変更する場合の影響を慎重に検討してください。Carefully consider the potential impact of changing this setting in a production environment.

セキュリティ スコープSecurity scopes

スクリプトの実行は、Configuration Manager の既存の機能であるセキュリティ スコープを使用し、ユーザー グループを表すタグを割り当てることで、スクリプトの作成と実行を制御しています。Run Scripts uses security scopes, an existing feature of Configuration Manager, to control scripts authoring and execution through assigning tags that represent user groups. セキュリティ スコープの使用の詳細については、「Configuration Manager のロール ベース管理の構成」を参照してください。For more information on using security scopes, see Configure role-based administration for Configuration Manager.

スクリプトのセキュリティ ロールの作成Create security roles for scripts

Configuration Manager では、スクリプトを実行するために使用される 3 つのセキュリティ ロールが既定で作成されません。The three security roles used for running scripts aren't created by default in Configuration Manager. スクリプト ランナー、スクリプト作成者、スクリプト承認者のロールを作成するには、概説されている手順に従います。To create the script runners, script authors, and script approvers roles, follow the outlined steps.

  1. Configuration Manager コンソールで、 [管理] > [セキュリティ] > [セキュリティ ロール] の順に移動します。In the Configuration Manager console, go to Administration >Security >Security Roles
  2. ロールを右クリックして、 [コピー] をクリックします。Right-click on a role and click Copy. コピーするロールには既にアクセス許可が割り当てられています。The role you copy has permissions already assigned. 必要なアクセス許可のみを使用するようにしてください。Make sure you take only the permissions that you want.
  3. カスタム ロールの 名前説明 を入力します。Give the custom role a Name and a Description.
  4. セキュリティ ロールに、以下に概説されているアクセス許可を割り当てます。Assign the security role the permissions outlined below.

セキュリティ ロールのアクセス許可Security Role Permissions

ロール名:スクリプト ランナーRole Name: Script Runners

  • 説明:これらのアクセス許可では、このロールで、以前他のロールで作成および承認されたスクリプトのみを実行できるようにします。Description: These permissions enable this role to only run scripts that were previously created and approved by other roles.
  • アクセス許可: 以下が [はい] に設定されていることを確認します。Permissions: Ensure the following are set to Yes.
カテゴリCategory アクセス許可Permission 状態State
コレクションCollection スクリプトを実行するRun Script はいYes
サイトSite 読み取りRead はいYes
SMS スクリプトSMS Scripts 読み取りRead はいYes

ロール名:スクリプトの作成者Role Name: Script Authors

  • 説明:これらのアクセス許可では、このロールでスクリプトを作成できるようにしますが、承認したり、実行したりすることはできません。Description: These permissions enable this role to author scripts, but they can't approve or run them.
  • アクセス許可:次のアクセス許可が設定されていることを確認します。Permissions: Ensure the following permissions are set.
カテゴリCategory アクセス許可Permission 状態State
コレクションCollection スクリプトを実行するRun Script いいえNo
サイトSite 読み取りRead はいYes
SMS スクリプトSMS Scripts 作成Create はいYes
SMS スクリプトSMS Scripts 読み取りRead はいYes
SMS スクリプトSMS Scripts 削除Delete はいYes
SMS スクリプトSMS Scripts 変更Modify はいYes

ロール名:スクリプトの承認者Role Name: Script Approvers

  • 説明:これらのアクセス許可によってこのロールでスクリプトを承認することが可能になりますが、スクリプトを作成したり、実行したりすることはできません。Description: These permissions enable this role to approve scripts, but they can't create or run them.
  • アクセス許可: 次のアクセス許可が設定されていることを確認します。Permissions: Ensure the following permissions are set.
カテゴリCategory アクセス許可Permission 状態State
コレクションCollection スクリプトを実行するRun Script いいえNo
サイトSite 読み取りRead はいYes
SMS スクリプトSMS Scripts 読み取りRead はいYes
SMS スクリプトSMS Scripts 承認Approve はいYes
SMS スクリプトSMS Scripts 変更Modify はいYes

スクリプト作成者ロールの SMS スクリプト アクセス許可の例Example of SMS Scripts permissions for the script authors role

スクリプト作成者ロールの SMS スクリプト アクセス許可の例

スクリプトの作成Create a script

  1. Configuration Manager コンソールで、 [ソフトウェア ライブラリ] をクリックします。In the Configuration Manager console, click Software Library.
  2. [ソフトウェア ライブラリ] ワークスペースで [スクリプト] をクリックします。In the Software Library workspace, click Scripts.
  3. [ホーム] タブの [作成] グループで、 [スクリプトの作成] をクリックします。On the Home tab, in the Create group, click Create Script.
  4. スクリプトの作成 ウィザードの [スクリプト] ページで、次の設定を構成します。On the Script page of the Create Script wizard, configure the following settings:
    • [スクリプト名] : スクリプトの名前を入力します。Script Name - Enter a name for the script. 同じ名前の複数のスクリプトを作成できますが、重複する名前を使用すると、Configuration Manager コンソールで必要なスクリプトを見つけるのがより困難になります。Although you can create multiple scripts with the same name, using duplicate names makes it harder for you to find the script you need in the Configuration Manager console.
    • [スクリプト言語] : 現時点では、PowerShell スクリプトのみがサポートされています。Script language - Currently, only PowerShell scripts are supported.
    • [インポート] : PowerShell スクリプトをコンソールにインポートします。Import - Import a PowerShell script into the console. スクリプトは [スクリプト] フィールドに表示されます。The script is displayed in the Script field.
    • [クリア] : [スクリプト] フィールドから現在のスクリプトを削除します。Clear - Removes the current script from the Script field.
    • [スクリプト] : 現在インポートされたスクリプトが表示されます。Script - Displays the currently imported script. 必要に応じて、このフィールドでスクリプトを編集できます。You can edit the script in this field as necessary.
  5. ウィザードを完了します。Complete the wizard. 新しいスクリプトが [承認を待っています] の状態で [スクリプト] リストに表示されます。The new script is displayed in the Script list with a status of Waiting for approval. このスクリプトをクライアント デバイスで実行するには、先にそのスクリプトを承認する必要があります。Before you can run this script on client devices, you must approve it.

重要

スクリプトの実行機能を使用する場合は、デバイスのリブートや Configuration Manager エージェントの再起動のスクリプトを実行することは避けてください。Avoid scripting a device reboot or a restart of the Configuration Manager agent when using the Run Scripts feature. そうすると、リブート状態が続くことになりかねません。Doing so could lead to a continuous rebooting state. 必要な場合は、クライアント通知機能に対する拡張機能を使用して、デバイスの再起動を有効にできます。If needed, there are enhancements to the client notification feature that enable restarting devices. [再起動を保留しています] 列は、再起動が必要なデバイスを特定するのに役立ちます。The pending restart column can help identify devices that need a restart.

スクリプト パラメーターScript parameters

スクリプトにパラメーターを追加すると、作業の柔軟性が向上します。Adding parameters to a script provides increased flexibility for your work. 最大 10 個のパラメーターを含めることができます。You can include up to 10 parameters. ここでは、スクリプトの実行機能の現在の機能とスクリプト パラメーター (文字列整数 データ型) の概要について説明します。The following outlines the Run Scripts feature's current capability with script parameters for; String, Integer data types. プリセット値の一覧も掲載します。Lists of preset values are also available. スクリプトにサポートされないデータ型が含まれている場合は、警告を受け取ります。If your script has unsupported data types, you get a warning.

[スクリプトの作成] ダイアログの [スクリプト][スクリプト パラメーター] をクリックします。In the Create Script dialog, click Script Parameters under Script.

スクリプトの各パラメーターには独自のダイアログがあり、詳細や検証を追加できます。Each of your script's parameters has its own dialog for adding further details and validation. スクリプト内に既定のパラメーターがある場合、それはパラメーターの UI に列挙され、設定することができます。If there's a default parameter in the script, it will be enumerated in the parameter UI and you can set it. Configuration Manager では、スクリプトが直接変更されることはないため、既定値は上書きされません。Configuration Manager won't overwrite the default value since it will never modify the script directly. これは、"事前入力済みの提案された値" が UI で提供されるが、Configuration Manager によって実行時に "既定の" 値に対するアクセスが提供されることはない、と考えることができます。You can think of this as "pre-populated suggested values" are provided in the UI, but Configuration Manager doesn't provide access to "default" values at run-time. 適切な既定値を含むようスクリプトを編集することによって、これを回避できます。This can be worked around by editing the script to have the correct defaults.

重要

パラメーター値に単一引用符を含めることはできません。Parameter values can't contain a single quote.

単一引用符が含まれるパラメーター値または単一引用符で囲まれているパラメーター値は、スクリプトに正しく渡されないという、既知の問題があります。There is a known issue where parameter values that include or are enclosed in single quotes don't get passed to the script properly. スクリプト内に空白が含まれる既定のパラメーター値を指定するときは、代わりに二重引用符を使用します。When specifying default parameter values containing a space within a script, use double quotes instead. スクリプト を作成または実行する際に既定のパラメーター値を指定するときは、値にスペースが含まれているかどうかに関係なく、二重引用符または単一引用符で既定値を囲む必要はありません。When specifying default parameter values during creation or execution of a Script, surrounding the default value in either double or single quotes is not necessary regardless of whether the value contains a space or not.

パラメーターの検証Parameter validation

スクリプト内の各パラメーターには、そのパラメーターに検証を追加するための [Script Parameter Properties](スクリプト パラメーター プロパティ) ダイアログがあります。Each parameter in your script has a Script Parameter Properties dialog for you to add validation for that parameter. 検証を追加した後に、その検証を満たしていないパラメーターの値を入力すると、エラーが発生します。After adding validation, you should get errors if you're entering a value for a parameter that doesn't meet its validation.

例:FirstNameExample: FirstName

この例では、文字列パラメーター FirstName のプロパティを設定できます。In this example, you're able to set the properties of the string parameter, FirstName.

スクリプトのパラメーター - 文字列

[スクリプト パラメーターのプロパティ] ダイアログの検証セクションでは、次のフィールドを使用できます。The validation section of the Script Parameter Properties dialog contains the following fields for your use:

  • [最小の長さ] - [FirstName] フィールドの最小の文字数。Minimum Length - minimum number of characters of the FirstName field.
  • [最大の長さ] - [FirstName] フィールドの最大の文字数。Maximum Length- maximum number of characters of the FirstName field
  • [RegEx] - 正規表現 (Regular Expression) の短縮形。RegEx - short for Regular Expression. 正規表現の使用方法については、次のセクション「正規表現による検証を使用する」をご覧ください。For more information on using the Regular Expression, see the next section, Using Regular Expression validation.
  • [カスタム エラー] - システム検証エラー メッセージの代わりに使う、独自のカスタム エラー メッセージを追加するのに役立ちます。Custom Error - useful for adding your own custom error message that supersedes any system validation error messages.

正規表現による検証を使用するUsing Regular Expression validation

正規表現はプログラミングのコンパクトな形式で、エンコードされた検証に対して文字列をチェックします。A regular expression is a compact form of programming for checking a string of characters against an encoded validation. たとえば、 [RegEx] フィールドに [^A-Z] を指定することによって、 [FirstName] フィールド内の大文字アルファベット文字の有無をチェックすることができます。For example, you could check for the absence of a capital alphabetic character in the FirstName field by placing [^A-Z] in the RegEx field.

このダイアログ ボックスの正規表現処理は、.NET Framework でサポートされています。The regular expression processing for this dialog is supported by the .NET Framework. 正規表現の使用方法の詳細については、「.NET の正規表現」および「正規表現言語」をご覧ください。For guidance on using regular expressions, see .NET Regular Expression and Regular Expression Language.

スクリプトの例Script examples

この機能で利用する可能性があるスクリプトの例をいくつか紹介します。Here are a couple examples that illustrate scripts you might want to use with this capability.

新しいフォルダーとファイルの作成Create a new folder and file

このスクリプトでは、入力した名前に基づいて、新しいフォルダーを作成し、そのフォルダー内にファイルを作成します。This script creates a new folder and a file within the folder, given your naming input.

Param(
[Parameter(Mandatory=$True)]
[string]$FolderName,
[Parameter(Mandatory=$True)]
[string]$FileName
)

New-Item $FolderName -type directory
New-Item $FileName -type file

OS バージョンの取得Get OS Version

このスクリプトは WMI を使用してコンピューターに OS バージョンを照会します。This script uses WMI to query the machine for its OS version.

Write-Output (Get-WmiObject -Class Win32_operatingSystem).Caption

PowerShell スクリプトの編集またはコピーEdit or copy PowerShell scripts

スクリプトの実行 機能で使用される既存の PowerShell スクリプトを [編集] または [コピー] できます。You can Edit or Copy an existing PowerShell script used with the Run Scripts feature. 変更する必要があるスクリプトを再作成するのではなく、直接編集できるようになりました。Instead of recreating a script that you need to change, now directly edit it. どちらのアクションでも、新しいスクリプトを作成するときと同じウィザード エクスペリエンスが使われます。Both actions use the same wizard experience as when you create a new script. スクリプトを編集またはコピーするときに、Configuration Manager では承認状態が保持されません。When you edit or copy a script, Configuration Manager doesn't persist the approval state.

ヒント

クライアント上でアクティブに実行されているスクリプトは編集しないでください。Don't edit a script that's actively running on clients. 元のスクリプトの実行が完了せず、このようなクライアントから意図した結果が得られない可能性があります。They won't finish running the original script, and you may not get the intended results from these clients.

スクリプトの編集Edit a script

  1. [ソフトウェア ライブラリ] ワークスペースの [スクリプト] ノードにアクセスします。Go to the Scripts node under the Software Library workspace.
  2. 編集するスクリプトを選択し、リボンの [編集] をクリックします。Select the script to edit, then click Edit in the ribbon.
  3. スクリプトを変更または再インポートするには、 [スクリプトの詳細] ページを使用します。Change or reimport your script in the Script Details page.
  4. [次へ] をクリックして [概要] を表示し、編集が終了したときに [閉じる] をクリックします。Click Next to view the Summary then Close when you're finished editing.

スクリプトのコピーCopy a script

  1. [ソフトウェア ライブラリ] ワークスペースの [スクリプト] ノードにアクセスします。Go to the Scripts node under the Software Library workspace.
  2. コピーするスクリプトを選択し、リボンの [コピー] をクリックします。Select the script to copy, then click Copy in the ribbon.
  3. [スクリプト名] フィールドでスクリプトの名前を変更し、必要に応じて追加の編集を行います。Rename the script in the Script name field and make any additional edits you may need.
  4. [次へ] をクリックして [概要] を表示し、編集が終了したときに [閉じる] をクリックします。Click Next to view the Summary then Close when you're finished editing.

[スクリプトの実行]Run a script

スクリプトが承認されたら、1 つのデバイスまたはコレクションに対してそのスクリプトを実行できます。After a script is approved, it can be run against a single device or a collection. スクリプトの実行を開始すると、それは 1 時間以内にタイムアウトする優先度の高いシステムを使用してすばやく起動されます。Once execution of your script begins, it's launched quickly through a high priority system that times-out in one hour. そしてスクリプトの結果は、状態メッセージ システムを使用して返されます。The results of the script are then returned using a state message system.

スクリプトのターゲットのコレクションを選択するには、以下の操作を行います。To select a collection of targets for your script:

  1. Configuration Manager コンソールで、 [資産とコンプライアンス] をクリックします。In the Configuration Manager console, click Assets and Compliance.
  2. [資産とコンプライアンス] ワークスペースで [デバイス コレクション] をクリックします。In the Assets and Compliance workspace, click Device Collections.
  3. [デバイス コレクション] リストで、スクリプトを実行するデバイスのコレクションをクリックします。In the Device Collections list, click the collection of devices on which you want to run the script.
  4. コレクションを選択し、 [スクリプトの実行] をクリックします。Select a collection of your choice, click Run Script.
  5. スクリプトの実行 ウィザードの [スクリプト] ページで、リストからスクリプトを選択します。On the Script page of the Run Script wizard, choose a script from the list. 承認済みスクリプトのみが表示されます。Only approved scripts are shown.
  6. [次へ] をクリックして、ウィザードを完了します。Click Next, and then complete the wizard.

重要

ターゲット デバイスの電源が 1 時間のあいだ切れているなどの理由で、スクリプトが実行されない場合は、再実行する必要があります。If a script does not run, for example because a target device is turned off during the one hour time period, you must run it again.

ターゲット コンピューターの実行Target machine execution

スクリプトは、対象となるクライアントの システム アカウントまたは コンピューター アカウントとして実行されます。The script is executed as the system or computer account on the targeted client(s). このアカウントのネットワーク アクセスは制限されています。This account has limited network access. スクリプトによるリモート システムおよびリモートの場所へのアクセスは、その点を考慮して準備する必要があります。Any access to remote systems and locations by the script must be provisioned accordingly.

スクリプトの監視Script monitoring

デバイスのコレクション上でスクリプトの実行を開始した後は、次の手順で操作を監視します。After you have initiated running a script on a collection of devices, use the following procedure to monitor the operation. 実行中のスクリプトをリアルタイムで監視することができ、後で特定のスクリプトの実行に関する状態と結果に戻ることができます。You are able to monitor a script in real time as it executes, and later return to the status and results for a given Run Script execution. スクリプトの状態データは、[期限切れのクライアント操作を削除] メンテナンス タスク、またはスクリプト削除の一部としてクリーンアップされます。Script status data is cleaned up as part of the Delete Aged Client Operations maintenance task or deletion of the script.

スクリプト モニター - スクリプトの実行ステータス

  1. Configuration Manager コンソールで、 [監視] をクリックします。In the Configuration Manager console, click Monitoring.

  2. [監視] ワークスペースで、 [スクリプトのステータス] をクリックします。In the Monitoring workspace, click Script Status.

  3. [スクリプトのステータス] リストには、クライアント デバイスで実行した各スクリプトの結果が表示されます。In the Script Status list, you view the results for each script you ran on client devices. スクリプトの終了コード 0 は、通常、スクリプトが正常に実行されたことを示します。A script exit code of 0 generally indicates that the script ran successfully.

    スクリプト モニター - 切り詰められたスクリプト

スクリプトの出力Script output

スクリプトの結果を ConvertTo-Json コマンドレットにパイプすることにより、JSON 形式を使用してクライアントからスクリプトの出力を返します。Client's return script output using JSON formatting by piping the script's results to the ConvertTo-Json cmdlet. JSON 形式では、読み取り可能なスクリプトの出力が一貫して返されます。The JSON format consistently returns readable script output. 出力としてオブジェクトを返さないスクリプトの場合、ConvertTo-Json コマンドレットでは出力が単純な文字列に変換され、JSON ではなくそれがクライアントから返されます。For scripts that do not return objects as output, the ConvertTo-Json cmdlet converts the output to a simple string that the client returns instead of JSON.

  • 不明な結果を取得するスクリプトや、クライアントがオフラインだったスクリプトは、グラフやデータ セットには表示されません。Scripts that get an unknown result, or where the client was offline, won't show in the charts or data set.

  • 大きいスクリプトの出力は 4 KB に切り捨てられるため、そのような出力が返されないようにしてください。Avoid returning large script output since it's truncated to 4 KB.

  • スクリプトで列挙オブジェクトを文字列値に変換して、JSON 形式で適切に表示されるようにしてください。Convert an enum object to a string value in scripts so they're properly displayed in JSON formatting.

    列挙オブジェクトを文字列値に変換する

詳細なスクリプトの出力を、生の形式または構造化された JSON 形式で表示できます。You can view detailed script output in raw or structured JSON format. この書式設定を行うと、出力の読み取りと分析が容易になります。This formatting makes the output easier to read and analyze. スクリプトによって有効な JSON 形式のテキストが返される場合、または ConvertTo-Json PowerShell コマンドレットを使用して出力を JSON に変換できる場合は、 [JSON 形式の出力] または [未加工で出力] として詳細出力を表示します。If the script returns valid JSON-formatted text or the output can be converted to JSON using the ConvertTo-Json PowerShell cmdlet, then view the detailed output as either JSON Output or Raw Output. それ以外の場合は、 [スクリプトの出力] が唯一のオプションです。Otherwise the only option is Script Output.

例:スクリプトの出力を有効な JSON に変換できるExample: Script output is convertible to valid JSON

コマンド: $PSVersionTable.PSVersionCommand: $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      16299  551

例:スクリプト出力が有効な JSON ではないExample: Script output isn't valid JSON

コマンド: Write-Output (Get-WmiObject -Class Win32_OperatingSystem).CaptionCommand: Write-Output (Get-WmiObject -Class Win32_OperatingSystem).Caption

Microsoft Windows 10 Enterprise

ログ ファイルLog files

  • クライアントでは、既定で C:\Windows\CCM\logs に次のログがあります。On the client, by default in C:\Windows\CCM\logs:

    • Scripts.logScripts.log
    • CcmMessaging.logCcmMessaging.log
  • MP では、既定で C:\SMS_CCM\Logs に次のログがあります。On the MP, by default in C:\SMS_CCM\Logs:

    • MP_RelayMsgMgr.logMP_RelayMsgMgr.log
  • サイト サーバーでは、既定で C:\Program Files\Configuration Manager\Logs に次のログがあります。On the site server, by default in C:\Program Files\Configuration Manager\Logs:

    • SMS_Message_Processing_Engine.logSMS_Message_Processing_Engine.log

関連項目See Also