Cosa posso fare con C # e Powershell?
-
09-09-2019 - |
Domanda
Ho una conoscenza discreta di C # e una conoscenza di base di PowerShell. Sto utilizzando Windows PowerShell CTP 3, che è stato davvero divertente. Ma voglio andare oltre la scrittura di script / funzioni. C'è qualche roba fresca a che fare con C #?
Soluzione
Credo che la cosa più interessante si può fare con C # e PowerShell è quello di costruire cmdlet di. Questi sono essenzialmente i plugin di PowerShell che sono scritte in codice gestito e si comportano come normali funzioni. Hanno una coppia verbo-nome e molte delle funzioni che già utilizzate sono cmdlet in realtà sotto il cofano.
Altri suggerimenti
Al livello più alto si hanno due diverse opzioni è possibile da un programma C # ospite PowerShell ed eseguire comandi PowerShell tramite RunSpaces e tubazioni.
In alternativa, è possibile dall'interno di PowerShell eseguire codice C #. Questo può essere fatto in due modi. Con un PowerShell snap-in, una dll compilato che fornisce cmdlet di PowerShell e fornitori di navigazione, o tramite il nuovo cmdlet Add-Type , che consente di importare in modo dinamico C #, VB, C # codice. Dal help
$source = @"
public class BasicTest
{
public static int Add(int a, int b)
{
return (a + b);
}
public int Multiply(int a, int b)
{
return (a * b);
}
}
"@
Add-Type -TypeDefinition $source
[BasicTest]::Add(4, 3)
$basicTestObject = New-Object BasicTest
$basicTestObject.Multiply(5, 2)
La risposta è 'Dipende'. Si può fare una varietà di cose con C # (costruzione di finestre, i clienti web e client mobili).
È possibile richiamare gli script PowerShell da C #. Guardate questo sito ==>
È anche possibile convertire il codice C # per PowerShell ==> link
È possibile guardare uno dei due modi:
- Come è possibile sfruttare PowerShell all'interno del vostro programma C #
- Come è possibile sfruttare programmazione C # all'interno PowerShell.
In una certa misura, sono questioni del tutto diverse con risposte diverse.
Da C # è possibile sfruttare i motori di PowerShell, runspaces, condutture, ecc come si fa con Exchante, è possibile utilizzare C # per fare tutte le cose GUI, quindi richiamare un cmdlet PowerShell per fare tutte le cose difficili. Questa opzione è appropriata se è possibile trovare cmdlet di PowerShell o script a leva.
Da PowerShell, è possibile utilizzare C # per espandere cosa si può fare in PowerShell. È possibile creare cmdlts e fornitori per permettere ad altri di accedere ai dati delle applicazioni. Oppure si può semplicemente creare oggetti che possono essere utilizzati all'interno di uno script PowerShell. Questa opzione è il modo in cui si aiuta ad aprire l'applicazione per essere gestito in modo più automatizzato.
Quindi, a seconda di ciò che si sta cercando di fare, avete opzioni.
Hanselminutes ha diversi podcast su PowerShell, cmdlet, C # e altro ancora. E 'il migliore se si vuole imparare che cosa è, come funziona e di più. Fare una ricerca sul suo sito web per afferrare il podcast.
Elenco dei PS relativi podcast sul suo sito (in ordine cronologico inverso):
# 190: Stato di PowerShell / Lee Holmes & Jason Shirk
# 162: PowerShell 2.0
# 49: Powershell / Bruce Payette
# 36: Jeffrey Snover, PowerShell architetto
# 24: Windows PowerShell (Monade), parte II