Procedura guidata: usare l'AWS Tools for Windows PowerShell con Run Command
L'esempio seguente illustra come usare AWS Tools for Windows PowerShell per visualizzare informazioni sui comandi e sui parametri dei comandi, come eseguire comandi e come visualizzare lo stato di tali comandi. Questa procedura guidata include un esempio per ognuno dei documenti AWS Systems Manager predefiniti.
Importante
Solo gli amministratori fidati dovrebbero essere autorizzati a usare i documenti Systems Manager preconfigurati mostrati in questo argomento. I comandi o gli script specificati nei documenti Systems Manager vengono eseguiti con privilegi amministrativi sui nodi gestiti. Se un utente è autorizzato a eseguire uno dei documenti Systems Manager predefiniti (qualsiasi documento che inizia con AWS), lo stesso utente avrà anche accesso al nodo come amministratore. Per tutti gli altri utenti, è consigliabile creare documenti restrittivi e condividerli con utenti specifici.
Argomenti
- Configurare le impostazioni della sessione di AWS Tools for Windows PowerShell 
- Installare un'applicazione usandoAWS-InstallApplicationdocumento 
- Installare un modulo di PowerShell usandoAWS-InstallPowerShellModuleDocumento JSON 
- Aggiungere un nodo gestito a un dominio usando il Documento JSON AWS-JoinDirectoryServiceDomain 
Configurare le impostazioni della sessione di AWS Tools for Windows PowerShell
Specificare le credenziali
Aprire Tools for Windows PowerShell nel computer locale ed eseguire questo comando per specificare le credenziali. Devi disporre dei privilegi di amministratore sui nodi gestiti da configurare oppure delle autorizzazioni appropriate in AWS Identity and Access Management (IAM). Per ulteriori informazioni, consulta Configurazione di nodi gestiti per AWS Systems Manager.
Set-AWSCredentials –AccessKeykey-name–SecretKeykey-name
Set As Default (Utilizza come impostazione predefinita) Regione AWS
Eseguire questo comando per impostare la regione per la sessione PowerShell. Questo esempio utilizza la regione Stati Uniti orientali (Ohio) (us-east-2). Run Command è disponibile nelle Regioni AWS elencate in Endpoint del servizio di System Manager nella Riferimenti generali di Amazon Web Services.
Set-DefaultAWSRegion ` -Region us-east-2
Creare un elenco di tutti i documenti disponibili
Questo comando elenca tutti i documenti disponibili per il tuo account:
Get-SSMDocumentList
Eseguire comandi o script PowerShell
Se usi Run Command e il documento AWS-RunPowerShell, è possibile eseguire qualsiasi comando o script su un nodo gestito come se fossi connesso localmente. È possibile inviare comandi o digitare il percorso di uno script locale per eseguire il comando. 
Nota
Per ulteriori informazioni sul riavvio dei nodi gestiti quando usi Run Command per chiamare gli script, consulta Gestione di riavvii durante l'esecuzione dei comandi.
Visualizzare la descrizione e i parametri disponibili
Get-SSMDocumentDescription ` -Name "AWS-RunPowerShellScript"
Visualizzare ulteriori informazioni sui parametri
Get-SSMDocumentDescription ` -Name "AWS-RunPowerShellScript" | Select -ExpandProperty Parameters
Invia comandi utilizzando il documento AWS-RunPowerShellScript
                    Il comando seguente mostra il contenuto della directory "C:\Users" e il contenuto della directory "C:\" su due nodi gestiti. 
$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:\')}
Ottenere i dettagli della richiesta del comando
Il comando seguente usa CommandId per ottenere lo stato di esecuzione del comando su entrambi i nodi gestiti. Questo esempio usa CommandId restituito nel comando precedente. 
Get-SSMCommand ` -CommandId $runPSCommand.CommandId
Lo stato del comando in questo esempio può essere Success (Riuscito), Pending (In attesa) o InProgress (In corso).
Ottenere informazioni sul comando per nodo gestito
Il comando seguente usa CommandId del comando precedente per ottenere lo stato di esecuzione del comando per singoli nodi gestiti.
Get-SSMCommandInvocation ` -CommandId $runPSCommand.CommandId
Ottenere informazioni sul comando con i dati di risposta per un nodo gestito specifico
Il comando seguente restituisce l'output del comando Send-SSMCommand originale per un nodo gestito specifico. 
Get-SSMCommandInvocation ` -CommandId $runPSCommand.CommandId ` -Details $true ` -InstanceIdinstance-ID| Select -ExpandProperty CommandPlugins
Annullare un comando
Il comando seguente annulla Send-SSMCommand per il documento 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
Controllare lo stato del comando
Il comando seguente controlla lo stato del comando Cancel
Get-SSMCommand ` -CommandId $cancelCommand.CommandId
Installare un'applicazione usandoAWS-InstallApplicationdocumento
                Utilizzando Run Command e il documento AWS-InstallApplication, è possibile installare, riparare o disinstallare applicazioni su nodi gestiti. Il comando richiede il percorso o l'indirizzo di un file MSI.
Nota
Per ulteriori informazioni sul riavvio dei nodi gestiti quando usi Run Command per chiamare gli script, consulta Gestione di riavvii durante l'esecuzione dei comandi.
Visualizzare la descrizione e i parametri disponibili
Get-SSMDocumentDescription ` -Name "AWS-InstallApplication"
Visualizzare ulteriori informazioni sui parametri
Get-SSMDocumentDescription ` -Name "AWS-InstallApplication" | Select -ExpandProperty Parameters
Invia comandi utilizzando il documento AWS-InstallApplication
                    Il comando seguente installa una versione di Python nel nodo gestito in modalità automatica e registra l'output in un file di testo locale nell'unità C:.
$installAppCommand = Send-SSMCommand ` -InstanceIdinstance-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'}
Ottenere informazioni sul comando per nodo gestito
Il comando seguente usa CommandId per ottenere lo stato di esecuzione del comando.
Get-SSMCommandInvocation ` -CommandId $installAppCommand.CommandId ` -Details $true
Ottenere informazioni sul comando con i dati di risposta per un nodo gestito specifico
Il comando seguente restituisce i risultati dell'installazione di Python.
Get-SSMCommandInvocation ` -CommandId $installAppCommand.CommandId ` -Details $true ` -InstanceIdinstance-ID| Select -ExpandProperty CommandPlugins
Installare un modulo di PowerShell usandoAWS-InstallPowerShellModuleDocumento JSON
                È possibile usare Run Command per installare moduli di PowerShell in nodi gestiti di EC2. Per ulteriori informazioni sui moduli di PowerShell, consulta la pagina relativa ai moduli di Windows PowerShell
Visualizzare la descrizione e i parametri disponibili
Get-SSMDocumentDescription ` -Name "AWS-InstallPowerShellModule"
Visualizzare ulteriori informazioni sui parametri
Get-SSMDocumentDescription ` -Name "AWS-InstallPowerShellModule" | Select -ExpandProperty Parameters
Installare un modulo di PowerShell
Il comando seguente scarica il file EZOut.zip, lo installa e quindi esegue un altro comando per installare il visualizzatore XPS. Infine, l'output di questo comando viene caricato in un bucket S3 denominato “amzn-s3-demo-bucket”.
$installPSCommand = Send-SSMCommand ` -InstanceIdinstance-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')} ` -OutputS3BucketNameamzn-s3-demo-bucket
Ottenere informazioni sul comando per nodo gestito
Il comando seguente usa CommandId per ottenere lo stato di esecuzione del comando. 
Get-SSMCommandInvocation ` -CommandId $installPSCommand.CommandId ` -Details $true
Ottenere informazioni sul comando con i dati di risposta per il nodo gestito
Il comando seguente restituisce l'output del comando Send-SSMCommand originale per il CommandId specifico. 
Get-SSMCommandInvocation ` -CommandId $installPSCommand.CommandId ` -Details $true | Select -ExpandProperty CommandPlugins
Aggiungere un nodo gestito a un dominio usando il Documento JSON AWS-JoinDirectoryServiceDomain
                Con Run Command è possibile aggiungere rapidamente un nodo gestito a un dominio AWS Directory Service. Prima di eseguire il comando, è necessario creare una directory. Ti consigliamo anche di consultare AWS Directory Service. Per ulteriori informazioni, consulta la Guida di amministrazione di AWS Directory Service.
