

• AWS Systems Manager CloudWatch ダッシュボードは、2026 年 4 月 30 日以降は利用できなくなります。お客様は、これまでと同様に Amazon CloudWatch コンソールを使用して、Amazon CloudWatch ダッシュボードの表示、作成、管理を継続できます。詳細については、「[Amazon CloudWatch ダッシュボードのドキュメント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)」を参照してください。

# チュートリアル: Run Command で AWS Tools for Windows PowerShell を使用する
<a name="walkthrough-powershell"></a>

以下の例では、AWS Tools for Windows PowerShell を使用してコマンドとコマンドパラメータに関する情報を表示する方法、コマンドを実行する方法、これらのコマンドのステータスを確認する方法を示しています。このウォークスルーには、定義済み AWS Systems Manager ドキュメントごとの例が含まれています。

**重要**  
信頼されている管理者のみが、このトピックで示される Systems Manager で事前設定されたドキュメントの使用を許可されます。Systems Manager ドキュメントで指定されるコマンドまたはスクリプトは、マネージドノードの管理アクセス許可で実行されます。ユーザーに、事前定義済みの Systems Manager ドキュメント (AWS から始まるドキュメント) を実行許可がある場合、そのユーザーには、ノードへの管理者アクセス権もあります。他のすべてのユーザーについては、制限付きドキュメントを作成し、そのドキュメントを特定のユーザーと共有する必要があります。

