Condividi tramite


Snap-in di PowerShell: uso dei cmdlet basati su attività dello snap-in di PowerShell IIS

di Thomas Deml

Introduzione

I cmdlet snap-in di IIS PowerShell possono essere raggruppati in tre categorie:

  • Cmdlet richiesti dalla gerarchia del provider
  • cmdlet configuratioin di basso livello
  • Cmdlet basati su attività

Questa procedura dettagliata introduce il cmdlet IIS basato su attività e fornisce alcuni esempi su come usarli.

Cmdlet richiesti dalla gerarchia del provider

IIS ha deciso presto di rendere disponibile la configurazione IIS come gerarchia di siti, applicazioni, directory virtuali e pool di applicazioni. Il vantaggio è che i clienti possono passare a una posizione, ad esempio un sito o un'applicazione, nella gerarchia e impostare le impostazioni in questo contesto. Per supportare una gerarchia di navigazione determinati cmdlet di PowerShell predefiniti, ad esempio New-Item, Set-ItemProperty e così via. deve essere implementato. La gerarchia e questi cmdlet predefiniti sono stati spediti in Tech Preview 1 nel mese di aprile 2008.

Cmdlet di configurazione di basso livello

Il sistema di configurazione IIS è stato completamente modificato nella versione 7. Il nuovo sistema di configurazione è completamente basato su XML, basato sullo schema e completamente estendibile. Il nuovo server FTP IIS (FTP7) e molti altri moduli IIS, ad esempio il rewriter URL, WebDAV e così via. sfruttare questa estendibilità per collegare il sistema di configurazione IIS.

Questa estendibilità rende difficile la spedizione dei cmdlet con argomenti statici. Si supponga che il caso in cui qualcuno estende una sezione di configurazione esistente, ad esempio qualcuno aggiunge una proprietà myFancyNewBehavior alla sezione di configurazione virtualDirectory. Senza rivedere i cmdlet IIS fancyNewBehavior impostazione non sarebbe impostata tramite i cmdlet di PowerShell Snap-in.

Technical Preview 1 di IIS PowerShell Snap-in include solo cmdlet di basso livello che hanno preso in considerazione l'estendibilità totale della configurazione. Ogni impostazione di configurazione IIS (più di 100 sezioni di configurazione con raccolte, enumerazioni e così via) può essere configurata usando questi cmdlet. Questi cmdlet di basso livello funzionano anche sulla configurazione personalizzata, ad esempio se si è estesa la configurazione IIS con la propria sezione di configurazione.

Di seguito è riportato l'elenco dei cmdlet di basso livello che vengono forniti da Tech Preview 1 nel mese di aprile 2008:

Add-WebConfiguration                                                                               
Add-WebConfigurationProperty                                                                       
Begin-WebCommitDelay                                                                                  
Clear-WebConfiguration                                                                             
End-WebCommitDelay                                                                                    
Get-WebURL                                                                                            
Get-WebConfiguration                                                                               
Get-WebConfigurationProperty                                                                       
Get-WebItemState                                                                                   
Remove-WebConfigurationProperty                                                                    
Restart-WebItem                                                                                    
Set-WebConfiguration                                                                               
Set-WebConfigurationProperty   
Select-WebConfiguration                                                             
Start-WebItem                                                                                      
Stop-WebItem

Cmdlet basati su attività

Ecco le notizie emozionanti. Per le attività IIS quotidiane, ad esempio la creazione di siti Web, la traccia delle richieste abilitate, l'aggiunta di un gestore o un modulo che probabilmente si vuole usare i cmdlet basati su attività che vengono usati con lo snap-in di PowerShell IIS. Ecco un elenco dei cmdlet basati su attività:

Add-WebConfigurationLock
Backup-WebConfiguration
Clear-WebRequestTracingSettings
ConvertTo-WebApplication
Disable-WebGlobalModule
Disable-WebRequestTracing
Enable-WebGlobalModule
Enable-WebRequestTracing
Get-WebAppDomain
Get-WebApplication
Get-WebAppPoolState
Get-WebBinding
Get-WebConfigFile
Get-WebConfigurationBackup
Get-WebConfigurationLocation
Get-WebConfigurationLock
Get-WebFilePath
Get-WebGlobalModule
Get-WebHandler
Get-WebItemState
Get-WebManagedModule
Get-WebRequest
Get-Website
Get-WebsiteState
Get-WebURL
Get-WebVirtualDirectory
New-WebApplication
New-WebAppPool
New-WebBinding
New-WebFtpSite
New-WebGlobalModule
New-WebHandler
New-WebManagedModule
New-Website
New-WebVirtualDirectory
Remove-WebApplication
Remove-WebAppPool
Remove-WebBinding
Remove-WebConfigurationBackup
Remove-WebConfigurationLocation
Remove-WebConfigurationLock
Remove-WebGlobalModule
Remove-WebHandler
Remove-WebManagedModule
Remove-Website
Remove-WebVirtualDirectory
Rename-WebConfigurationLocation
Restart-WebAppPool
Set-WebBinding
Set-WebGlobalModule
Set-WebHandler
Set-WebManagedModule
Start-WebAppPool
Start-Website
Stop-WebAppPool
Stop-Website

Guida per i cmdlet basati su attività

'L'uso del sistema della Guida predefinito è il modo più semplice per scoprire quali cmdlet sono disponibili e come usarli. Il comando seguente elenca tutti i cmdlet IIS.

get-command -pssnapin WebAdministration

Un altro modo consiste nel cercare il prefisso -Web usato per tutti i cmdlet IIS. Provare questo comando:

get-command *-Web*