Al momento è possibile solo aggiungere un nodo gestito a un dominio. Non è possibile rimuovere un nodo gestito da un dominio.
Nota
Per informazioni sui nodi gestiti durante l'utilizzo di Run Command per chiamare script, vedi Gestione di riavvii durante l'esecuzione dei comandi.
Visualizzare la descrizione e i parametri disponibili
Get-SSMDocumentDescription ` -Name "AWS-JoinDirectoryServiceDomain"
Visualizzare ulteriori informazioni sui parametri
Get-SSMDocumentDescription ` -Name "AWS-JoinDirectoryServiceDomain" | Select -ExpandProperty Parameters
Unisci un nodo gestito a un dominio
Il seguente comando unisce un nodo gestito al dato AWS Directory Service e carica qualsiasi output generato nel bucket Amazon Simple Storage Service (Amazon S3) di esempio.
$domainJoinCommand = Send-SSMCommand ` -InstanceIdinstance-ID` -DocumentName "AWS-JoinDirectoryServiceDomain" ` -Parameter @{'directoryId'='d-example01'; 'directoryName'='ssm.example.com'; 'dnsIpAddresses'=@('192.168.10.195', '192.168.20.97')} ` -OutputS3BucketNameamzn-s3-demo-bucket
Ottenere informazioni sul comando per nodo gestito
Il comando seguente usa CommandId per ottenere lo stato di esecuzione del comando. 
Get-SSMCommandInvocation ` -CommandId $domainJoinCommand.CommandId ` -Details $true
Ottenere informazioni sul comando con i dati di risposta per il nodo gestito
Questo comando restituisce l'output dell'originale Send-SSMCommand per lo specifico CommandId.
Get-SSMCommandInvocation ` -CommandId $domainJoinCommand.CommandId ` -Details $true | Select -ExpandProperty CommandPlugins
Inviare i parametri di Windows ad Amazon CloudWatch Logs utilizzando il documento AWS-ConfigureCloudWatch
                È possibile inviare i messaggi Windows Server nei log di applicazione, sistema, sicurezza ed Event Tracing for Windows (ETW) ad Amazon CloudWatch Logs. Quando abiliti la registrazione per la prima volta, invia tutti i log generati entro 1 minuto dal momento in cui inizi il caricamento per i log applicazioni, di sistema, di sicurezza e di ETW. I log precedenti a questo intervallo non sono inclusi. Se disabiliti la registrazione e la riattiva in seguito, Systems Manager invia i log dal momento che è stata interrotta. Per tutti i file di log personalizzati e log IIS (Internet Information Services), Systems Manager legge i file di log dall'inizio. Systems Manager può anche inviare i dati dei contatori delle prestazioni ad CloudWatch Logs.
