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 :
et
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
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.
Comments
Post a Comment