Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
di Saad Ladki
Introduzione
Questo documento fornisce un'introduzione a WMI tramite la gestione del sito tramite lo spazio dei nomi IIS Web Amministrazione istration. Informazioni su come creare, eliminare, arrestare, avviare e modificare siti: tutte le attività che possono essere convertite facilmente in oggetti come pool di applicazioni e directory virtuali.
Se è necessario visualizzare le proprietà per un sito specifico, si vuole creare ed eliminare un sito o visualizzare tutti i siti nel server, si è arrivati al posto giusto. Questo documento illustra la maggior parte delle attività correlate ai siti e fornisce un'introduzione di base a WMI.
Le attività e le sezioni di questo articolo includono:
- Prima di iniziare
- Recupero di un'istanza del sito (oggetto a chiave singola)
- Recupero di un'istanza dell'applicazione (oggetto a più chiavi)
- Creazione di un sito
- Enumerazione di tutti i siti
- Arresto e avvio di un sito
- Eliminazione di un sito
- Riepilogo
Molte di queste attività vengono eseguite in modo simile per altri oggetti, ad esempio ApplicationPool. Sfidarsi alla fine di questo articolo per verificare se è possibile usare o meno ciò che si apprende qui per creare, eliminare e modificare oggetti ApplicationPool.
Questo documento usa ampiamente CIM Studio; se non si ha già familiarità con esso, vedere CIM Studio.
Prima di iniziare
Installare IIS
Per completare la procedura descritta in questo documento, è necessario installare IIS 7.0 o versione successiva. Se è possibile passare e http://localhost/
ricevere la pagina IIS standard "Under Construction", IIS viene installato nel computer. Se IIS non è installato, vedere Installazione di IIS in Windows Vista per istruzioni di installazione.
Installare il provider WMI
Installare il provider WMI IIS selezionando il componente Iis Management Scripts and Tools ( Strumenti di gestione IIS) in Strumenti di gestione (o Strumenti di gestione Web). In Windows Vista, si trova nella finestra di dialogo Funzionalità di Windows in Internet Information Services. In Windows Server® 2008, si trova in Server Manager nel ruolo Server Web (IIS).
Installare gli strumenti WMI (include CIM Studio)
Installare la famiglia di prodotti WMI Tools.
Privilegi obbligatori e controllo dell'account utente
È necessario essere un amministratore per connettersi allo spazio dei nomi WMI web Amministrazione istration. Ciò significa che si è connessi come uno dei seguenti:
- Account Amministrazione istrator predefinito in Windows Server 2008
- Membro del gruppo Amministrazione istrators ed è stato disabilitato controllo dell'account utente o
- Un membro del gruppo Amministrazione istrators e controllo dell'account utente è abilitato.
Se ci si trova nella prima o nella seconda situazione, non si verificano problemi di autorizzazioni con questo articolo.
Se ci si trova nella terza situazione, si verificheranno errori di accesso negato . Evitare questi problemi aprendo sempre i prompt dei comandi come Amministrazione istrator e avviando CIM Studio da un prompt dei comandi con privilegi elevati.
Per aprire un prompt dei comandi come Amministrazione istrator, fare clic su Start, scegliere Tutti i programmi, Accessori, fare clic con il pulsante destro del mouse su Prompt dei comandi e selezionare Esegui come Amministrazione istrator.
Per avviare CIM Studio da un prompt dei comandi con privilegi elevati:
- Aprire un prompt dei comandi come amministratore.
- Digitare
%systemdrive%\Program Files\WMI Tools\studio.htm
e premere INVIO.
Eseguire un backup
Eseguire il backup dei file di configurazione IIS chiave prima di iniziare in modo da poter ripristinare lo stato originale del sistema al termine dell'operazione.
- Apri un prompt dei comandi.
- Digitare
%windir%\system32\inetsrv\appcmd add backup IIS7\_WMI\_CIMStudioLab
.
Output previsto:
BACKUP object "IIS7_WMI_CIMStudioLab" added
- Al termine, ripristinare IIS allo stato originale aprendo il prompt dei comandi come amministratore e digitando
%windir%\system32\inetsrv\appcmd restore backup IIS7\_WMI\_CIMStudioLab
.
Output previsto:
Restored configuration from backup "IIS7_WMI_CIMStudioLab"
1. Ottenere un'istanza del sito
Per ottenere un'istanza del sito, fare clic su Start, fare clic sulla casella Avvia ricerca, digitare notepad.exe e quindi premere INVIO. Incollare la riga di script seguente nel Blocco note:
Set oIIS = GetObject("winmgmts:root\WebAdministration")
Fare clic su File, Salva con nome per aprire la finestra di dialogo Salva. Trovare la casella di testo Salva con nome: nella parte inferiore della finestra di dialogo e modificarne il valore da "Documenti di testo (*.txt)" a "Tutti i file". Salvare il file sul desktop come "GetSite.vbs".
Fare clic su Start, fare clic sulla casella Avvia ricerca, digitare cmd.exe e quindi premere INVIO. Digitare cd %SystemDrive%\Users\Amministrazione istrator\Desktop, quindi premere INVIO. Digitare cscript //h:cscript e premere INVIO. Imposta l'host di script predefinito su cscript.exe che invia l'output alla finestra di comando in cui è stata avviata. Per altre informazioni, vedere Esecuzione di script da Windows.
Digitare GetSite.vbs e premere INVIO. Se lo script viene eseguito senza errori, significa che è stata stabilita la connessione allo spazio dei nomi "Web Amministrazione istration". Per altre informazioni sulla stringa "winmgmts:root\Web Amministrazione istration", vedere Costruzione di una stringa moniker. Verranno aggiunte altre quattro righe allo script GetSite.vbs. Queste quattro righe di script otterranno il sito Web predefinito e quindi confermano l'esito positivo stampando due delle relative proprietà.
Set oIIS = GetObject("winmgmts:root\WebAdministration")
Set oSite = oIIS.Get("Site.Name='Default Web Site'")
WScript.Echo "Retrieved an instance of Site "
WScript.Echo " Name: " & oSite.Name
WScript.Echo " ID: " & oSite.ID
Tornare al prompt dei comandi ed eseguire GetSite.vbs. Verrà visualizzato l'output seguente:
Recuperato un'istanza del sito
Nome: Sito Web predefinito
ID: 1
Per informazioni sul funzionamento di "Get", fare clic su Start, Tutti i programmi, gli strumenti WMI e infine WMI CIM Studio. Connessione allo spazio dei nomi Web Amministrazione istration (vedere Ottenere informazioni sul provider WMI IIS tramite CIM Studio) e cercare la classe Site. Il riquadro destro in CIM Studio mostra le proprietà del sito. La proprietà Name è accanto a un'icona di chiave, visualizzata in rosso sotto.
Una classe può avere una o più proprietà "chiave" ; questo set di una o più chiavi identifica in modo univoco un oggetto . Per altri dettagli, vedere Descrizione di un percorso oggetto istanza. In effetti, la stringa "Site.Name='Default Web Site'" indica "ottenere l'istanza dell'oggetto Site, con la proprietà chiave Name uguale a "Sito Web predefinito". Se questo ha senso, provare qualcosa di un po'più difficile.
2. Ottenere un'istanza dell'applicazione
Per ottenere un'istanza dell'applicazione, aprire CIM Studio e cercare la classe Application. Si noti che la classe Application ha due proprietà chiave: "SiteName" e "Path", come illustrato nello screenshot seguente.
Fare clic su Start, fare clic sulla casella Avvia ricerca, digitare notepad.exe e quindi premere INVIO. Incollare le righe di script seguenti nel Blocco note. La seconda riga di script specifica i valori per entrambe le proprietà della chiave Dell'applicazione. Si noti che il formato di questa stringa è: <object_name>.<>key_property='<value>',<key_property>='<value>' in cui le proprietà chiave e i relativi valori sono separati da virgole.
Set oIIS = GetObject("winmgmts:root\WebAdministration")
Set oApp = oIIS.Get("Application.SiteName='Default Web Site',Path='/'")
WScript.Echo "Successfully retrieved: '" & oApp.SiteName & oApp.Path & "'"
Fare clic su File, Salva con nome per aprire la finestra di dialogo Salva. Trovare la casella di testo Salva con nome: nella parte inferiore della finestra di dialogo e modificarne il valore da "Documenti di testo (*.txt)" a "Tutti i file". Salvare il file sul desktop come "GetApp.vbs".
Fare clic su Start, fare clic sulla casella Avvia ricerca, digitare cmd.exe e quindi premere INVIO.
Digitare cd %SystemDrive%\Users\Amministrazione istrator\Desktop, quindi premere INVIO.
Digitare GetApp.vbs e premere INVIO. Viene visualizzato l'output seguente:
Recuperato correttamente: 'Sito Web predefinito/'
3. Creare un'istanza del sito
Per creare un'istanza del sito, visualizzare di nuovo i parametri del metodo dall'articolo CIM Studio. Cercare la classe Site in CIM Studio. Selezionare la scheda Metodi nel riquadro destro.
Fare clic con il pulsante destro del mouse sul metodo Crea e scegliere Modifica parametri metodo. Viene visualizzata la finestra di dialogo seguente che mostra i parametri per il metodo Create. Fare clic su Annulla.
Come si sa ora quali parametri accetta questo metodo, verranno create variabili per questi parametri incollando le righe di script seguenti nel Blocco note.
Set oIIS = GetObject("winmgmts:root\WebAdministration")
' Create a binding for the site
Set oBinding = oIIS.Get("BindingElement").SpawnInstance_
oBinding.BindingInformation = "*:80:www.newsite.com"
oBinding.Protocol = "http"
' These are the parameters we pass to the Create method
name = "NewSite"
physicalPath = "C:\inetpub\wwwroot"
arrBindings = array(oBinding)
Fare clic su File, Salva con nome per aprire la finestra di dialogo Salva. Trovare la casella di testo Salva con nome: nella parte inferiore della finestra di dialogo e modificarne il valore da "Documenti di testo (*.txt)" a "Tutti i file". Salvare il file sul desktop come "CreateSite.vbs".
Fare clic su Start, fare clic sulla casella Avvia ricerca, digitare cmd.exe e quindi premere INVIO.
Digitare cd %SystemDrive%\Users\Amministrazione istrator\Desktop, quindi premere INVIO.
Digitare CreateSite.vbs e premere INVIO. Lo script deve essere eseguito senza errori.
Tornare a CIM Studio, fare di nuovo clic con il pulsante destro del mouse sul metodo Crea e questa volta selezionare "Qualificatori di metodo...". La finestra di dialogo risultante, illustrata di seguito, mostra che il metodo "Create" è un metodo Statico. Fare clic su Annulla.
I metodi statici devono essere chiamati dalla definizione dell'oggetto. L'esempio di script seguente mostra la differenza tra il recupero di un'istanza dell'oggetto e il recupero della definizione dell'oggetto:
Set oIIS = GetObject("winmgmts:root\WebAdministration")
' In order to retrieve an object instance, the object's key properties
' and their values must be specified in the WMI object instance path
Set oSite = oIIS.Get("Site.Name='Default Web Site'")
' The object definition can be retrieved by specifying the name
' of the object without any key properties and values
Set oSiteDefn = oIIS.Get("Site")
Aggiungere alcune righe allo script CreateSite.vbs per creare il sito:
Set oIIS = GetObject("winmgmts:root\WebAdministration")
' Create a binding for the site
Set oBinding = oIIS.Get("BindingElement").SpawnInstance_
oBinding.BindingInformation = "*:80:www.newsite.com"
oBinding.Protocol = "http"
' These are the parameters we pass to the Create method
name = "NewSite"
physicalPath = "C:\inetpub\wwwroot"
arrBindings = array(oBinding)
' Get the Site object definition
Set oSiteDefn = oIIS.Get("Site")
' Create site!!
oSiteDefn.Create name, arrBindings, physicalPath
WScript.Echo "Site created successfully!"
Tornare al prompt dei comandi ed eseguire CreateSite.vbs. Viene visualizzato l'output seguente:
Sito creato correttamente.
Per verificare che il sito sia stato creato, digitare notepad %windir%\system32\inetsrv\ApplicationHost.config
. Digitare CTRL+F per visualizzare la finestra di dialogo Trova del Blocco note. Digitare NewSite nella casella di testo "Trova cosa:" e fare clic sul pulsante Trova successivo . Verrà visualizzata la <sites>
sezione in cui è stato definito il nuovo sito:
<site name="NewSite" id="2">
<application path="/">
<virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:www.newsite.com" />
</bindings>
</site>
Nota aggiuntiva sulla creazione/eliminazione/modifica di oggetti
Non tutti gli oggetti nello spazio dei nomi Web Amministrazione istration possono essere creati o eliminati. Ad esempio, il server gestisce il ciclo di vita degli oggetti WorkerProcess e AppDomain e non può essere creato o eliminato tramite WMI.
Per conoscere un modo generale per scoprire se un oggetto può essere creato, eliminato o modificato, cercare Sito in CIM Studio. Fare clic con il pulsante destro del mouse nella griglia delle proprietà nella scheda Proprietà e scegliere Qualificatori oggetto.... Viene visualizzata la finestra di dialogo seguente:
I qualificatori di oggetto SupportsCreate, SupportsDelete e SupportsUpdate descrivono se è possibile creare, eliminare o modificare un oggetto. Il sito può essere creato, eliminato e modificato, quindi Site ha tutti e tre questi qualificatori e sono tutti veri.
Cercare WorkerProcess in CIM Studio. Fare clic con il pulsante destro del mouse nella griglia delle proprietà nella scheda Proprietà e scegliere Qualificatori oggetto.... La finestra di dialogo seguente mostra che l'oggetto WorkerProcess non dispone di questi tre qualificatori; il valore di questi qualificatori è false per impostazione predefinita (per altre informazioni, vedere Qualificatori standard). Non è pertanto possibile creare, eliminare o modificare l'oggetto WorkerProcess.
4. Enumerare tutte le istanze del sito
Lo script seguente usa il metodo "InstancesOf" per recuperare tutte le istanze dell'oggetto Site. Incollare lo script seguente in una nuova finestra del Blocco note e salvare con nome "EnumSites.vbs".
Set oIIS = GetObject("winmgmts:root\WebAdministration")
Set oSites = oIIS.InstancesOf("Site")
For Each oSite In oSites
WScript.Echo oSite.Name & " (" & oSite.Id & ")"
Next
Eseguire lo script EnumSites.vbs. Viene visualizzato l'output seguente, ad esempio il sito Web predefinito e il sito creato nell'attività 3.
Sito Web predefinito (1)
Nuovo sito (2)
Dettagli
È possibile chiedere da dove proviene il metodo InstancesOf e dove è possibile leggere altre informazioni. La prima riga dello script è la stessa riga usata molte volte prima di connettersi allo spazio dei nomi WMI web Amministrazione istration:
Set oIIS = GetObject("winmgmts:root\WebAdministration").
La chiamata GetObject restituisce un oggetto SWbemServices che può essere utilizzato per eseguire operazioni su uno spazio dei nomi. Questo oggetto dispone di un metodo InstancesOf, nonché di diversi altri metodi utili. Per altre informazioni su InstancesOf o altri metodi disponibili, vedere l'articolo Platform SDK su SWbemServices.
5. Avvio e arresto dei siti
Prima di modificare lo stato del sito, viene individuato lo stato in cui si trova il sito. Lo script seguente si connette allo spazio dei nomi Web Amministrazione istration, ottiene l'istanza del sito e quindi chiama il metodo GetState nell'istanza del sito. Il metodo GetState restituisce uno stato numerico, quindi questo script include una funzione helper per convertire lo stato numerico in una stringa più descrittiva. Incollare questo script in una nuova finestra del Blocco note e salvarlo come GetSiteStatus.vbs.
Set oIIS = GetObject("winmgmts:root\WebAdministration")
Set oSite = oIIS.Get("Site.Name='NewSite'")
WScript.Echo GetStateDescription(oSite.GetState)
' -------helper functions-----------
Function GetStateDescription(statusCode)
Select Case statusCode
Case 1
GetStateDescription = "Started"
Case 2
GetStateDescription = "Starting"
Case 3
GetStateDescription = "Stopped"
Case 4
GetStateDescription = "Stopping"
Case 5
GetStateDescription = "Unknown"
Case Else
GetStateDescription = "Error: Bad Status"
End Select
End Function
Eseguire GetSiteStatus.vbs dal prompt dei comandi e viene visualizzato l'output seguente:
Started
Il sito viene avviato, quindi scrivere uno script per arrestarlo. Il codice script viene copiato da GetSiteStatus.vbs, ma vengono aggiunte alcune righe per arrestare il sito (tutte le righe nuove o aggiornate sono in grassetto). Incollare questo script in una nuova finestra del Blocco note e salvarlo come StopSite.vbs.
Set oIIS = GetObject("winmgmts:root\WebAdministration")
Set oSite = oIIS.Get("Site.Name='NewSite'")
WScript.Echo oSite.Name & " is " & GetStateDescription(oSite.GetState)
oSite.Stop
WScript.Echo oSite.Name & " is " & GetStateDescription(oSite.GetState)
' -------helper functions-----------
Function GetStateDescription(statusCode)
Select Case statusCode
Case 1
GetStateDescription = "Started"
Case 2
GetStateDescription = "Starting"
Case 3
GetStateDescription = "Stopped"
Case 4
GetStateDescription = "Stopping"
Case 5
GetStateDescription = "Unknown"
Case Else
GetStateDescription = "Error: Bad Status"
Eseguire lo script StopSite.vbs e vengono visualizzati i risultati seguenti:
NewSite is Started
NewSite è arrestato
Ora dobbiamo solo riavviare il sito. Copiare StopSite.vbs in un nuovo script denominato StartSite.vbs. Aprire StartSite.vbs e modificare la riga oSite.Stop per leggere oSite.Start. Eseguire StartSite.vbs e verrà visualizzato l'output seguente:
NewSite è arrestato
NewSite is Started
6. Eliminare un sito
Eseguire lo script EnumSites.vbs creato nell'attività 4. Verrà visualizzato l'output seguente, vale a dire che nel server sono presenti due siti:
Sito Web predefinito (1)
Nuovo sito (2)
Lo script seguente si connette allo spazio dei nomi Web Amministrazione istration, ottiene l'istanza NewSite di Site e la elimina. Incollare questo script in una nuova finestra del Blocco note e salvarlo come DeleteSite.vbs.
Set oIIS = GetObject("winmgmts:root\WebAdministration")
Set oSite = oIIS.Get("Site.Name='NewSite'")
oSite.Delete_
Eseguire DeleteSite.vbs dal prompt dei comandi.
Eseguire di nuovo EnumSites.vbs per verificare che NewSite sia stato eliminato correttamente. Viene visualizzato l'output seguente che mostra che il sito Web predefinito è l'unico sito rimanente nel server:
Sito Web predefinito (1)
Riepilogo
Si è appreso come recuperare un'istanza specifica di un oggetto Sito o Applicazione, creare un sito, enumerare tutte le istanze del sito, arrestare e avviare Siti e infine eliminare Siti. Gran parte di queste informazioni è applicabile per altri oggetti dello spazio dei nomi; Ad esempio, gli oggetti Application e ApplicationPool vengono creati ed eliminati nello stesso modo dei siti.