Interrogare il database di monitoraggio SQL tramite Windows PowerShell

In questo esempio viene mostrato come utilizzare lo scripting SQL per creare un cmdlet di Windows PowerShell standard per il recupero dei dati di monitoraggio. L'esempio consente inoltre di comprendere le visualizzazioni di SQL fornite da Windows Server AppFabric. L'esempio funziona con qualsiasi applicazione. Si consiglia di utilizzare l'Applicazione di esempio di Windows Server 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

Gli utenti dovranno disporre di una certa conoscenza dello scripting di Windows PowerShell e dei comandi di SQL. Nell'esempio si presuppone quanto segue:

  • Sia stato installato Windows PowerShell 2.0

  • Sia stato installato SQL Server 2008 Express

  • Sia stato installato AppFabric

Percorso e file di esempio

  • Scripts\ScriptCmdlets.ps1

  • Readme.mhtml

Installazione ed esecuzione dell'esempio

Per eseguire questo script:

  1. Aprire la console di Windows PowerShell con privilegi amministrativi.

  2. Passare alla cartella contenente l'esempio.

  3. Passare alla sottodirectory Scripts della cartella degli esempi SQLMonitoringQueryCmdlets.

  4. Eseguire i seguenti comandi:

    Set-ExecutionPolicy Unrestricted
    Import-Module ‘.\ScriptCmdlets.ps1’
    

Spiegazione dell'esempio

L'esempio Query di monitoraggio espone i seguenti cmdlet:

  • Get-ASAppTrackedPropertyName

  • Get-ASAppTrackedInstance

  • Get-ASAppTrackedWcfEvent

  • Get-ASAppTrackedWfEvent

Get-ASAppTrackedPropertyName

Questo cmdlet esegue una query al database di monitoraggio per i nomi di proprietà rilevati che sono disponibili per un particolare servizio. Per un determinato servizio del flusso di lavoro, il framework di rilevamento acquisisce le proprietà per determinati eventi quali le variabili di ambiente e le variabili rilevate dall'utente. Questo cmdlet restituisce i nomi di tutte le variabili disponibili per un determinato servizio del flusso di lavoro.

Sintassi

Get-ASAppTrackedPropertyName [-Database<String>] [-MachineName<String>] [-Server <String>] [-SiteName <String>] [-VirtualPath <String>] 

Parametri

Database - Parametro obbligatorio. Stringa che indica in quale database eseguire query.

MachineName - Parametro facoltativo. Stringa utilizzata per eseguire query solo per i dati di monitoraggio generati sul computer specificato.

Server - Parametro obbligatorio. Stringa che indica in quale server SQL eseguire query.

SiteName - Parametro facoltativo. Stringa utilizzata per eseguire query dei nomi delle proprietà delle istanze per il sito specificato.

VirtualPath - Parametro facoltativo. Stringa utilizzata per eseguire query dei nomi delle proprietà di istanze di servizi che si trovano nel percorso virtuale specificato.

Piping

È possibile eseguire il piping del cmdlet Get-ASAppTrackedPropertyName dal cmdlet Get-ASAppService. Get-ASAppService restituisce un oggetto ApplicationObject che può essere utilizzato come input per Get-ASAppTrackedPropertyName.

Esempi

    Get-ASAppTrackedPropertyName –SiteName “Default Web Site” –Server localhost\SQLExpress –Database ApplicationServerMonitoringDatabase
    Get-ASAppService –SiteName “Default Web Site” | Get-ASAppTrackedPropertyName –Server localhost\SQLExpress –Database ApplicationServerMonitoringDatabase

Get-ASAppTrackedInstance

Questo cmdlet consente agli utenti di eseguire query per i dati relativi alle istanze del servizio che sono state rilevate. Gli utenti possono specificare i criteri da soddisfare rispetto alle istanze rilevate per fare in modo che vengano restituite. Questo cmdlet funziona con qualsiasi ambito operativo: computer, sito, applicazione, servizio e percorso virtuale.

Sintassi