**Topics**
+ [AWS Tools for Windows PowerShell セッションの設定を構成する](#walkthrough-powershell-settings)
+ [利用可能なすべてのドキュメントを表示します。](#walkthrough-powershell-all-documents)
+ [PowerShell コマンドまたはスクリプトを実行する](#walkthrough-powershell-run-script)
+ [`AWS-InstallApplication` ドキュメントを使用してアプリケーションをインストールする](#walkthrough-powershell-install-application)
+ [`AWS-InstallPowerShellModule` JSON ドキュメントを使用して PowerShell モジュールをインストールする](#walkthrough-powershell-install-module)
+ [`AWS-JoinDirectoryServiceDomain` JSON ドキュメントを使用してマネージドノードをドメインに結合](#walkthrough-powershell-domain-join)
+ [`AWS-ConfigureCloudWatch` ドキュメントを使用して Windows メトリクスを Amazon CloudWatch Logs に送信する](#walkthrough-powershell-windows-metrics)
+ [`AWS-ConfigureWindowsUpdate` ドキュメントを使用して、Windows の自動更新を有効または無効にする](#walkthrough-powershell-enable-windows-update)
+ [Run Command を使用した Windows の更新プログラムの管理](#walkthough-powershell-windows-updates)

## AWS Tools for Windows PowerShell セッションの設定を構成する
<a name="walkthrough-powershell-settings"></a>

**認証情報を指定する**  
ローカルコンピュータで **Tools for Windows PowerShell** を開き、次のコマンドを実行して認証情報を指定します。ユーザーは、設定するマネージドノードの管理者アクセス許可を持っているか、AWS Identity and Access Management (IAM) で適切なアクセス許可を付与されている必要があります。詳細については、「[AWS Systems Manager のマネージドノードのセットアップ](systems-manager-setting-up-nodes.md)」を参照してください。

```
Set-AWSCredentials –AccessKey key-name –SecretKey key-name
```

**デフォルト を設定するAWS リージョン**  
次のコマンドを実行して、PowerShell セッションのリージョンを設定します。この例では、米国東部 (オハイオ) リージョン (us-east-2) を使用しています。Run Command は、「Amazon Web Services 全般のリファレンス」の「[Systems Manager サービスエンドポイント](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region)」に記載されている AWS リージョン で利用できます。

```
Set-DefaultAWSRegion `
    -Region us-east-2
```

## 利用可能なすべてのドキュメントを表示します。
<a name="walkthrough-powershell-all-documents"></a>

このコマンドは、アカウントに使用できるすべてのドキュメントを一覧表示します。

```
Get-SSMDocumentList
```

## PowerShell コマンドまたはスクリプトを実行する
<a name="walkthrough-powershell-run-script"></a>

Run Command と `AWS-RunPowerShell` ドキュメントを使用すると、マネージドノード上で、あたかもローカルにログオンしているかのように、任意のコマンドやスクリプトを実行することができます。コマンドを発行することも、コマンドを実行するためのローカルスクリプトのパスを入力することもできます。

**注記**  
Run Command を使用してスクリプトを呼び出すときのマネージドノードの再起動については、「[コマンド実行時の再起動の処理](send-commands-reboot.md)」を参照してください。

**説明と使用可能なパラメータを表示する**

```
Get-SSMDocumentDescription `
    -Name "AWS-RunPowerShellScript"
```

**パラメータの詳細情報を表示する**

```
Get-SSMDocumentDescription `
    -Name "AWS-RunPowerShellScript" | Select -ExpandProperty Parameters
```

### `AWS-RunPowerShellScript` ドキュメントを使用してコマンドを送信する
<a name="walkthrough-powershell-run-script-send-command-aws-runpowershellscript"></a>

次のコマンドでは、2 つのマネージドノードの `"C:\Users"` ディレクトリの内容と `"C:\"` ディレクトリの内容が表示されます。

```
$runPSCommand = Send-SSMCommand `
    -InstanceIds @("instance-ID-1", "instance-ID-2") `
    -DocumentName "AWS-RunPowerShellScript" `
    -Comment "Demo AWS-RunPowerShellScript with two instances" `
    -Parameter @{'commands'=@('dir C:\Users', 'dir C:\')}
```

**コマンドリクエストの詳細を取得する**  
次のコマンドでは、`CommandId` を使用して、2 つのマネージドノードでのコマンド実行に関するステータスを取得します。この例では、前のコマンドで返された `CommandId` を使用しています。

```
Get-SSMCommand `
    -CommandId $runPSCommand.CommandId
```

この例のコマンドのステータスは Success、Pending、InProgress のいずれかになります。

**マネージドノードごとのコマンド情報を取得**  
次のコマンドでは、前のコマンドの `CommandId` を使用して、マネージドノードごとのコマンド実行に関するステータスを取得します。

```
Get-SSMCommandInvocation `
    -CommandId $runPSCommand.CommandId
```

**特定のマネージドノードのコマンド情報と応答データを取得**  
次のコマンドでは、特定のマネージドノードについて、元の `Send-SSMCommand` の出力を返します。

```
Get-SSMCommandInvocation `
    -CommandId $runPSCommand.CommandId `
    -Details $true `
    -InstanceId instance-ID | Select -ExpandProperty CommandPlugins
```

### コマンドをキャンセルする
<a name="walkthrough-powershell-run-script-cancel-command"></a>

次のコマンドでは、`Send-SSMCommand` ドキュメントの `AWS-RunPowerShellScript` をキャンセルします。

```
$cancelCommand = Send-SSMCommand `
    -InstanceIds @("instance-ID-1","instance-ID-2") `
    -DocumentName "AWS-RunPowerShellScript" `
    -Comment "Demo AWS-RunPowerShellScript with two instances" `
    -Parameter @{'commands'='Start-Sleep –Seconds 120; dir C:\'}

Stop-SSMCommand -CommandId $cancelCommand.CommandId
```

**コマンドの状態を確認する**  
次のコマンドでは、`Cancel` コマンドのステータスを確認します。

```
Get-SSMCommand `
    -CommandId $cancelCommand.CommandId
```

## `AWS-InstallApplication` ドキュメントを使用してアプリケーションをインストールする
<a name="walkthrough-powershell-install-application"></a>

Run Command と `AWS-InstallApplication` ドキュメントを使用すると、マネージドノードでアプリケーションをインストール、修復、またはアンインストールできます。このコマンドには、MSI のパスまたはアドレスが必要です。

**注記**  
Run Command を使用してスクリプトを呼び出すときのマネージドノードの再起動については、「[コマンド実行時の再起動の処理](send-commands-reboot.md)」を参照してください。

**説明と使用可能なパラメータを表示する**

```
Get-SSMDocumentDescription `
    -Name "AWS-InstallApplication"
```

**パラメータの詳細情報を表示する**

```
Get-SSMDocumentDescription `
    -Name "AWS-InstallApplication" | Select -ExpandProperty Parameters
```

### `AWS-InstallApplication` ドキュメントを使用してコマンドを送信する
<a name="walkthrough-powershell-install-application-send-command-aws-installapplication"></a>

次のコマンドでは、無人モードでマネージドノードに Python のバージョンをインストールし、出力を `C:` ドライブにあるローカルテキスト ファイルに記録します。

```
$installAppCommand = Send-SSMCommand `
    -InstanceId instance-ID `
    -DocumentName "AWS-InstallApplication" `
    -Parameter @{'source'='https://www.python.org/ftp/python/2.7.9/python-2.7.9.msi'; 'parameters'='/norestart /quiet /log c:\pythoninstall.txt'}
```

**マネージドノードごとのコマンド情報を取得**  
次のコマンドでは、`CommandId` を使用して、コマンド実行のステータスを取得します。

```
Get-SSMCommandInvocation `
    -CommandId $installAppCommand.CommandId `
    -Details $true
```

**特定のマネージドノードのコマンド情報と応答データを取得**  
次のコマンドでは、Python のインストール結果が返されます。

```
Get-SSMCommandInvocation `
    -CommandId $installAppCommand.CommandId `
    -Details $true `
    -InstanceId instance-ID | Select -ExpandProperty CommandPlugins
```

## `AWS-InstallPowerShellModule` JSON ドキュメントを使用して PowerShell モジュールをインストールする
<a name="walkthrough-powershell-install-module"></a>

Run Command を使用して、マネージドノードに PowerShell モジュールをインストールできます。PowerShell モジュールの詳細については、「[Windows PowerShell モジュール](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_modules?view=powershell-6)」を参照してください。

**説明と使用可能なパラメータを表示する**

```
Get-SSMDocumentDescription `
    -Name "AWS-InstallPowerShellModule"
```

**パラメータの詳細情報を表示する**

```
Get-SSMDocumentDescription `
    -Name "AWS-InstallPowerShellModule" | Select -ExpandProperty Parameters
```

### PowerShell モジュールをインストールする
<a name="walkthrough-powershell-install-module-install"></a>

次のコマンドでは、EZOut.zip ファイルをダウンロードしてインストールし、XPS ビューアをインストールするための追加コマンドも実行しています。最後に、このコマンドの出力が、「amzn-s3-demo-bucket」という名前の S3 バケットにアップロードされます。

```
$installPSCommand = Send-SSMCommand `
    -InstanceId instance-ID `
    -DocumentName "AWS-InstallPowerShellModule" `
    -Parameter @{'source'='https://gallery.technet.microsoft.com/EZOut-33ae0fb7/file/110351/1/EZOut.zip';'commands'=@('Add-WindowsFeature -name XPS-Viewer -restart')} `
    -OutputS3BucketName amzn-s3-demo-bucket
```

**マネージドノードごとのコマンド情報を取得**  
次のコマンドでは、`CommandId` を使用して、コマンド実行のステータスを取得します。

```
Get-SSMCommandInvocation `
    -CommandId $installPSCommand.CommandId `
    -Details $true
```

**マネージドノードのコマンド情報と応答データを取得**  
次のコマンドでは、特定の `Send-SSMCommand` について、元の `CommandId` の出力を返します。

```
Get-SSMCommandInvocation `
    -CommandId $installPSCommand.CommandId `
    -Details $true | Select -ExpandProperty CommandPlugins
```

## `AWS-JoinDirectoryServiceDomain` JSON ドキュメントを使用してマネージドノードをドメインに結合
<a name="walkthrough-powershell-domain-join"></a>

Run Command を使用すると、マネージドノードを AWS Directory Service ドメインにすばやく参加させることができます。このコマンドを実行する前に、[ディレクトリを作成](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_getting_started_create_directory.html) する必要があります。また、 についてさらに詳細をご確認いただくことをお勧めしますDirectory Service 詳細については、[AWS Directory Service 管理ガイド](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/)を参照してください。

ドメインにマネージドノードを結合することしかできません。ドメインからノードを削除することはできません。

**注記**  
Run Command を使用してスクリプトを呼び出す場合の、マネージドノードの詳細については「[コマンド実行時の再起動の処理](send-commands-reboot.md)」を参照してください。

**説明と使用可能なパラメータを表示する**

```
Get-SSMDocumentDescription `
    -Name "AWS-JoinDirectoryServiceDomain"
```

**パラメータの詳細情報を表示する**

```
Get-SSMDocumentDescription `
    -Name "AWS-JoinDirectoryServiceDomain" | Select -ExpandProperty Parameters
```

### マネージドノードのドメインへの参加
<a name="walkthrough-powershell-domain-join-instance"></a>

次のコマンドは、マネージドノードを指定された Directory Service ドメインを作成し、生成された出力を例の Amazon Simple Storage Service (Amazon S3) バケットにアップロードします。

```
$domainJoinCommand = Send-SSMCommand `
    -InstanceId instance-ID `
    -DocumentName "AWS-JoinDirectoryServiceDomain" `
    -Parameter @{'directoryId'='d-example01'; 'directoryName'='ssm.example.com'; 'dnsIpAddresses'=@('192.168.10.195', '192.168.20.97')} `
    -OutputS3BucketName amzn-s3-demo-bucket
```

**マネージドノードごとのコマンド情報を取得**  
次のコマンドでは、`CommandId` を使用して、コマンド実行のステータスを取得します。

```
Get-SSMCommandInvocation `
    -CommandId $domainJoinCommand.CommandId `
    -Details $true
```

**マネージドノードのコマンド情報と応答データを取得**  
このコマンドでは、特定の `Send-SSMCommand` について、元の `CommandId` の出力を返します 。

```
Get-SSMCommandInvocation `
    -CommandId $domainJoinCommand.CommandId `
    -Details $true | Select -ExpandProperty CommandPlugins
```

## `AWS-ConfigureCloudWatch` ドキュメントを使用して Windows メトリクスを Amazon CloudWatch Logs に送信する
<a name="walkthrough-powershell-windows-metrics"></a>

アプリケーション、システム、セキュリティ、および Windows イベントトレーシング (ETW) ログの Windows Server メッセージを Amazon CloudWatch Logs に送信することができます。Systems Manager では、ログ記録を初めて有効にすると、アプリケーション、システム、セキュリティ、および ETW ログについて、ログのアップロードを開始した時点から (1) 分以内に作成されたすべてのログが送信されます。この時点より前に発生したログは含まれません。ログ記録を無効にし、後で再度有効にすると、Systems Manager では無効化の時点からのログが送信されます。カスタムログファイルおよびインターネットインフォメーションサービス (IIS) ログの場合、Systems Manager はログファイルを最初から読み取ります。さらに、Systems Manager は パフォーマンスカウンターデータを CloudWatch Logs に送信することもできます。

以前に EC2Config で CloudWatch 統合を有効にした場合、Systems Manager の設定は、マネージドノードのローカルに保存された `C:\Program Files\Amazon\EC2ConfigService\Settings\AWS.EC2.Windows.CloudWatch.json` ファイル内のに設定よりも優先されます。EC2Config を使用して単一マネージドノードのパフォーマンスカウンターとログを管理する方法の詳細については、 *｢Amazon CloudWatch ユーザーガイド｣* の [｢CloudWatch エージェントを使用して Amazon EC2 インスタンスとオンプレミスサーバーからメトリクスとログを収集する｣](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) を参照してください。

**説明と使用可能なパラメータを表示する**

```
Get-SSMDocumentDescription `
    -Name "AWS-ConfigureCloudWatch"
```

**パラメータの詳細情報を表示する**

```
Get-SSMDocumentDescription `
    -Name "AWS-ConfigureCloudWatch" | Select -ExpandProperty Parameters
```

### アプリケーションログを CloudWatch に送信する
<a name="walkthrough-powershell-windows-metrics-send-logs-cloudwatch"></a>

次のコマンドでは、マネージドノードを設定し、Windows アプリケーションログを CloudWatch に移動します。

```
$cloudWatchCommand = Send-SSMCommand `
    -InstanceID instance-ID `
    -DocumentName "AWS-ConfigureCloudWatch" `
    -Parameter @{'properties'='{"engineConfiguration": {"PollInterval":"00:00:15", "Components":[{"Id":"ApplicationEventLog", "FullName":"AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters":{"LogName":"Application", "Levels":"7"}},{"Id":"CloudWatch", "FullName":"AWS.EC2.Windows.CloudWatch.CloudWatchLogsOutput,AWS.EC2.Windows.CloudWatch", "Parameters":{"Region":"region", "LogGroup":"my-log-group", "LogStream":"instance-id"}}], "Flows":{"Flows":["ApplicationEventLog,CloudWatch"]}}}'}
```

**マネージドノードごとのコマンド情報を取得**  
次のコマンドでは、`CommandId` を使用して、コマンド実行のステータスを取得します。

```
Get-SSMCommandInvocation `
    -CommandId $cloudWatchCommand.CommandId `
    -Details $true
```

**特定のマネージドノードのコマンド情報と応答データを取得**  
次のコマンドは、Amazon CloudWatch の設定の結果を返します。

```
Get-SSMCommandInvocation `
    -CommandId $cloudWatchCommand.CommandId `
    -Details $true `
    -InstanceId instance-ID | Select -ExpandProperty CommandPlugins
```

### `AWS-ConfigureCloudWatch` ドキュメントを使用して CloudWatch にパフォーマンスカウンターを送信する
<a name="walkthrough-powershell-windows-metrics-send-performance-counters-cloudwatch"></a>

次のデモンストレーションコマンドは、パフォーマンスカウンタを CloudWatch にアップロードします。詳細については、*[Amazon CloudWatch ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)*を参照してください。

```
$cloudWatchMetricsCommand = Send-SSMCommand `
    -InstanceID instance-ID `
    -DocumentName "AWS-ConfigureCloudWatch" `
    -Parameter @{'properties'='{"engineConfiguration": {"PollInterval":"00:00:15", "Components":[{"Id":"PerformanceCounter", "FullName":"AWS.EC2.Windows.CloudWatch.PerformanceCounterComponent.PerformanceCounterInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters":{"CategoryName":"Memory", "CounterName":"Available MBytes", "InstanceName":"", "MetricName":"AvailableMemory", "Unit":"Megabytes","DimensionName":"", "DimensionValue":""}},{"Id":"CloudWatch", "FullName":"AWS.EC2.Windows.CloudWatch.CloudWatch.CloudWatchOutputComponent,AWS.EC2.Windows.CloudWatch", "Parameters":{"AccessKey":"", "SecretKey":"","Region":"region", "NameSpace":"Windows-Default"}}], "Flows":{"Flows":["PerformanceCounter,CloudWatch"]}}}'}
```

## `AWS-ConfigureWindowsUpdate` ドキュメントを使用して、Windows の自動更新を有効または無効にする
<a name="walkthrough-powershell-enable-windows-update"></a>

Run Command と `AWS-ConfigureWindowsUpdate` ドキュメントを使用すると、Windows Server マネージドノードに対する Windows 自動更新を有効または無効にできます。このコマンドは、指定の日時に Windows 更新プログラムがダウンロードおよびインストールされるように Windows Update Agent を設定します。更新プログラムで再起動が必要になった場合は、更新プログラムのインストールから 15 分後にマネージドノードが自動的に再起動されます。このコマンドを使用すると、Windows Update で更新プログラムの有無が確認され、インストールは実行されないように設定することもできます。この `AWS-ConfigureWindowsUpdate` ドキュメントは Windows Server 2012 以降のバージョンで正式にサポートされています。

**説明と使用可能なパラメータを表示する**

```
Get-SSMDocumentDescription `
    –Name "AWS-ConfigureWindowsUpdate"
```

**パラメータの詳細情報を表示する**

```
Get-SSMDocumentDescription `
    -Name "AWS-ConfigureWindowsUpdate" | Select -ExpandProperty Parameters
```

### Windows 自動更新を有効にする
<a name="walkthrough-powershell-enable-windows-update-automatic"></a>

次のコマンドでは、毎日 10:00 PM に自動的に更新プログラムがダウンロードおよびインストールされるように Windows Update を設定します。

```
$configureWindowsUpdateCommand = Send-SSMCommand `
    -InstanceId instance-ID `
    -DocumentName "AWS-ConfigureWindowsUpdate" `
    -Parameters @{'updateLevel'='InstallUpdatesAutomatically'; 'scheduledInstallDay'='Daily'; 'scheduledInstallTime'='22:00'}
```

**Windows 自動更新を有効にするコマンドのステータスを表示する**  
次のコマンドでは、`CommandId` を使用して、Windows 自動更新を有効にするためのコマンド実行のステータスを取得します。

```
Get-SSMCommandInvocation `
    -Details $true `
    -CommandId $configureWindowsUpdateCommand.CommandId | Select -ExpandProperty CommandPlugins
```

### Windows 自動更新を無効にする
<a name="walkthrough-powershell-enable-windows-update-disable"></a>

次のコマンドでは、システムによって更新プログラムの有無が確認されても自動的にはマネージドノードが更新されないように、Windows Update の通知レベルを引き下げます。

```
$configureWindowsUpdateCommand = Send-SSMCommand `
    -InstanceId instance-ID `
    -DocumentName "AWS-ConfigureWindowsUpdate" `
    -Parameters @{'updateLevel'='NeverCheckForUpdates'}
```

**Windows 自動更新を無効にするコマンドのステータスを表示する**  
次のコマンドでは、`CommandId` を使用して、Windows 自動更新を無効にするためのコマンド実行のステータスを取得します。

```
Get-SSMCommandInvocation `
    -Details $true `
    -CommandId $configureWindowsUpdateCommand.CommandId | Select -ExpandProperty CommandPlugins
```

## Run Command を使用した Windows の更新プログラムの管理
<a name="walkthough-powershell-windows-updates"></a>

Run Command と `AWS-InstallWindowsUpdates` のドキュメントを使用して、Windows Server マネージドノードの更新を管理できます。このコマンドは、マネージドノードに不足している更新プログラムをスキャンまたはインストールし、必要に応じてインストール後に再起動します。また、環境にインストールする更新の適切な分類と重大度レベルを指定することもできます。

**注記**  
Run Command を使用してスクリプトを呼び出すときのマネージドノードの再起動については、「[コマンド実行時の再起動の処理](send-commands-reboot.md)」を参照してください。

以下の例では、指定した Windows Update 管理タスクを実行する方法を示しています。

### 不足しているすべての Windows 更新プログラムを検索します。
<a name="walkthough-powershell-windows-updates-search"></a>

```
Send-SSMCommand `
    -InstanceId instance-ID `
    -DocumentName "AWS-InstallWindowsUpdates" `
    -Parameters @{'Action'='Scan'}
```

### 特定の Windows 更新プログラムをインストールします。
<a name="walkthough-powershell-windows-updates-install-specific"></a>

```
Send-SSMCommand `
    -InstanceId instance-ID `
    -DocumentName "AWS-InstallWindowsUpdates" `
    -Parameters @{'Action'='Install';'IncludeKbs'='kb-ID-1,kb-ID-2,kb-ID-3';'AllowReboot'='True'}
```

### 不足している重要な Windows 更新プログラムをインストールします。
<a name="walkthough-powershell-windows-updates-install-missing"></a>

```
Send-SSMCommand `
    -InstanceId instance-ID `
    -DocumentName "AWS-InstallWindowsUpdates" `
    -Parameters @{'Action'='Install';'SeverityLevels'='Important';'AllowReboot'='True'}
```

### 不足している Windows Update をインストールします (特定の除外あり)。
<a name="walkthough-powershell-windows-updates-install-exclusions"></a>

```
Send-SSMCommand `
    -InstanceId instance-ID `
    -DocumentName "AWS-InstallWindowsUpdates" `
    -Parameters @{'Action'='Install';'ExcludeKbs'='kb-ID-1,kb-ID-2';'AllowReboot'='True'}
```