VS2015 Remote Debugging JavaScript



SCRIPT : créer un package SCCM et le programme d'installation associé


Voici un script Powershell inspiré du SDK de SCCM vous permettant de créer un package SCCM et le programme d'installation associé

  1: [system.reflection.assembly]::loadfrom("C:\Program Files\Microsoft Configuration Manager\AdminUI\bin\adminui.wqlqueryengine.dll")   
  2: [system.reflection.assembly]::loadfrom("C:\Program Files\Microsoft Configuration Manager\AdminUI\bin\microsoft.configurationmanagement.managementprovider.dll")   
  3:    
  4: # déclaration des constantes   
  5:    
  6: $newPackageName = "package de test"   
  7: $newPackageDescription = "Package cree a partir de powershell"   
  8: $newPackageSourceFlag = 3   
  9: $newPackageSourcePath = "\\Serveur1\sources\test"   
  10:    
  11: $newProgramName = "Installation"   
  12: $newProgramComment = "Programme d'installation cree a partir de powershell"   
  13: $newProgramCommandLine = "cscript installation.wsf"   
  14: $newProgramMaxRunTime = 0   
  15:    
  16: # declaration des variables   
  17:    
  18: $namedValues = New-Object -TypeName Microsoft.ConfigurationManagement.ManagementProvider.SmsNamedValuesDictionary   
  19: $connection = New-Object -TypeName Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine.WqlConnectionManager -ArgumentList $namedValues   
  20:    
  21: # connection au serveur sccm local   
  22:    
  23: $connection.Connect([System.Net.Dns]::GetHostName().ToUpper())   
  24:    
  25: # création du package   
  26:    
  27: $newPackage = $connection.CreateInstance("SMS_Package")   
  28:    
  29: #Populate new package properties.   
  30:    
  31: $newPackage["Name"].StringValue = $newPackageName   
  32: $newPackage["Description"].StringValue = $newPackageDescription   
  33: $newPackage["PkgSourceFlag"].IntegerValue = $newPackageSourceFlag   
  34: $newPackage["PkgSourcePath"].StringValue = $newPackageSourcePath   
  35:    
  36: # sauvegarde des parametres du package   
  37:    
  38: $newPackage.Put()   
  39: $newPackage.Get()   
  40:    
  41: # affichage des propriétés du package   
  42:    
  43: write-host "INFO : package cree : " $newPackageName   
  44: write-host "INFO : Package ID : " + $newPackage["PackageID"].StringValue   
  45:    
  46: # Création du programme   
  47:    
  48: $newProgram = $connection.CreateInstance("SMS_Program")   
  49:    
  50: # renseignement des propriétés du programme   
  51:    
  52: $newProgram["PackageID"].StringValue = $newPackage["PackageID"].StringValue   
  53: $newProgram["ProgramName"].StringValue = $newProgramName   
  54: $newProgram["Comment"].StringValue = $newProgramComment   
  55: $newProgram["CommandLine"].StringValue = $newProgramCommandLine   
  56: $newProgram["Duration"].IntegerValue = $newProgramMaxRunTime   
  57:    
  58: # sauvegarde des parametres du programme   
  59:    
  60: $newProgram.Put();   
  61:    
  62: write-host "INFO : Programme cree: " $newProgramName  

SCRIPT : Windows Server 2008 – Lister les composants installés


Dernièrement un de mes collègues m'a demandé de récupérer la liste des composants installés sur un serveur Windows Server 2008 via un script. J'ai tout de suite pensé à utiliser Powershell et je vous fais part du (tout) petit script que j'ai écrit.

le but était donc d'avoir une liste des éléments cochés dans les fenêtres suivantes :

image

et

image

Pour écrire ce script, je me suis appuyé sur l'outil servermanagercmd.exe qui permet d'installer/desinstaller des rôles et des fonctionnalités sous Windows Sevrer 2008 mais qui permet également de dumper la configuration dans un  fichier XML (ô joie)

le plus gros du travail étant fait, voici donc le petit bout de script :

function Get-InstalledComponents {

[Environment]::GetEnvironmentVariable("TMP") | Push-Location

servermanagercmd –query serverroles.xml | out-null

$serverroles = [XML] (gc .\serverroles.xml)

$serverroles.SelectNodes("//*") | ? {$_.Installed –eq "true"}

del .\serverroles.xml

Pop-Location

}

et voila le résultat

image

Etant donné que l'on traite un fichier XML Powershell récupère des informations sur lesquelles on peut faire des traitements, comme par exemple :

récupérer la liste des Fonctionnalités installées :

Get-InstalledComponents | ? {$_.name –eq "Features"}

Récupérer la liste des rôles et services de rôles installés :

Get-InstalledComponents | ? {$_.name –like "Role*"}

Choisir les colonnes à afficher

Get-InstalledComponents | select Id, DisplayName, Name

etc.


Session PowerShell V2 aux MS Days : démos partie 1


image

Cette première série de démonstrations aborde :

1°) les bases ou  PowerShell V1 et les 4 commandes de base : get-command, get-help, get-member, get-psdrive

On montre également que l'on manipule des objets .Net

image

2°) les interfaces graphiques avec PowerShell. Langage de commandes ne rime pas forcément avec interface en mode caractère.

On peut très facilement gérer le son :

  1: $spVoice = new-object -com "SAPI.SpVoice"   
  2: $spVoice.Speak("Bienvenue aux Microsoft Days de Paris !")  

ou les graphiques WinForms en PowerShell :

image

La réalisation de graphiques de ce type est très simple avec la librairie Microsoft Chart Controls for Microsoft .NET Framework 3.5 (la documentation est accessible ici et un excellent cours là : https://www.dotnet-france.com/Documents/Win/35/Microsoft%20Chart%20Controls.pdf ) :

image 

On voit ensuite les spécificités PowerShell V2 : out-gridview

image

et le support de WPF :

image

image

Les scripts sont attachés à ce message.

Démos 1.zip


Session PowerShell V2 aux MS Days : démos partie 2


image 

Cette deuxième série de démonstrations aborde les fonctionnalités avancées de V2 en terme de programmation.

  • Notion de fonctions avancées

image

image

Les scripts sont attachés à ce message.

Démos 2.zip


Session PowerShell V2 aux MS Days : démos partie 3


image

Cette troisième série de démonstrations aborde les fonctionnalités avancées de V2 en terme d'automatisation.

  • Notion de jobs

image

  • Exécution à distance ("remoting")
  • Gestion des évènements ("Eventing")

image

image

Les scripts sont attachés à ce message.

Ils incluent un exemple que je n'ai pas eu le temps de jouer et qui permet d'ajouter à distance des fonctionnalités sur un server Windows Server 2008 R2 :

image

Démos 3.zip


Session PowerShell V2 aux MS Days : démos partie 4


image

Enfin cette dernière partie contient 2 démos sympathiques sur :

  • comment afficher une barre de progression en PS

image

  • éteindre son ordinateur ! Fin de la démo ! :-)

 

 

  1: stop-computer -computername remote –force  

Les scripts sont attachés à ce message.

Démos 4.zip


Session PowerShell V2 aux MS Days : toutes les démos…


Ensuite Antoine Habert nous a présenté PoshBoard 2.0 

cf. PoshBoard 2.0 est en ligne ! et

https://poshboard.codeplex.com/ _us

poshboard2screen2[1]

Enfin vous pourrez trouver en attachement de ce mail l'ensemble des scripts de démos dans un seul fichier zip.

Démos PowerShell V2 @ MS Days 07-11-09.zip