Get-ASAppTrackedInstance [-Count <Switch>] [-Database<String>] [-MachineName<String>] [-MaxResults <int>] [-ModifiedSince <DateTime>] [-Server <String>]  [-SiteName <String>] [-VirtualPath <String>] 

Parametri

Count - Parametro facoltativo. Flag che, quando specificato, determina la restituzione da parte del cmdlet di un conteggio di istanze che soddisfano i criteri specificati.

Database - Parametro obbligatorio. Stringa che indica in quale database eseguire query.

MachineName - Parametro facoltativo. Stringa utilizzata per eseguire query solo per i dati di monitoraggio generati sul computer specificato.

MaxResults - Parametro facoltativo. Numero intero che viene utilizzato per specificare il numero massimo di risultati visualizzati. Il valore predefinito è 50.

ModifiedSince - Parametro facoltativo. Data e ora utilizzate per eseguire query solo per le istanze modificate dopo questa data e ora.

Server - Parametro obbligatorio. Stringa che indica in quale server SQL eseguire query.

SiteName - Parametro facoltativo. Stringa utilizzata per eseguire query solo per le istanze per il sito specificato.

VirtualPath - Parametro facoltativo. Stringa utilizzata per eseguire query solo per le istanze che si trovano nel percorso virtuale specificato.

Piping

È possibile eseguire il piping del cmdlet Get-ASAppTrackedInstance dal cmdlet Get-ASAppService. Get-ASAppService restituisce un oggetto ApplicationObject che può essere utilizzato come input per Get-ASAppTrackedInstance.

Esempi

    Get-ASAppTrackedInstance –SiteName “Default Web Site” –Count –Server localhost\SQLExpress –Database ApplicationServerMonitoringDatabase
    Get-ASAppTrackedInstance –MaxResults 10  –ModifiedSince 2-20-2010 –Server localhost\SQLExpress –Database ApplicationServerMonitoringDatabase
    Get-ASAppService –SiteName “Default Web Site” | Get-ASAppTrackedInstance –Server localhost\SQLExpress –Database ApplicationServerMonitoringDatabase

Get-ASAppTrackedWcfEvent

Questo cmdlet esegue query al database di monitoraggio per i dati eventi WF. Questo cmdlet funziona con qualsiasi ambito operativo: computer, sito, applicazione, servizio e percorso virtuale.

Sintassi

Get-ASAppTrackedWcfEvent [-Count <Switch>] [-Database<String>] [-EmitTimeFrom <DateTime>] [-EmitTimeTo <DateTime>] [-MachineName<String>] [-MaxResults <int>]  [-Server <String>]  [-SiteName <String>] [-VirtualPath <String>] 

Parametri

Count - Parametro facoltativo. Flag che, quando specificato, determina la restituzione da parte del cmdlet di un conteggio di eventi WCF che soddisfano i criteri specificati.

Database - Parametro obbligatorio. Stringa che indica in quale database eseguire query.

EmitTimeFrom - Parametro facoltativo. Data e ora utilizzate per eseguire query solo per gli eventi WCF emessi dopo questa data e ora.

EmitTimeTo - Parametro facoltativo. Data e ora utilizzate per eseguire query solo per gli eventi WCF emessi prima di questa data e ora.

MachineName - Parametro facoltativo. Stringa utilizzata per eseguire query solo per gli eventi WCF generati sul computer specificato.

MaxResults - Parametro facoltativo. Numero intero che viene utilizzato per specificare il numero massimo di risultati visualizzati. Il valore predefinito è 50.

Server - Parametro obbligatorio. Stringa che indica in quale server SQL eseguire query.

SiteName - Parametro facoltativo. Stringa utilizzata per eseguire query solo per gli eventi WCF generati sul sito specificato.

VirtualPath - Parametro facoltativo. Stringa utilizzata per eseguire query solo per gli eventi WCF generati nel percorso virtuale specificato.

Piping

È possibile eseguire il piping del cmdlet Get-ASAppTrackedWcfEvent dal cmdlet Get-ASAppService. Get-ASAppService restituisce un oggetto ApplicationObject che può essere utilizzato come input per Get-ASAppTrackedWcfEvent.