Se hai già attivato l'integrazione CloudWatch in EC2Config, le impostazioni Systems Manager sostituiscono tutte le impostazioni archiviate localmente nel nodo gestito nel file C:\Program
                        Files\Amazon\EC2ConfigService\Settings\AWS.EC2.Windows.CloudWatch.json. Per ulteriori informazioni sull'uso di EC2Config per gestire le unità di conteggio delle prestazioni, consulta Raccolta di parametri e log da istanze Amazon EC2 e da server On-Premises con l'agente di CloudWatch nella Guida per l'utente di Amazon CloudWatch.
Visualizzare la descrizione e i parametri disponibili
Get-SSMDocumentDescription ` -Name "AWS-ConfigureCloudWatch"
Visualizzare ulteriori informazioni sui parametri
Get-SSMDocumentDescription ` -Name "AWS-ConfigureCloudWatch" | Select -ExpandProperty Parameters
Inviare i log applicazioni a CloudWatch
Il comando seguente configura il nodo gestito e sposta i log applicazioni di Windows in CloudWatch.
$cloudWatchCommand = Send-SSMCommand ` -InstanceIDinstance-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"]}}}'}
Ottenere informazioni sul comando per nodo gestito
Il comando seguente usa CommandId per ottenere lo stato di esecuzione del comando. 
Get-SSMCommandInvocation ` -CommandId $cloudWatchCommand.CommandId ` -Details $true
Ottenere informazioni sul comando con i dati di risposta per un nodo gestito specifico
Il comando seguente restituisce i risultati della configurazione di Amazon CloudWatch.
Get-SSMCommandInvocation ` -CommandId $cloudWatchCommand.CommandId ` -Details $true ` -InstanceIdinstance-ID| Select -ExpandProperty CommandPlugins
Inviare i contatori delle prestazioni ad Amazon CloudWatch utilizzando il documento AWS-ConfigureCloudWatch
                    Il seguente comando di esempio carica i contatori delle prestazioni in CloudWatch. Per ulteriori informazioni, consulta la Guida per l'utente di Amazon CloudWatch.
