web-dev-qa-db-fra.com

Que puis-je faire avec C # et Powershell?

J'ai une compréhension décente de C # et une compréhension très basique de PowerShell. J'utilise Windows PowerShell CTP 3, ce qui est vraiment amusant. Mais je veux aller au-delà de l'écriture de scripts/fonctions. Y a-t-il des trucs sympas à voir avec C #?

45
Kredns

Je pense que la chose la plus intéressante que vous pouvez faire avec C # et PowerShell est de construire CmdLet. Ce sont essentiellement des plugins pour PowerShell qui sont écrits en code managé et agissent comme des fonctions normales. Ils ont une paire verbe-nom et de nombreuses fonctions que vous utilisez déjà sont en fait des applets de commande sous le capot.

http://msdn.Microsoft.com/en-us/magazine/cc163293.aspx

34
JaredPar

Au plus haut niveau, vous avez deux options différentes. Vous pouvez à partir d'un programme C # héberger PowerShell et exécuter des commandes PowerShell via RunSpaces et des pipelines.

Ou vous pouvez à partir de PowerShell exécuter du code C #. Cela peut se faire de deux manières. Avec un composant logiciel enfichable PowerShell, une DLL compilée qui fournit des applets de commande PowerShell et des fournisseurs de navigation, ou via la nouvelle applet de commande Add-Type, qui vous permet d'importer dynamiquement du code C #, VB, F #. De l'aide

$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)
60
Scott Weinstein

La réponse est "Cela dépend". Vous pouvez faire une variété de choses avec c # (créer des fenêtres, des clients Web et des clients mobiles).

Vous pouvez appeler des scripts PowerShell à partir de C #. Regardez ce site ==> lien

Vous pouvez même convertir votre code c # en powershell ==> link

8
Srikar Doddi

Vous pouvez le regarder de deux manières:

  1. Comment pouvez-vous tirer parti de PowerShell dans votre programme C #
  2. Comment pouvez-vous tirer parti de la programmation C # dans PowerShell.

Dans une certaine mesure, ce sont des questions très différentes avec des réponses différentes.

À partir de C #, vous pouvez tirer parti du moteur PowerShell, des espaces d'exécution, des pipelines, etc. Comme pour Exchante, vous pouvez utiliser C # pour effectuer toutes les tâches de l'interface graphique, puis appeler une applet de commande PowerShell pour effectuer toutes les tâches matérielles. Cette option est appropriée si vous pouvez trouver des applets de commande ou des scripts PowerShell à exploiter.

À partir de PowerShell, vous utilisez C # pour développer ce que vous pouvez faire dans PowerShell. Vous pouvez créer des cmdlts et des fournisseurs pour permettre à d'autres d'accéder aux données d'application. Ou vous pouvez simplement créer des objets qui peuvent être utilisés dans un script PowerShell. Cette option est la façon dont vous aidez à ouvrir votre application pour qu'elle soit gérée de manière plus automatisée.

Donc, selon ce que vous cherchez à faire, vous avez des options.

5
Thomas Lee

Scott Hanselman aka Hanselminutes a plusieurs podcasts sur Powershell, CmdLets, C # et plus. C'est le meilleur si vous voulez apprendre ce que c'est, comment cela fonctionne et plus encore. Faites une recherche sur son site Web pour récupérer le podcast.

Liste des podcasts liés à PS sur son site (dans l'ordre chronologique inverse):

# 190: État de Powershell/Lee Holmes & Jason Shirk
# 162: Powershell 2.
# 49: Powershell/Bruce Payette
# 36: Jeffrey Snover, architecte Powershell
# 24: Windows Powershell (MONAD), Partie II

2
mP.