Script di Windows PowerShell per configurare la limitazione su più computer

In questo vengono illustrati i passaggi necessari per utilizzare uno script di Windows PowerShell per la configurazione delle impostazioni predefinite di limitazione del servizio per più computer all'interno di una farm. Questo esempio può essere facilmente adattato per la modifica di qualsiasi altra impostazione accessibile da AppFabric.

Nella manutenzione di una server farm costituita da più computer, doversi connettere a ciascun singolo computer per modificare una singola impostazione potrebbe rivelarsi una procedura piuttosto seccante. Il problema diventa insostenibile quando nella farm è presente un numero elevato di computer o quando tali modifiche si verificano troppo spesso. Con l'introduzione delle funzionalità di salvataggio permanente e di monitoraggio di Windows Server AppFabric, è oggi disponibile un modo semplice per estrarre le informazioni relative ai computer attivi della farm direttamente dal database e utilizzarle per eseguire comandi di Windows PowerShell per tali computer.

In questo esempio è illustrato come estrarre le informazioni sulla farm dai computer di una farm e come eseguire i cmdlet di Windows PowerShell su tutti i computer attivi.

L'esempio funziona con qualsiasi applicazione. Si consiglia di utilizzare l'Applicazione di esempio di AppFabric comune, creata per l'utilizzo con gli esempi di AppFabric. Per individuare questa applicazione, passare alla cartella <samples>\SampleApplication\OrderApplication, in cui <samples> è il percorso nel quale sono stati installati gli esempi di AppFabric.

Nota

Gli esempi vengono forniti solo per scopi didattici. Non sono destinati a essere utilizzati in un ambiente di produzione e non sono stati testati in un ambiente di produzione. Microsoft non fornisce supporto tecnico per questi esempi.

Prerequisiti