$cloudWatchMetricsCommand = Send-SSMCommand ` -InstanceIDinstance-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"]}}}'}
Aggiornare EC2Config usandoAWS-UpdateEC2Configdocumento
                Con Run Command e il documento AWS-EC2ConfigUpdate è possibile aggiornare il servizio EC2Config in esecuzione sui nodi gestiti Windows Server. Questo comando può aggiornare il servizio EC2Config alla versione più recente o a una versione specificata.
Visualizzare la descrizione e i parametri disponibili
Get-SSMDocumentDescription ` -Name "AWS-UpdateEC2Config"
Visualizzare ulteriori informazioni sui parametri
Get-SSMDocumentDescription ` -Name "AWS-UpdateEC2Config" | Select -ExpandProperty Parameters
Aggiornare EC2Config alla versione più recente
$ec2ConfigCommand = Send-SSMCommand ` -InstanceIdinstance-ID` -DocumentName "AWS-UpdateEC2Config"
Ottenere informazioni sul comando con i dati di risposta per il nodo gestito
Questo comando restituisce l'output del comando specificato dal Send-SSMCommand precedente.
Get-SSMCommandInvocation ` -CommandId $ec2ConfigCommand.CommandId ` -Details $true ` -InstanceIdinstance-ID| Select -ExpandProperty CommandPlugins
Aggiornare EC2Config a una versione specifica
Il comando seguente esegue il downgrade di EC2Config a una versione precedente.
Send-SSMCommand ` -InstanceIdinstance-ID` -DocumentName "AWS-UpdateEC2Config" ` -Parameter @{'version'='4.9.3519'; 'allowDowngrade'='true'}
Attivare o disattivare l'aggiornamento automatico di Windows utilizzando ilAWS-ConfigureWindowsUpdatedocumento
                Con Run Command e il documento AWS-ConfigureWindowsUpdate è possibile abilitare o disabilitare gli aggiornamenti automatici di Windows nei nodi gestiti Windows Server. Questo comando configura l'agente di aggiornamento di Windows in modo da scaricare e installare gli aggiornamenti di Windows nel giorno e all'ora specificati. Se un aggiornamento richiede il riavvio, il nodo gestito si riavvia automaticamente 15 minuti dopo l'installazione degli aggiornamenti. Con questo comando è possibile anche configurare Windows Update in modo da controllare la disponibilità di aggiornamenti senza installarli. Il documento AWS-ConfigureWindowsUpdate è ufficialmente supportato in Windows Server 2012 e nelle versioni successive.
Visualizzare la descrizione e i parametri disponibili
Get-SSMDocumentDescription ` –Name "AWS-ConfigureWindowsUpdate"
Visualizzare ulteriori informazioni sui parametri
Get-SSMDocumentDescription ` -Name "AWS-ConfigureWindowsUpdate" | Select -ExpandProperty Parameters
Attivare l'aggiornamento automatico di Windows
Il comando seguente configura Windows Update in modo da scaricare e installare automaticamente gli aggiornamenti ogni giorno alle 10:00.
$configureWindowsUpdateCommand = Send-SSMCommand ` -InstanceIdinstance-ID` -DocumentName "AWS-ConfigureWindowsUpdate" ` -Parameters @{'updateLevel'='InstallUpdatesAutomatically'; 'scheduledInstallDay'='Daily'; 'scheduledInstallTime'='22:00'}
Visualizzare lo stato del comando per abilitare l'aggiornamento automatico di Windows
Il comando seguente usa CommandId per ottenere lo stato di esecuzione del comando e abilitare l'aggiornamento automatico di Windows.
Get-SSMCommandInvocation ` -Details $true ` -CommandId $configureWindowsUpdateCommand.CommandId | Select -ExpandProperty CommandPlugins
Disabilitare l'aggiornamento automatico di Windows
Il comando seguente riduce il livello della notifica di Windows Update in modo che il sistema verifichi la disponibilità di aggiornamenti senza aggiornare automaticamente il nodo gestito.
$configureWindowsUpdateCommand = Send-SSMCommand ` -InstanceIdinstance-ID` -DocumentName "AWS-ConfigureWindowsUpdate" ` -Parameters @{'updateLevel'='NeverCheckForUpdates'}
Visualizzare lo stato del comando per disabilitare l'aggiornamento automatico di Windows
Il comando seguente usa CommandId per ottenere lo stato di esecuzione del comando e abilitare l'aggiornamento automatico di Windows.
Get-SSMCommandInvocation ` -Details $true ` -CommandId $configureWindowsUpdateCommand.CommandId | Select -ExpandProperty CommandPlugins
Gestire gli aggiornamenti di Windows usando Run Command
Utilizzando Run Command e il documento AWS-InstallWindowsUpdates è possibile gestire gli aggiornamenti per i nodi gestiti Windows Server. Questo comando analizza o installa gli aggiornamenti mancanti sui nodi gestiti e, facoltativamente, si riavvia dopo l'installazione. È possibile anche specificare le classificazioni e i livelli di gravità appropriati per gli aggiornamenti da installare nell'ambiente.
Nota
Per ulteriori informazioni sul riavvio dei nodi gestiti quando usi Run Command per chiamare gli script, consulta Gestione di riavvii durante l'esecuzione dei comandi.
Gli esempi seguenti dimostrano come eseguire le attività di gestione di Windows Update specificate.
Cercare tutti gli aggiornamenti di Windows mancanti
Send-SSMCommand ` -InstanceIdinstance-ID` -DocumentName "AWS-InstallWindowsUpdates" ` -Parameters @{'Action'='Scan'}
Installare specifici aggiornamenti di Windows
Send-SSMCommand ` -InstanceIdinstance-ID` -DocumentName "AWS-InstallWindowsUpdates" ` -Parameters @{'Action'='Install';'IncludeKbs'='kb-ID-1,kb-ID-2,kb-ID-3';'AllowReboot'='True'}
Installare importanti aggiornamenti di Windows mancanti
Send-SSMCommand ` -InstanceIdinstance-ID` -DocumentName "AWS-InstallWindowsUpdates" ` -Parameters @{'Action'='Install';'SeverityLevels'='Important';'AllowReboot'='True'}
Installare gli aggiornamenti di Windows mancanti con specifiche esclusioni
Send-SSMCommand ` -InstanceIdinstance-ID` -DocumentName "AWS-InstallWindowsUpdates" ` -Parameters @{'Action'='Install';'ExcludeKbs'='kb-ID-1,kb-ID-2';'AllowReboot'='True'}