Esempi

    Get-ASAppTrackedWcfEvent –SiteName “Default Web Site” –Count  –Server localhost\SQLExpress –Database ApplicationServerMonitoringDatabase
    Get-ASAppTrackedWcfEvent  –MaxResults 10 –EmitTimeFrom 2-20-2010 –Server localhost\SQLExpress –Database ApplicationServerMonitoringDatabase
    Get-ASAppTrackedWcfEvent –EmitTimeFrom 2-18-2010 –EmitTimeTo 2-20-2010 –Server localhost\SQLExpress –Database ApplicationServerMonitoringDatabase
    Get-ASAppService –SiteName “Default Web Site” | Get-ASAppTrackedWcfEvent –MaxResult 5 –Server localhost\SQLExpress –Database ApplicationServerMonitoringDatabase

Get-ASAppTrackedWfEvent

Questo cmdlet esegue query al database di monitoraggio per i dati eventi WF. Questo cmdlet funziona con qualsiasi ambito operativo: computer, sito, applicazione, servizio e percorso virtuale.

Sintassi

Get-ASAppTrackedWfEvent [-Count <Switch>] [-Database<String>] [-EmitTimeFrom <DateTime>] [-EmitTimeTo <DateTime>] [-MachineName<String>] [-MaxResults <int>] [-Server <String>] [-SiteName <String>] [-VirtualPath <String>] 

Parametri

Count - Parametro facoltativo. Flag che, quando specificato, determina la restituzione da parte del cmdlet di un conteggio di eventi WF che soddisfano i criteri specificati.

Database - Parametro obbligatorio. Stringa che indica in quale database eseguire query.

EmitTimeFrom - Parametro facoltativo. Data e ora utilizzate per eseguire query solo per gli eventi WF emessi dopo questa data e ora.

EmitTimeTo - Parametro facoltativo. Data e ora utilizzate per eseguire query solo per gli eventi WF emessi prima di questa data e ora.

MachineName - Parametro facoltativo. Stringa utilizzata per eseguire query solo per gli eventi WF emessi sul computer specificato.

MaxResults - Parametro facoltativo. Numero intero che viene utilizzato per specificare il numero massimo di risultati visualizzati. Il valore predefinito è 50.

Server - Parametro obbligatorio. Stringa che indica in quale server SQL eseguire query.

SiteName - Parametro facoltativo. Stringa utilizzata per eseguire query solo per gli eventi WF generati sul sito specificato.

VirtualPath - Parametro facoltativo. Stringa utilizzata per eseguire query solo per gli eventi WF generati nel percorso virtuale specificato.

Piping

È possibile eseguire il piping del cmdlet Get-ASAppTrackedWfEvent dal cmdlet Get-ASAppService. Get-ASAppService restituisce un oggetto ApplicationObject che può essere utilizzato come input per Get-ASAppTrackedWfEvent.

Esempio

    Get-ASAppTrackedWfEvent –SiteName “Default Web Site” –Count –EmitTimeFrom 2-20-2010 –Server localhost\SQLExpress –Database ApplicationServerMonitoringDatabase
    Get-ASAppTrackedWfEvent –VirtualPath “/calculator/service.xamlx” –MaxResults 10 –Server localhost\SQLExpress –Database ApplicationServerMonitoringDatabase
    Get-ASAppTrackedWfEvent –EmitTimeFrom 2-18-2010 –EmitTimeTo 2-20-2010 –Server localhost\SQLExpress –Database ApplicationServerMonitoringDatabase
    Get-ASAppTrackedWfEvent –Count –Server localhost\SQLExpress –Database ApplicationServerMonitoringDatabase
    Get-ASAppService –SiteName “Default Web Site” | Get-ASAppTrackedWfEvent –Count –Server localhost\SQLExpress –Database ApplicationServerMonitoringDatabase

Rimozione dell'esempio

Per rimuovere questo esempio, eliminare i file e ripristinare il criterio di esecuzione al relativo livello precedente oppure all'impostazione predefinita per Windows PowerShell con il seguente comando:

Set-ExecutionPolicy Default

  2011-12-05