¿Qué puedo hacer con C# y Powershell?
Tengo una comprensión decente de C# y una comprensión muy básica de powershell. Estoy usando Windows PowerShell CTP 3, que ha sido muy divertido. Pero quiero ir más allá de escribir scripts / funciones. ¿Hay algo interesante que hacer con C#?
5 answers
Creo que lo más interesante que puede hacer con C# y PowerShell es compilar CMDLETS. Estos son esencialmente complementos de PowerShell que están escritos en código administrado y actúan como funciones normales. Tienen un par verbo-sustantivo y muchas de las funciones que ya utiliza son en realidad cmdlets bajo el capó.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-06 21:59:59
En el nivel más alto, tiene dos opciones diferentes que puede usar desde un host de programa C# PowerShell y ejecutar comandos de PowerShell a través de espacios de ejecución y canalizaciones.
O puede ejecutar código C# desde PowerShell. Esto se puede hacer de dos maneras. Con un complemento de PowerShell, una dll compilada que proporciona cmdlets de PowerShell y proveedores de navegación, o mediante el nuevo cmdlet Add-Type, que permite importar dinámicamente código C#, VB, F#. De la ayuda
$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)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-12 14:16:40
La respuesta es 'Depende'. Puedes hacer una variedad de cosas con c# (construir windows, clientes web y clientes móviles).
Puede invocar scripts de powershell desde C#. Mira este sitio = = > enlace
Incluso puede convertir su código c # a powershell = = > link
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-04-12 19:27:13
Puedes verlo de dos maneras:
- ¿Cómo puede aprovechar PowerShell dentro de su programa C#
- ¿Cómo puede aprovechar la programación en C# dentro de PowerShell?
Hasta cierto punto, son preguntas muy diferentes con respuestas diferentes.
Desde C# puede aprovechar el motor de PowerShell, los espacios de ejecución, las líneas de tubería, etc. Como se hace con Exchante, puede usar C# para hacer todas las cosas de la GUI, luego invocar un cmdlet de PowerShell para hacer todas las cosas difíciles. Esta opción es apropiado si puede encontrar cmdlets o scripts de PowerShell para aprovechar.
Desde PowerShell, se usa C# para expandir lo que se puede hacer en PowerShell. Puede crear cmdlts y proveedores para permitir que otros accedan a los datos de la aplicación. O simplemente puede crear objetos que se pueden usar dentro de un script de PowerShell. Esta opción es la forma en que ayuda a abrir su aplicación para que se administre de manera más automatizada.
Así que dependiendo de lo que esté buscando hacer, tiene opciones.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-09 09:36:46
Scott Hanselman aka Hanselminutes tiene varios podcasts sobre Powershell, CmdLets, C# y más. Es la mejor si quieres aprender qué es, cómo funciona y más. Hacer una búsqueda en su sitio web para agarrar el podcast.
Lista de podcasts relacionados con PS en su sitio (en orden cronológico inverso):
#190: Estado de Powershell/Lee Holmes & Jason Shirk
#162: Powershell 2.0
#49: Powershell/Bruce Payette
#36: Jeffrey Snover, Arquitecto de Powershell
#24: Windows Powershell (MÓNADA), Parte II
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-14 09:37:51