Procedura guidata: usare l'AWS Tools for Windows PowerShell con Run Command - AWS Systems Manager

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.

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 –AccessKey key-name –SecretKey key-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 ` -InstanceId instance-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 ` -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'}
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 ` -InstanceId instance-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 ` -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
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 ` -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
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 ` -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"]}}}'}
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 ` -InstanceId instance-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 ` -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"]}}}'}

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 ` -InstanceId instance-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 ` -InstanceId instance-ID | Select -ExpandProperty CommandPlugins

Aggiornare EC2Config a una versione specifica

Il comando seguente esegue il downgrade di EC2Config a una versione precedente.

Send-SSMCommand ` -InstanceId instance-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 ` -InstanceId instance-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 ` -InstanceId instance-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.

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

Installare specifici aggiornamenti di Windows

Send-SSMCommand ` -InstanceId instance-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 ` -InstanceId instance-ID ` -DocumentName "AWS-InstallWindowsUpdates" ` -Parameters @{'Action'='Install';'SeverityLevels'='Important';'AllowReboot'='True'}

Installare gli aggiornamenti di Windows mancanti con specifiche esclusioni

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