L'esempio può essere eseguito su un singolo o più computer conformi ai seguenti prerequisiti. Per eseguire l'esempio su un singolo computer, è possibile ignorare i riferimenti a più computer.

  • È necessario installare AppFabric su tutti i computer che parteciperanno all'esempio, i quali dovranno utilizzare un database comune per le attività di salvataggio permanente e/o monitoraggio.

  • Per eseguire gli script forniti, sarà necessario disporre dei privilegi amministrativi sul computer in cui viene eseguito l'esempio. A seconda delle modifiche che si desidera applicare, potrebbe essere necessario disporre di privilegi amministrativi per tutti gli altri computer.

  • Tutti i computer partecipanti devono essere aggiunti a un singolo dominio e Gestione remota Windows (WinRM) 2.0 deve essere installato su ciascuno di essi. È possibile scaricare WinRM 2.0 CTP3 per piattaforme precedenti da WinRM 2.0 Downloads (https://go.microsoft.com/fwlink/?LinkId=194424). È possibile modificare l'esempio in modo che venga eseguito in un ambiente non di dominio. Leggere la risposta alla domanda "CAN I TEST REMOTING ON A SINGLE COMPUTER (NOT IN A DOMAIN)?” nella sezione relativa alle domande frequenti sull'esecuzione di comandi remoti in Windows Powershell in about_Remote_FAQ (https://go.microsoft.com/fwlink/?LinkId=194425).

  • Windows PowerShell deve essere abilitato per l'esecuzione remota. A tale scopo, eseguire il comando Enable-PSRemoting -force dopo aver soddisfatto i due prerequisiti precedenti. Per ulteriori informazioni sull'esecuzioni di comandi remoti in Windows PowerShell, digitare help about_remote.

  • Tutti i computer dell'esempio devono essere parte della farm, ovvero le stesse applicazioni e servizi devono essere installati su tutte le macchine. Devono inoltre disporre di dati di monitoraggio permanenti o segnalati almeno una volta nel database comune.

  • Connettività SQL Client e lo snap-in SQL Server per Windows PowerShell devono essere installati sull'host su cui verrà eseguito l'esempio.

File di esempio

  • Script Get-ASActiveMachine.ps1 (nella cartella Codice)

  • Documento Leggimi

Installazione ed esecuzione dell'esempio

  1. Eseguire un host Windows PowerShell (come la console fornita con Windows PowerShell 2.0) come amministratore. Assicurarsi di selezionare "Esegui come amministratore" durante l'esecuzione dell'host se non si utilizza l'account "Administrator" predefinito.

    Nota

    Per eseguire l'esempio, è necessario consentire l'esecuzione di script non firmati sul computer. Questa procedura descrive la modalità di esecuzione.

  2. Nell'host, eseguire il comando: Set-ExecutionPolicy Unrestricted. Questo comando consente di eseguire lo script non firmato di esempio. Assicurarsi di ripristinare l'impostazione dopo aver completato l'esempio. Se si intende eseguire script simili nel proprio ambiente di produzione, è consigliabile invece firmarli. Per ulteriori informazioni sulla firma degli script, vedere about_Signing (https://go.microsoft.com/fwlink/?LinkID=194426).

Rimozione dell'esempio

  1. Per rimuovere questo esempio, ripristinare il criterio di esecuzione al relativo livello precedente oppure all'impostazione predefinita per Windows PowerShell con il seguente comando: Set-ExecutionPolicy Default.

Dimostrazioni

L'esempio è suddiviso in due parti. Nella prima parte viene illustrato come eseguire un cmdlet e in modo specifico i cmdlet di AppFabric su un insieme di computer. Nella seconda parte viene illustrato un cmdlet script utilizzato per ottenere l'elenco dei computer attivi in una farm. Successivamente, viene illustrato un esempio su come utilizzare entrambe le parti.

Configurazione remota

Se tutti i prerequisiti descritti sopra sono soddisfatti, l'esecuzione dei cmdlet sui computer remoti si rivela un'operazione semplice. Il cmdlet da utilizzare è denominato Invoke-Command e utilizza i parametri di tutti i computer su cui eseguirlo e lo script da eseguire su tali computer.

Importante

Eseguendo la procedura indicata in questo esempio, verrà modificato il valore predefinito "numero massimo di chiamate simultanee" per tutti i servizi dei computer su cui si sceglie di eseguirlo. Tale condizione potrebbe avere conseguenze negative negli ambienti di produzione a causa dell'esposizione dei server ad attacchi Denial of Service (DoS) o della negazione dell'accesso ai legittimi chiamanti. È consigliabile non effettuare i seguenti passaggi in ambienti di produzione senza prima aver eseguito il backup dei propri sistemi e aver selezionato un valore corretto per il proprio ambiente. Per verificare l'impostazione corretta del valore MaxConcurrentCalls, rivolgersi al progettista software o consultare la documentazione del prodotto WCF relativa a MaxConcurrentCalls Property (https://go.microsoft.com/fwlink/?LinkId=194427).

Si supponga, ad esempio, di eseguire il seguente comando di AppFabric:

Set-ASAppServiceThrottling -root -MaxConcurrentCalls 200

Per eseguire il comando su un insieme di due computer denominato "Dublin001" e "Dublin002", digitare un comando simile al seguente:

Invoke-Command -ComputerName Dublin001,Dublin002 -ScriptBlock {Import-Module ApplicationServer; Set-ASAppServiceThrottling -root -MaxConcurrentCalls 200}

Si noti che nella definizione del blocco di script (il testo tra parentesi graffe) il primo comando è Import-Module ApplicationServer. In questo modo, si garantisce che l'ambiente remoto creato da Invoke-Command disponga di tutti i cmdlet di AppFabric necessari.

Query di database per i computer attivi

Per eseguire il comando precedente su tutti i computer all'interno di una farm, è necessario mantenere un elenco di tutti i computer da utilizzare per fornire gli argomenti nel parametro ComputerName nell'esempio precedente. In alternativa, è possibile utilizzare un cmdlet script fornito con questo esempio,

denominato Get-ASActiveMachine, che utilizza lo snap-in SQL Server per Windows PowerShell per estrarre i computer attivi dai dati di monitoraggio di AppFabric e i cmdlet di AppFabric predefiniti per ottenere l'elenco di computer attivi dai dati di salvataggio permanente. Integra, infine, i due insiemi di risultati e restituisce il risultato al chiamante.

Per installare questo cmdlet, digitare il seguente comando in qualsiasi host Windows PowerShell (come la console fornita con Windows PowerShell 2.0):

Import-Module <samples>\Samples\Management\MultiMachineConfiguration\Code\Get-ASActiveMachine.ps1

dove <esempi> è la cartella in cui sono installati gli esempi di AppFabric.

Al termine, è possibile eseguire il seguente cmdlet a seguito del quale verrà restituito l'elenco di tutti i computer attivi nella farm:

Get-ASActiveMachine

Nota

Fare riferimento a quanto segue per un elenco di tutti i parametri accettati da questo cmdlet e per informazioni su come utilizzarli se SQL Server non è installato come istanza predefinita sul computer locale e se il database di monitoraggio di AppFabric non è denominato "ApplicationServerMonitoring".

L'elenco restituito dovrebbe essere simile al seguente:

Dublin001
Dublin002

Per integrare la configurazione di più computer con questo cmdlet, eseguire il seguente comando:

Invoke-Command -ComputerName (Get-ASActiveMachine) -ScriptBlock {Import-Module ApplicationServer; Set-ASAppServiceThrottling -root -MaxConcurrentCalls 200}

Get-ASActiveMachine parameters

-Server

Parametro obbligatorio. Se si utilizza SQL Server Express, impostare questo parametro su "<serverName>\SQLExpress". Se si utilizza SQL Server Enterprise, impostare questo parametro su "<serverName>".

-Database

Parametro obbligatorio. Stringa per specificare il database di monitoraggio.

-SiteName

Parametro facoltativo. Parametro del filtro di stringa che comporta al cmdlet solo la restituzione dei computer attivi per il sito specificato.

-VirtualPath

Parametro facoltativo. Parametro del filtro di stringa che comporta al cmdlet solo la restituzione dei computer attivi per il percorso virtuale Questa stringa può essere utilizzata con il parametro -SiteName per specificare che il cmdlet deve restituire solo i computer che eseguono il bilanciamento del carico di un servizio specifico.

-ActiveSince

Parametro facoltativo. Oggetto DateTime che può essere utilizzato per filtrare solo i computer con dati di monitoraggio permanenti o segnalati durante un periodo di tempo specificato. Ad esempio, per restituire i dati delle ultime 24 ore, utilizzare il comando: Get-ASActiveMachine –ActiveSince (Get-Date).AddHours(-24).

-ApplicationObject

Parametro facoltativo. Oggetto Microsoft.ApplicationServer.Management.Data.ApplicationInfo che può essere utilizzato per filtrare solo i computer con dati di monitoraggio permanenti o segnalati relativi a un'applicazione specifica. Viene utilizzato soprattutto in scenari di piping, ad esempio, Get-ASApplication –SiteName ‘Default Web Site’ –VirtualPath \OnboardingWorkflow | Get-ASActiveMachine.

Altre risorse

Per ulteriori informazioni sull'esecuzione remota degli script di Windows PowerShell, vedere about_Remote (https://go.microsoft.com/fwlink/?LinkId=194428) o digitare help about_remote in un host di Windows PowerShell.

  2011-12-05