Il sistema della Guida predefinito fornisce una descrizione rapida su un singolo cmdlet, sui parametri e sugli argomenti necessari e presenta esempi su come usare il cmdlet. Attenersi alla procedura seguente:

get-help New-WebSite

Per ricevere la guida completa su un determinato cmdlet, è possibile immettere quanto segue:

get-help New-Website -full

Se si vuole visualizzare solo un esempio su come usarlo provare il comando seguente:

get-help New-Website -example

Esempio end-to-end

La potenza dei cmdlet basati su attività mostra quando viene usata per uno scenario end-to-end. Nell'esempio seguente verrà creato un nuovo sito Web, aggiungere un contenuto al sito Web, apportare alcune modifiche di configurazione, abilitare Traccia richiesta e richiedere la nuova pagina del contenuto.

Passaggio 1: Creazione di un nuovo sito Web

Immettere i comandi seguenti:

PS IIS:\>mkdir "$env:systemdrive\inetpub\MyNewWebSite"

In questo modo viene creata una nuova directory fisica per il nuovo sito.

PS IIS:\>New-Website -name "MyNewWebSite" -PhysicalPath "$env:systemdrive\inetpub\MyNewWebSite" -port 81

La riga precedente crea un nuovo sito Web che punta alla directory appena creata e in ascolto sulla porta 81.

Passaggio 2: Aggiunta di contenuto al sito

I comandi seguenti esplorano lo spazio dei nomi IIS e creano un nuovo file di contenuto.

PS IIS:\>cd IIS:\sites\MyNewWebsite

Il comando precedente passa al nodo MyNewWebSite nello spazio dei nomi IIS.

PS IIS:\Sites\MyNewWebSite> dir

Il comando precedente elenca tutti i contenuti del nuovo sito Web. Non mostrerà nulla perché non c'è contenuto.

PS IIS:\Sites\MyNewWebSite> notepad "$(Get-WebFilePath .)\test.htm"

Il comando precedente apre il blocco note e consente di modificare test.htm. Invece di dover ricordare dove il percorso fisico del sito Web. Immettere un testo, ad esempio "Hello World" e salvare il file nel blocco note.

PS IIS:\Sites\MyNewWebSite> dir

Se si immette di nuovo il comando dir, verrà visualizzato il file appena creato test.htm.

PS IIS:\Sites\MyNewWebSite> Get-WebURL -content ".\test.htm"

Il comando precedente eseguirà una richiesta HTTP al sito Web appena creato e restituirà il contenuto immesso nel blocco note.

Passaggio 3: Abilitazione della traccia delle richieste

IMPORTANTE: per questo esempio è necessario abilitare la funzionalità traccia IIS. In Windows Vista aprire il Pannello di controllo fare clic su "Programmi", selezionare "Attiva o disattiva le funzionalità di Windows". Trovare e selezionare "Traccia" in "Internet Information Services", "Servizi Web a livello mondiale", "Integrità e diagnostica" e fare clic su "OK".

Come ultimo passaggio si abilita La traccia delle richieste. Web Request Tracing è una funzionalità IIS che consente di ottenere un log dettagliato di ciò che è successo durante l'esecuzione di una richiesta. Questa funzionalità è estremamente utile per molti scenari di risoluzione dei problemi. Per abilitare La traccia delle richieste Web è sufficiente eseguire un'altra cmldet con riconoscimento della posizione denominata Enable-WebRequestTracing.

PS IIS:\Sites\MyNewWebSite> Enable-WebRequestTracing

Esaminiamo ora il file web.config che cosa è stata scritta dalla Enable-WebRequestTracing cmdlet. Questa operazione viene eseguita usando il cmdlet Get-WebConfigFile che è anche a conoscenza della posizione:

PS IIS:\Sites\MyNewWebSite> notepad (Get-WebConfigFile)

La configurazione è simile alla seguente:

Contenuto del file di web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <tracing>
            <traceFailedRequests>
                <add path="*">
                    <traceAreas>
                        <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
                    </traceAreas>
                    <failureDefinitions timeTaken="00:00:30" statusCodes="200-500" verbosity="Warning" />
                </add>
            </traceFailedRequests>
        </tracing>
    </system.webServer>
</configuration>

La configurazione importante è la regola failureDefinitions. Per impostazione predefinita, viene generato un file di traccia quando il codice di errore è compreso tra 200 e 500 o quando la richiesta richiede più di 30 secondi. Si esegue una richiesta che genera una risposta nell'intervallo di errori 200-500 eseguendo il comando seguente:

PS IIS:\Sites\MyNewWebSite>Get-WebURL -url http://localhost:81/URL_DOES_NOT_EXIST

Una richiesta a una risorsa non esistente genera un errore 404. Per esaminare il file di traccia, è necessario passare al percorso seguente:

PS IIS:\Sites\MyNewWebSite>cd "$env:systemdrive\inetpub\logs\failedReqLogfiles\w3svc2\"

Ora è possibile esaminare il file di traccia aprendo il file xml in Internet Explorer:

PS C:\inetpub\logs\FailedReqLogFiles\W3SVC2>&"$env:programfiles\Internet Explorer\iexplore.exe" "$env:systemdrive\inetpub\logs\failedReqLogfiles\w3svc2\fr000001.xml"

Riepilogo

I nuovi cmdlet basati su attività offrono agli amministratori un modo semplice per eseguire attività IIS quotidiane con PowerShell. I cmdlet offrono la consapevolezza della posizione e la sintassi intuitiva e la guida.

I cmdlet IIS di basso livello forniti da Tech Preview 1 consentiranno comunque attività di amministrazione IIS più avanzate.