Esistono diversi modi per sfruttare PowerShell in un'applicazione personalizzata. La bellezza del motore di automazione di PowerShell è che non devi occuparti dei parametri di gestione, dell'output di formattazione e di molte altre cose PITA che dovresti gestire da solo. Per lanciare un oggetto lungo la pipeline in PowerShell, è l'override del metodo ProcessRecord e chiamare WriteObject
protected override void ProcessRecord()
{
// Get the current processes
Process[] processes = Process.GetProcesses();
// Write the processes to the pipeline making them available
// to the next cmdlet. The second parameter of this call tells
// PowerShell to enumerate the array, and send one process at a
// time to the pipeline.
WriteObject(processes, true);
}
È possibile scrivere cmdlet che consentono un amministratore per automatizzare il lato server di un'applicazione. I cmdlet sono sempre unità di funzionalità basate su attività con convenzione di denominazione verbale. Ad esempio, Get-Process o Restart-Service. I Cmdlet fanno una cosa e lo fanno molto bene. C'è un incredibile potere che viene fornito combinando insieme i cmdlet.
Inoltre, se la tua app ha una sorta di archivio dati, è anche possibile scrivere un provider che consentirebbe a qualcuno di navigare e/o gestire l'archivio dati usando cmds come cd (set-location) e md (new- articolo). Un provider è ciò che il team di PS ha scritto in modo da poter effettuare il cd nel registro con cd hklm: o l'archivio certificati con cd cert:
È anche possibile ospitare PowerShell stesso nell'applicazione.
Ci sono alcune buone informazioni su tutti e tre di queste opzioni su MSDN here
Considerando l'interesse per i fornitori, ecco alcuni esempi su how to create a PowerShell Provider.
Ci sono state alcune discussioni in merito alla progettazione e l'utilizzo di un set di cmdlet o per esporre qualcosa con un Provider. Quando si implementa un provider, si ottengono anche alcuni cmdlet, come Get-item, New-item, Get-Location, Set-Location. Tuttavia, ho trovato che avere alcuni cmdlet per attività specifiche in aggiunta a un provider può essere molto utile.
fonte
2009-05-20 14:24:39