Archive

Posts Tagged ‘Automatisation’

SCCM – Microsoft System Center 2012 Hydration SOLAR, version BETA by Michel PICOLLET

juillet 20, 2013 2 commentaires

Microsoft System Center 2012 Hydration SOLAR coming soon !!!

logosc20122Bonjour à tous,

C’est les vacances !

Pour ma part, étant encore en service, ayant eu quelques moments à moi ces temps-ci, j’en ai profité pour continuer mon développement autour de System Center 2012 de chez Microsoft, et notamment autour de Hydration. La partie graphique (de mon cru) de ma solution est quasiment terminée, et le tout en 7 jours !

Voici ce que cela donne la version BETA !

image image

image image

image

Le but est d’automatiser l’installation d’un environnement complet, en l’occurrence ici, autour de Configuration Manager 2012. Je précise au passage que tout le développement de ma solution est en PowerShell (y compris l’interface) !

Mon but : Fournir une solution d’installation de type clé en main, respectant les bonnes pratiques Microsoft au sein de celle-ci, tout en dé-complexifiant les solutions et leurs implémentations, parfois difficiles et nécessitant une intention particulière !

1 – Gestion des sources d’installation ;
2 – Gestion et génération automatique des fichiers de réponses d’installations des solutions ;
3 – Installations, activations des rôles serveur et configuration de la machine Hôte d’Hyper-V ;
4 – Installations, activation, paramétrages automatique de chaque solution de chaque VM ;

Ce qui est bien avec ce concept et la volonté de faciliter l’interaction, homme/machine, tout en rationnalisant les différents interfaces d’implémentation, c’est que celui-ci est tout à fait adaptable à tous les sujets que l’on adresse au quotidien dans notre métier, aussi bien pour nous, que pour les clients ayant besoin de gagner du temps, et donc de l’argent…

“Comme quoi et pour certains, je ne suis pas bon qu’à faire des belles slides PowerPoint !
Je développe aussi les solutions que j’imagine !!”
🙂

Bref ! Y a plus qu’à !

Adaptation des installations + serrages de boulons par-ci, par-là, etc.
Suite au prochain numéro…

Bien sûr, n’hésitez pas à réagir !

Enjoy !

avatar31 Michel PICOLLET | EXAKIS Paris
Solution Architect Microsoft [System Center]
mpicollet@event-horizon.fr

Catégories :SCCM Étiquettes : , , ,

MDT12U1 – Hydration Automatic Deployment Mode – Part1

Bonjour à tous,

Après une petite absence, j’ouvre à nouveau le bal avec un post concernant Hydration, méthode permettant d’installer toute la solution SCCM 2012 de manière automatique. Me basant sur le post Deployment Research, que j’ai un peu décortiqué, voici quelques points suppl. et mon retour d’expérience.

MIC_059_masthead

Pré requis

Suivre la procédure décrite sur le site Deployment Research

Vidéo

Gestion des disques et partitions

Petite correction à faire sur la Task Sequence de déploiement du contrôler de domaine, ajouter la variable OSDisk sur l’étape “Format and Partition Disk”. En effet, tel quel (Image de gauche), si vous souhaitez ajouter un disque suppl. à votre futur DC, ceci depuis les paramètres de votre VM, une erreur apparaitra, stipulant que “La TS ne peut pas localiser la partition” qu’elle doit utiliser.

image  image 

Attention : N’oubliez pas dans ce cas-là, de faire de votre partition “System” une partition “bootable” en cochant la case, “Make this a boot partition

image

Ensuite …

Gestion de l’environnement & Renommage

Pour modifier votre environnement (Nom de domaine, Nom des serveurs, adresses IP, mot de passe, etc.), ainsi que les chemins d’installation des solutions, tout se passe dans .\HydrationCM2012SP1\ISO\Content\Deploy\Control.

Pour se faire, il vous faudra modifier les fichiers Custom Settings suivants :

– CustomSettings_CM01.ini
– CustomSettings_DC01.ini

    Par exemple :

Serveur SCCM : CustomSettings_CM01.ini

[Settings]
Priority=Default
Properties=HydrationOSDComputerName

[Default]
HydrationOSDComputerName=
SERVER2
JoinDomain=
lab.event-horizon.fr
DomainAdmin=Administrator   
DomainAdminDomain=
LAB
DomainAdminPassword=P@ssw0rd$
MachineObjectOU=ou=Servers,ou=Event-Horizon,dc=lab,dc=event-horizon,dc=fr
OSDAdapterCount=1
OSDAdapter0DNSServerList=
172.17.2.2
OSDAdapter0Gateways=172.17.2.1
OSDAdapter0IPAddressList=172.17.2.3
OSDAdapter0SubnetMask=255.255.255.0
OSDAdapter0TCPIPNetBiosOptions=1
SkipProductKey=YES
TimeZoneName=Romance Standard Time

Serveur DC : CustomSettings_DC01.ini

[Settings]
Priority=Default
Properties=HydrationOSDComputerName

[Default]
HydrationOSDComputerName=
SERVER1
JoinWorkgroup=WORKGROUP
OSDAdapterCount=1
OSDAdapter0DNSServerList=
127.0.0.1
OSDAdapter0Gateways=172.17.2.1
OSDAdapter0IPAddressList=
172.17.2.2
OSDAdapter0SubnetMask=
255.255.255.0
OSDAdapter0TCPIPNetBiosOptions=1
SkipProductKey=YES
TimeZoneName=Romance Standard Time

; Active Directory Configuration
ReplicaOrNewDomain=Domain
NewDomain=Forest
NewDomainDNSName=
lab.event-horizon.fr
DomainNetBiosName=
LAB
ForestLevel=4
DomainLevel=4
AutoConfigDNS=Yes
ConfirmGC=Yes
CriticalReplicationOnly=No
DatabasePath=D:\NTDS\DATA
ADDSLogPath=
D:\NTDS\LOGS
SysVolPath=D:\NTDS\SysVol
SafeModeAdminPassword=
P@ssw0rd$
SiteName=Central-Site-AD

; DHCP Configuration
DHCPServerOptionRouter=
172.17.2.1
DHCPServerOptionDNSServer=
172.17.2.2
DHCPServerOptionDNSDomainName=lab.event-horizon.fr
DHCPScopes0SubnetMask=
255.255.255.0
DHCPScopes0IP=
172.17.2.0
DHCPScopes0Name=172.17.2.0/24
DHCPScopes0StartIP=
172.17.2.10
DHCPScopes0EndIP=172.17.2.20
DHCPScopes0OptionLease=691200
DHCPScopes=1

ConfigMgr 2012 : ConfigMgr2012Unattend.ini

Si vous modifiez le nom de domaine, ainsi que le mot de passe, vous devez modifier le fichier de réponse (ConfigMgr2012Unattend.ini) de SCCM 2012, se trouvant dans : .\HydrationCM2012SP1\DS\Applications\Install – ConfigMgr 2012

[Identification]
Action=InstallPrimarySite

[Options]
ProductID=EVAL
SiteCode=EH0
SiteName=ConfigMgr Primary Site
SMSInstallDir=
D:\APPS\ConfigMgr
SDKServer=SERVER2.lab.event-horizon.fr
RoleCommunicationProtocol=HTTPorHTTPS
ClientsUsePKICertificate=0
PrerequisiteComp=1
PrerequisitePath=E:\Deploy\Applications\Install – ConfigMgr 2012\PreReqs
MobileDeviceLanguage=0
ManagementPoint=SERVER2.lab.event-horizon.fr
ManagementPointProtocol=HTTP
DistributionPoint=SERVER2.lab.event-horizon.fr
DistributionPointProtocol=HTTP
DistributionPointInstallIIS=0
AdminConsole=1

[SQLConfigOptions]
SQLServerName=SERVER2.lab.event-horizon.fr
DatabaseName=CM_
EH0
SQLSSBPort=4022

[HierarchyExpansionOption]

SQL Server 2012 :ConfigurationFileCM2012.ini

Même chose, vous devez modifier le fichier de réponse (ConfigurationFileCM2012.ini) de SQL 2012, se trouvant dans .\HydrationCM2012SP1\DS\Applications\Install – SQL Server 2012 (J’ai bien sûr, épuré un peu le fichier de réponse de SQL pour une meilleure lecture)

;SQL Server 2012 Configuration File
[OPTIONS]
ACTION="Install"
ENU="True"
QUIET="True"
QUIETSIMPLE="False"
UpdateEnabled="False"
FEATURES=SQLENGINE,RS,SSMS,TOOLS,BIDS,ADV_SSMS,Conn
UpdateSource="MU"
HELP="False"
INDICATEPROGRESS="False"
X86="False"
INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server"
INSTALLSHAREDWOWDIR="C:\Program Files (x86)\Microsoft SQL Server"
INSTANCENAME="MSSQLSERVER"
INSTANCEID="MSSQLSERVER"
SQMREPORTING="False"
ERRORREPORTING="False"
INSTANCEDIR="D:\APPS\MSSQL"
AGTSVCACCOUNT="NT AUTHORITY\SYSTEM"
AGTSVCSTARTUPTYPE="Automatic"
COMMFABRICPORT="0"
COMMFABRICNETWORKLEVEL="0"
COMMFABRICENCRYPTION="0"
MATRIXCMBRICKCOMMPORT="0"
SQLSVCSTARTUPTYPE="Automatic"
FILESTREAMLEVEL="0"
ENABLERANU="False"
SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS"
SQLSVCACCOUNT="NT AUTHORITY\SYSTEM"
SQLSYSADMINACCOUNTS="LAB\Administrator" "BUILTIN\Administrators"
ADDCURRENTUSERASSQLADMIN="False"
TCPENABLED="1"
NPENABLED="1"
BROWSERSVCSTARTUPTYPE="Disabled"
IACCEPTSQLSERVERLICENSETERMS="True"

Active Directory : Configure-CreateADStructure.wsf

Autre script d’installation à modifier, Configure-CreateADStructure.wsf ! Celui-ci se trouvant dans .\HydrationCM2012SP1\DS\Applications\Configure – Create AD Structure, est en charge de créer les OU et Sous-OU dans votre environnement Active Directory. Pour ma part, J’ai choisi de garder la même structure d’OU en modifiant le nom de l’OU racine.

image

Dans ce même script, j’ai également modifié le mot de passe de tous les comptes de services créés lors de l’installation. Par exemple :

image

Passe d’installation Service DHCP pour le Contrôler de domaine

Enfin, ne pas oublier, dans la Task Sequence de modifier le compte d’autorisation du service DHCP, comme suit :

image

Mettre le clavier en Français & Regional Settings

Afin de spécifier le clavier Français et le format des Regional Settings, modifier ce qui suit dans les fichiers Unattend.xml pour chaque machine. Ce fichier se trouve dans .\HydrationCM2012SP1\DS\Control\<Machine Virtuelle>\

image

Pour mettre le clavier en Français

Pour les Pass de chaque machine (pour chaque fichier Unattend.xml):

– WindowsPE
– Specialize
– OobeSystem

Modifier comme suit :

<InputLocale>040c:0000040c</InputLocale>
<SystemLocale>en-US</SystemLocale>
<UILanguage>en-US</UILanguage>
<UserLocale>fr-FR</UserLocale>

Pour mettre les Regional Settings en Français

Pour les Pass de chaque machine (pour chaque fichier Unattend.xml):

– Generalize
– OobeSystem

    Modifier comme suit :

    TimeZone>Romance Standard Time</TimeZone>

    De même, modifier le fichier CustomSettings.xml se trouvant dans .\HydrationCM2012SP1\ISO\Content\Deploy\Control comme suit :

    [Settings]
    Priority=Default

    [Default]
    _SMSTSORGNAME=%TaskSequenceID% under construction…
    OSInstall=Y
    TimeZoneName=Romance Standard Time
    UserDataLocation=NONE
    DoCapture=NO
    ApplyGPOPack=NO
    AdminPassword=P@ssw0rd$
    HideShell=YES

    SkipAdminPassword=YES
    SkipApplications=YES
    SkipBitLocker=YES
    SkipCapture=YES
    SkipComputerName=YES
    SkipDomainMembership=YES
    SkipFinalSummary=YES
    SkipLocaleSelection=YES
    SkipProductKey=YES
    SkipSummary=YES
    SkipTaskSequence=NO
    SkipTimeZone=YES
    SkipUserData=YES
    SkipRoles=YES

    Autres points…

    La volonté ici est de déployer System Center 2012 Configuration Manager Service pack 1. Il reste malgré tout, quelques ajustement à faire…

Modification de la phase de configuration du Firewall pour le SP1

Il vous faut ajouter le port 10123 TCP dans le script : Configure-OpenFirewallforSQL2012Communication.wsf se trouvant dans .\HydrationCM2012SP1\DS\Applications\Configure – Open Firewall for SQL Server 2012 Communication

image

Active Directory – Site et Services console

Autre constat, lorsque le contrôleur de domaine est installé, vous pouvez constater que le Subnet n’est pas créé dans la console Sites et Services Active Directory. Pour cela ajouter un script Power Shell afin d’exécuter depuis la TS de déploiement, la commande suivante New-ADReplicationSubnet, par exemple pour moi :

New-ADReplicationSubnet "172.17.2.0/24" -Site "Central-Site-AD"

Puis copier le script Powershell dans .\HydrationCM2012SP1\DS\Scripts (Alias %ScriptRoot%)

image

Site et Services console sous Windows 2008 R2
Pour celles et ceux qui utiliseraient Windows 2008 Server pour le contrôleur de domaine, le site web de Alessandro Cardoso vous permettra de faire la même chose avec le script Create-ADSubnet.ps1

Voici le lien direct : http://virtualisationandmanagement.wordpress.com/2010/09/01/powershell-script-to-create-ad-subnets-and-sites/

Après avoir copié le script dans .\HydrationCM2012SP1\DS\Scripts, il suffira ensuite de l’inclure dans la séquence de tâche, comme suit :

image

Versions de Windows 2012 Server

La seule version de 2012 server utilisée par défaut est la version Data Center ; Il vous faudra donc importer dans MDT un nouveau package OS, ceci afin de choisir une autre version, la standard par exemple, dans vos TS de déploiement.

Si vous importez un nouvel OS (avec un autre Path), n’oubliez pas de modifier le step : Set WindowsSource en y spécifiant le nouveau chemin…

image

Attention : N’oubliez pas de régénérer votre ISO (Media), une fois les modifications effectuées.

image

Résultats

Une fois la procédure de modification effectuée, en voici le résultat…

Côté Serveur :

image

Côté réseau et nom de serveur :

image

Côté service DHCP :

image

Ajout de Microsoft WSUS de Windows 2012 Server

Autre point, cette version d’Hydration n’installe pas WSUS. Pour se faire, créer une application (Script Powershell) suppl. pour l’ajouter ensuite dans la Task Sequence de déploiement comme suit :

image

Voici la commande du script :
Install-WindowsFeature -ConfigurationFilePath .\WSUSDeploymentConfigTemplate.xml
Vous trouverez le fichier de réponse XML sur mon Script PSSkyDrive ->

Enfin si vous désirez changer l’emplacement du store de WSUS, n’oubliez
pas de modifier le chemin “ContentDirectory” comme suit, par exemple :

image

Skipping Product Key

Pour information, il est possible de “by-passer” l’étape qui consiste à renseigner la clé produit lors de l’installation de Windows (toutes versions).

Pour cela, il suffit de spécifier, provisoirement une clé MAK ou KMS dans le fichier unattend.xml, se trouvant dans .\DeploymentShare\Control\<ID>\ de l’OS correspondant. Les sections à renseigner sont les passes : <settings pass="windowsPE"> et <settings pass="specialize">. Par exemple, pour Microsoft Windows 8 :

Pass : Windows PE

image

Pass Specialize

image

Pour obtenir une clé provisoire, dans le but unique de faire du “Zero Touch”, il suffit d’aller sur le Technet à l’adresse suivante, puis de choisir la clé correspondant à votre version de Windows que vous désirez installer. Voici l’adresse : http://technet.microsoft.com/en-us/library/jj612867.aspx

Bien sûr, cela reste une clé provisoire, il vous faudra ensuite renseigner la vraie clé de licence, afin de pouvoir activer Windows par la suite. Le but ici n’est pas montrer une vraie clé, mais de vous montrer où celle-ci doit être renseignée. A vous de mettre celle qui vous correspond, où des fins de tests, de mettre une clé provisoire du Technet.

Version de SQL 2012

Dans la TS de déploiement de Hydration, vous avez une étape qui consiste à installer le cumulative update 3.

Cependant, si comme moi vous téléchargez la version SP1 de SQL 2012, c-à-d déjà inclue dans les sources de SQL, vous pouvez, soit supprimer cette étape, soit utiliser les sources du Cumulatif Update 3 du Service pack 1 : http://support.microsoft.com/kb/2812412 

Mais le service pack 1 de SQL 2012 suffit pour SCCM 2012 SP1 :
http://technet.microsoft.com/en-us/library/gg682077.aspx#BKMK_SupConfigSQLSrvReq

Génération du Média dans MDT 2012

Pour finir, il se peut, lors de la génération du fichier ISO, que MDT 2012 vous dise qu’il a bien généré celui-ci. Mais une fois en route dans votre machine virtuelle, impossible de lancer une TS !

En effet, il se peut que toutes les informations et/ou sources n’y soient pas. Pour en être sûr, vérifier son contenu en utilisant un outil comme DAEMON Tools. Cela vient sans doute de la grande quantité de données qu’il doit y mettre. Donc il peut y avoir des “loupés”.

S’il s’agit de fichiers de configurations tels que CustomSettings, etc., copier manuellement le contenu de .\DS\Control dans le répertoire .\ISO\Control. Idem s’il s’agit de scripts, si vous en avez ajouté d’autres, etc. copiez-les manuellement dans .\DS\Scripts.

Bref ! Vous l’avez compris sans doute, .\HydrationCM2012SP1\ISO\Content\Deploy doit être identique à .\HydrationCM2012SP1\DS. Donc faite la chasse aux différences, puis régénérer votre ISO depuis la console MDT… De même, l’update de votre Deployment Share permet de remettre les choses à plat…

Enjoy !

avatar3 Michel PICOLLET | EXAKIS Paris
Solution Architect Microsoft [System Center]
mpicollet@event-horizon.fr

Catégories :SCCM Étiquettes : , , , , , ,

SCCM – Nouvelle version (v14.0) du script Hydration sous Powershell

sccm2012Bonjour à tous,

Nouvelle version (v14.0) du script Hydration sous Powershell v2.0

Fichier : i-hydration-SC2012-v14.ps1

Dans cette version 14.0 :

Correction de bogues mineurs;
Possibilité d’installer WSUS avec un serveur SQL distant;
Ajout du groupe GG-SCCM-SERVERS (par défaut) dans les groupes locaux SCCM;
Ajoute la possibilité d’installer MDT 2012 et créé le Deployment Share (New Switch).

64pxwindows-powershell-icon_thumb3 Téléchargement du script

Dans la version 12.0 précédente :

Correction de bogues mineurs
Intégration de vos remarques
Evolution de présentation d’exécution
Possibilité d’installer soit un CAS, soit un Site Primaire enfant d’un CAS, soit un site CAS / Primaire par système de choix

REMARQUE 1 : L’utilisation d’un fichier CSV est une volonté, afin de le manipuler avec plus de facilité (Lisibilité, modification, etc.).
REMARQUE 2 : Tous les répertoires d’installations cibles des solutions sont automatiquement créés. Inutile des créer à l’avance manuellement.

Caractéristiques du script Powershell : i-hydration-SC2012-v14.ps1 –help

i-hydration-SC2012-v1x.ps1 -[Switch] :

[Switch] -HydrationReps –> To prepare the Hydration folders
[Switch] -DomainServices –> To install and configure AD Service
[Switch] -ADConfigmgr –> To prepare AD environment for SC2012
[Switch] -Rolesr2 –> To Install Windows 2008 R2 server roles for SC2012
[Switch] -ConfigSQL –> To Configure Microsoft SQL Solution for SC2012
[Switch] -SQLSrvr2 –> To Install Microsoft SQL Server 2008 R2 for SC2012
[Switch] -WSUS –> To Install Microsoft WSUS 3.0 SP2 for SC2012
[Switch] -ConfigMgr12 –> To Install CAS/Primary SCCM Server SC2012
[Switch] -MDT12 –> MDT Installation Solution (with Deployment Share) new 
[Switch] -Help –> Help panel …
[Switch] -ReadCSV –> To read CSV i-answers.csv file

NOTE : Tous les fichiers de réponses (Rôles serveur, Active directory, SQL, SCCM, etc.) sont générés à la volée par le script Powershell.

Commande : i-hydration-SC2012-v14.ps1 -Help

Screenshots

image

Lecture du fichier de réponse CSV

Commande : i-hydration-SC2012-v14.ps1 -ReadCSV

image_thumb3

Préparation de l’active Directory pour SCCM 2012 RTM (Sans Extension du schéma)

A faire sur le DC

Commande : .\i-hydration-SC2012-v14.ps1 -ADConfigmgr

Création du container AD : System Management
Création du groupe spécifié dans le fichier de réponse CSV
Positionnement des droits ACE/ACL du le container System Management

Action manuelle : Encore dans cette version du script, vous devez ajouter le compte machine du serveur SCCM futur dans le groupe spécifié manuellement.

Screenshots

Commande

Résultat attendu

clip_image003_thumb2

clip_image004_thumb1

Préparation du futur serveur SCCM 2012 RTM

A faire sur le futur serveur SCCM

Pour l’exemple d’organisation de mes disques et partition :

clip_image006_thumb4

Création de l’organisation des répertoires HYDRATION

A faire sur le futur serveur SCCM

Commande : .\i-hydration-SC2012-v14.ps1 –HydrationReps

Screenshots

Commande

Résultat attendu

clip_image007_thumb2

clip_image008_thumb1

Action manuelle : Copier manuellement les sources dans leurs répertoires respectifs sur le futur serveur SCCM

NOTE : Cette organisation n’est pas obligatoire. Vous pouvez utiliser un chemin UNC par exemple, etc. Il suffit simplement de mettre à jour le fichier de réponse CSV en fonction !

Installation des rôles pour SCCM du futur serveur

A faire sur le futur serveur SCCM

Commande : .\i-hydration-SC2012-v14.ps1 -Rolesr2

Screenshot

Commande

Résultat attendu

clip_image009_thumb

clip_image010_thumb

IMPORTANT : Si vous n’avez pas copier manuellement les sources et notamment .Net Framework 4.0 dans le répertoire Updates, il ne sera pas installé lors cette phase-là. Dans le cas contraire :

clip_image011_thumb2

Installation de Microsoft SQL 2008 R2 avec le Service Pack 1 et le Cumulatif Update 6

A faire sur le serveur SQL

Commande : .\i-hydration-SC2012-v14.ps1 -SQLSrvr2

Prérequis important : Avoir copié les sources suivantes à l’endroit voulu et avoir modifié le fichier de réponse en fonction :

Sources SQL 2008 R2
Sources Service Pack 1
Sources Cumulatif Updates 6

Si vous voulez utiliser un serveur dédié pour SQL, les prérequis serveurs pour SQL doivent y être installés.

image_thumb1

NOTE : A ce stade, SQL n’est pas entièrement configuré

Configuration de Microsoft SQL

A faire sur le serveur SQL

Commande : .\i-hydration-SC2012-v14.ps1 –ConfigSQL

clip_image013_thumb2

A ce stade, SCCM peut désormais être installé, tous les prérequis sont présents !

Installation de Microsoft SC Configuration Manager 2012 RTM

A faire sur le serveur SCCM

Commande : .\i-hydration-SC2012-v14.ps1 -ConfigMgr

Prérequis important : Avoir copié les sources suivantes à l’endroit voulu et avoir modifié le fichier de réponse en fonction :

Sources SCCM 2012 RTM
Updates SCCM2012 (Répertoire Updates)

clip_image014_thumb2

Choisir le type de site que vous voulez installer, le fichier de réponse INI sera construit à volée en fonction de votre choix (Par défaut CAS)

Installation de Microsoft Deployment Toolkit 2012 RTM new

A faire sur le serveur SCCM/MDT

Commande : .\i-hydration-SC2012-v14.ps1 –MDT12

Prérequis important : Avoir copié les sources suivantes à l’endroit voulu et avoir modifié le fichier de réponse en fonction :

Sources de MDT 2012 RTM

image

-> Montage du Deployment Share de MDT 2012 RTM pris en compte dans Hydration v14:

image

NOTE : L’intégration de MDT 2012 dans SCCM 2012 reste manuelle dans cette version du script

Installation de Microsoft WSUS 3.0 SP2

A faire sur le serveur SCCM qui sera Software Update Point

Commande : .\i-hydration-SC2012-v14.ps1 -wsus

Prérequis important : Avoir copié les sources suivantes à l’endroit voulu et avoir modifié le fichier de réponse en fonction :

Sources WSUS 3.0 SP2
Report Viewer 2010 (ou version 2008 minimum)
Avoir installé SQL Server en local ou sur un serveur dédié

clip_image016_thumb2

Installation d’un domain controlleur 2008 R2

A faire sur le serveur SCCM qui sera DC

Commande : .\i-hydration-SC2012-v14.ps1 – DomainServices

Le script est aussi capable d’installer un contrôleur de domaine (New Forest/New domain. Celui-ci générer, comme pour le reste, le fichier de réponse d’installation de l’AD. De même le script installe les services et le DNS en où ils ne seraient pas installés

NOTE : Une petite erreur de variable s’est glissée dans le script, ligne 1260. Modifier la ligne comme suit : if ($CASServerConfigMgr -eq "")

Enjoy !

Michel PICOLLET | EXAKIS Paris
Solution Architect Microsoft [System Center]
mpicollet@event-horizon.fr

SCCM – Script Powershell v2 d’installations automatisées Microsoft System Center 2012 ConfigMgr

sccm2012

Bonjour à tous,

Après quelques mois d’absence pour raison personnelle, me revoilà avec un script Powershell Hydration qui permet d’installer toute la solution System Center Configuration Manager 2012 RTM. Celui-ci fonctionne avec des -Switchs (arguments attendus). Chaque Switch correspond à un type d’installation (SQL, SCCM, etc.). Switch que vous pouvez chainer…

Dans cette version :
– Installation d’un Contrôleur de domaine 2008 R2, incluant le rôle DNS
– Préparation de l’active directory
(Volontairement sans l’extension du schéma)
– Installation et configuration des rôles serveur pour SCCM 2012 (Windows 2008 R2)
– Installation de Microsoft SQL 2008 R2 avec le SP1 et le CU6
– Configuration du serveur SQL (Firewall, Ports Réseau, tailles des bases etc.)
– Installation de Microsoft WSUS 3.0 SP2 avec installation et configuration d’un site IIS
– Installation de Microsoft SCCM 2012 RTM
(CAS/Primary).
– P
ositionnement du flag NO_SMS_ON_DRIVE.SMS

Nouveautés
Dans cette version, beaucoup plus de contrôles, de fichiers de Logs. Il est aussi possible de rejouer les installations de SQL en cas d’échec. Le script se charge de savoir où vous en êtes pour reprendre. Enfin, dans version, toujours pour SQL, il est possible de jouer une installation à partir de sources “Splitstreamées”. Par contre, dans cette version, la construction d’une telle source reste à votre charge (modification du fichier, INI SQL, décompression des sources SPx et CUx, etc.).

Screenshot .\V_PSHydration-SCE012-v10.2.ps1 -help

Hydration_v2

NOTE : Tous les fichiers de réponses (Rôles serveur, Active directory, SQL, SCCM, etc.) sont générés à la volée par le script Powershell. Par ailleurs, le script PSH utilise un fichier de réponse CSV pour fonctionner.

Bien sûr, le script peut être fortement amélioré… Je vous fais confiance pour vous l’approprier, afin d’apporter des améliorations ou/et de le corriger … Si vous pouviez juste faire partager vos suggestions, ce serait vraiment super ! Je rappelle que le but de ma démarche est avant tout, faciliter les installations des solutions et surtout de gagner du temps sur nos maquettages, par exemple…

64pxwindows-powershell-icon_thumb

 Téléchargement du script

Enjoy !

Michel PICOLLET | EXAKIS Paris
Solution Architect Microsoft [System Center]
mpicollet@event-horizon.fr

SCCM – Automating Configuration by Scripting for SCCM Secondary Site Servers

janvier 3, 2012 1 commentaire

Bonjour à tous,

Bonne Année 2012 à toutes et à tous !!! 🙂

hydration_SCR

Pour commencer, je profite de cette nouvelle année 2012 pour vous faire partager un script VBS qui permet d’activer et de configurer tous les rôles d’un site secondaire sous SCCM 2007 SP2.

En rouge : Ce que vous devez modifier
En vert : Les rôles que vous désirez activer. Pour ce faire, supprimer le (‘) se trouvant devant la ligne du rôle que vous souhaitez installer.

Script

‘********************************************************************
‘ Main routine
‘********************************************************************
 
On Error Resume Next

‘ Set variables (site code, system to configure, domain)  
strSiteCode = "MCM"
strComputerName = "SMSMEMBER"
strDomainName = "smsdomain.smsdemo.microsoft.com"
    
‘ Connect to the Configuration Manager server.
Set objConnection = ConnectToSMS(strSiteCode)
    
‘ Load the the site control file.
Set objContext = CreateObject("WbemScripting.SWbemNamedValueSet")
objContext.Add "SessionHandle", objConnection.ExecMethod("SMS_SiteControlFile", "GetSessionHandle").SessionHandle
    
‘ Enable site system.
EnableSiteRole objConnection, objContext, "SMS Site System", strComputerName, strSiteCode, strDomainName

‘ Enable site role(s).
‘ Uncomment site roles to install.
‘ ———————————

‘EnableSiteRole objConnection, objContext, "SMS Branch Distribution Point", strComputerName, strSiteCode, strDomainName
‘EnableSiteRole objConnection, objContext, "SMS Distribution Point", strComputerName, strSiteCode, strDomainName    
‘EnableSiteRole objConnection, objContext, "SMS Fallback Status Point", strComputerName, strSiteCode, strDomainName
‘EnableSiteRole objConnection, objContext, "SMS Management Point", strComputerName, strSiteCode, strDomainName
‘EnableSiteRole objConnection, objContext, "SMS PXE Service Point", strComputerName, strSiteCode, strDomainName
‘EnableSiteRole objConnection, objContext, "SMS Reporting Point", strComputerName, strSiteCode, strDomainName
‘EnableSiteRole objConnection, objContext, "SMS Server Locator Point", strComputerName, strSiteCode, strDomainName
‘EnableSiteRole objConnection, objContext, "SMS Software Update Point", strComputerName, strSiteCode, strDomainName
‘EnableSiteRole objConnection, objContext, "SMS State Migration Point", strComputerName, strSiteCode, strDomainName

‘ Release the site control file
objConnection.Get("SMS_SiteControlFile").ReleaseSessionHandle objContext.Item("SessionHandle").Value

‘ Cleanup
Set strSiteCode = Nothing
Set strComputerName = Nothing 
Set strDomainName = Nothing
Set objConnection = Nothing
Set objContext = Nothing

‘********************************************************************
‘ Function: ConnectToSMS
‘ Description: This routine makes a connection to the specified site code.
‘********************************************************************
Function ConnectToSMS(strSiteCode)

Dim objLocator
Dim objConnection

‘ Initialization
Set objLocator = CreateObject("WbemScripting.SWbemLocator")

‘ Find the provider server
Set objConnection = objLocator.ConnectServer( , "root\sms\site_" & strSiteCode )

‘ Return the connection object
Set ConnectToSMS = objConnection

End Function

‘********************************************************************
‘ Function:    EnableSiteRole
‘ Description: This enables the specified site system role.
‘********************************************************************

Function EnableSiteRole(objConnection, objContext, strSiteRole, strComputerName, strSiteCode, strDomainName)

Dim objRole
Dim objProp
Dim objPropLists
Dim objComponents
Dim objComponent
Dim objComponentProps
Dim strTempSiteRole

‘ Refresh our copy of the site control file.
objConnection.ExecMethod "SMS_SiteControlFile.Filetype=1,Sitecode=’" & strSiteCode & "’", "RefreshSCF", , , objContext

‘ Note: There is no separate site role for a Branch Distribution Point, instead the
IsPeerDP property is enabled
‘ on a SMS Distribution Point role.   
‘ Workaround: Set variable to SMS Distribution Point, if the site role is a Branch

Distribution Point
If strSiteRole = "SMS Branch Distribution Point" Then strTempSiteRole = "SMS Distribution Point" Else strTempSiteRole = strSiteRole End If
    
‘ Retrieve the site control object.
On Error Resume Next
Set objRole = objConnection.Get("SMS_SCI_SysResUse.FileType=2,ItemName=" & Chr(34) & _
"[\" & Chr(34) & "Display=\\\\" &  strComputerName & "\\\" & Chr(34) & "]MSWNET:[\" & Chr(34) & "SMS_SITE=" & _
strSiteCode & "\" & Chr(34) & "]\\\\" & strComputerName & "\\," & strTempSiteRole & Chr(34) & ",ItemType=" & Chr(34) & _
"System Resource Usage" & Chr(34) & ",SiteCode=" & Chr(34) & strSiteCode & Chr(34), , objContext)
       
‘ If the site role already exists, then get the current properties
If Err.Number = 0 then 
objProp = objRole.Props
wscript.echo strTempSiteRole & " already exists. "
wscript.echo "Attempting to enable the site role."

‘ If the site role is not found, then create it
ElseIf CStr(Hex(Err.Number)) = "80041002" then 
Set objRole = objConnection.Get("SMS_SCI_SysResUse").SpawnInstance_
objRole.NALPath  = "[" & Chr(34) & "Display=\\" &  strComputerName & "\" & Chr(34) & "]MSWNET:[" & Chr(34) & "SMS_SITE=" & strSiteCode & Chr(34) & "]\\" & strComputerName & "\"
objRole.NALType  = "Windows NT Server"
objRole.RoleName = strTempSiteRole
objRole.Sitecode = strSiteCode
objProp = Array()
wscript.echo strTempSiteRole & " doesn’t exist. "
wscript.echo "Attempting to create the site role." 
        
‘ On any other error, fail and exit the function
Else
EnableSiteRole = False 
wscript.echo "Unexpected error: 0x" & Hex(Err.Number) & " – " & Err.Description
wscript.echo "Not attempting to enable the site role." 
Exit Function
       
End If

On Error GoTo 0
   
objPropLists = objRole.PropLists
If IsNull(objPropLists) then
objPropLists = Array()
End if

‘ Set the appropriate properties for the specified role
Select Case strSiteRole
                   
Case "SMS Branch Distribution Point"           
SetProperty objConnection, objProp, "IsPeerDP",1, "", ""
SetProperty objConnection, objProp, "MinFreeSpace",50, "", ""
SetProperty objConnection, objProp, "Server Remote Name",0, strComputerName & "." & strDomainName, ""
               
Case "SMS Distribution Point"
SetProperty objConnection, objProp, "Site Info", 0, strComputerName, strSiteCode
SetProperty objConnection, objProp, "BITS download", 1, "", ""
SetProperty objConnection, objProp, "Is protected", 0, "", ""
SetProperty objConnection, objProp, "IsAnonymousEnabled", 1, "", ""
SetProperty objConnection, objProp, "Server Remote Name",0, strComputerName & "." & strDomainName, ""

Case "SMS Fallback Status Point"
SetProperty objConnection, objProp, "FSPInternetFacing",0, "", ""
SetProperty objConnection, objProp, "Server Remote Name",0, "", ""
SetProperty objConnection, objProp, "Throttle Count",10000, "", ""
SetProperty objConnection, objProp, "Throttle Interval",3600000, "", ""
SetProperty objConnection, objProp, "Server Remote Name",0, strComputerName & "." & strDomainName, ""

Case "SMS Management Point"
SetProperty objConnection, objProp, "Server Remote Name",0, strComputerName & "." & strDomainName, ""
                       
Case "SMS PXE Service Point"
SetProperty objConnection, objProp, "IsActive",1, "", ""
SetProperty objConnection, objProp, "BindPolicy",0, "", ""
SetProperty objConnection, objProp, "ResponseDelay",0, "", ""
SetProperty objConnection, objProp, "PXEPassword",0, "", ""

‘SetProperty objConnection, objProp, "AuthType",0, "", ""
‘SetProperty objConnection, objProp, "UserName",0, "", ""
‘SetProperty objConnection, objProp, "CertificateType",0, "", ""
‘SetProperty objConnection, objProp, "CertificateFile",0, "", ""

SetProperty objConnection, objProp, "Server Remote Name",0, strComputerName & "." & strDomainName, ""

Case "SMS Reporting Point"
SetProperty objConnection, objProp, "ReportingPointFolder", 0, "", "SMSReporting_" & strSiteCode
SetProperty objConnection, objProp, "Protocol", 0, "", ""
SetProperty objConnection, objProp, "PortNumber", 80, "", ""

Case "SMS Server Locator Point"
SetProperty objConnection, objProp, "UseSiteDatabase", 1, "", ""
SetProperty objConnection, objProp, "SQLServerName", 0, "", ""
SetProperty objConnection, objProp, "DatabaseName", 0, "", ""
SetProperty objConnection, objProp, "Authentication type", 0, "", ""
SetProperty objConnection, objProp, "UserName", 0, "", ""
SetProperty objConnection, objProp, "Server Remote Name",0, strComputerName & "." & strDomainName, ""
                       
Case "SMS Site System"
SetProperty objConnection, objProp, "Server Remote Name",0, strComputerName & "." & strDomainName, ""
SetProperty objConnection, objProp, "IsProtected",0, "", ""
SetProperty objConnection, objProp, "Server Remote Public Name",0, "", ""
SetProperty objConnection, objProp, "FDMOperation",0, "", ""            
           
Case "SMS Software Update Point"
SetProperty objConnection, objProp, "UseProxy",0, "", ""
SetProperty objConnection, objProp, "ProxyName",0, "", ""
SetProperty objConnection, objProp, "ProxyServerPort",80, "", ""
SetProperty objConnection, objProp, "AnonymousProxyAccess",1, "", ""
SetProperty objConnection, objProp, "UserName",0, "", ""
           
Case "SMS State Migration Point"           
SetProperty objConnection, objProp, "Server Remote Name",0, strComputerName & "." & strDomainName, ""
SetProperty objConnection, objProp, "SMPQuiesceState",0, "", ""
SetProperty objConnection, objProp, "SMPStoreDeletionDelayTimeInMinutes",1440, "", ""
SetProperty objConnection, objProp, "SMPStoreDeletionCycleTimeInMinutes",1440, "", ""
SetPropertyList  objConnection, objPropLists, "Directories", Array("Directory=D:\StateMigration;MaxClients=100;MinDiskSpace=100;MinDiskSpaceUnit=1;")           
                                       
Case Else
wscript.echo " Invalid role specified: " & strSiteRole
EnableSiteRole = False
Exit Function

End Select

‘ Save the (possibly) updated properties.
objRole.Props = objProp
objRole.PropLists = objPropLists

‘ Store the new role instance.
On Error Resume Next
objRole.Put_ , objContext
If Err Then
wscript.echo " Error assigning role " & strSiteRole & " to " & strComputerName & ": " & Err.Description
Err.Clear
Else
wscript.echo " Setting " & strComputerName & " to an " & strSiteRole
End If
On Error GoTo 0
    
‘ Commit the changes to the Site Control file.
Set InParams = objConnection.Get("SMS_SiteControlFile").Methods_("CommitSCF").InParameters.SpawnInstance_
InParams.SiteCode = strSiteCode
objConnection.ExecMethod "SMS_SiteControlFile", "CommitSCF", InParams, , objContext
    
‘ Cleanup
Set objRole = Nothing
Set objProp = Nothing
Set objPropLists = Nothing
Set objComponents = Nothing
Set objComponent = Nothing
Set objComponentProps = Nothing
   
End Function

‘********************************************************************
‘ Function:    SetProperty
‘ Description: This is used to set or create entries in a site control property array.
‘********************************************************************
Function SetProperty(objConnection, objProp, strPropertyName, intValue, strValue1, strValue2)

Dim index
Dim bFoundProperty
Dim objNewProp

bFoundProperty = False

‘ Loop through properties until a match is found and then set the properties using the values passed in.
For index = 0 to UBound(objProp)

If objProp(index).PropertyName = strPropertyName then
                   
bFoundProperty = TRUE
objProp(index).Value = intValue
objProp(index).Value1 = strValue1
objProp(index).Value2 = strValue2
Exit For

End if

Next

‘ If the property doesn’t exist, then create it and set the property values using the values passed in.    
If not bFoundProperty then 
   
Set objNewProp = objConnection.Get("SMS_EmbeddedProperty").SpawnInstance_
objNewProp.PropertyName = strPropertyName
objNewProp.Value = intValue
objNewProp.Value1 = strValue1
objNewProp.Value2 = strValue2

ReDim Preserve objProp(UBound(objProp) + 1)
Set objProp(UBound(objProp)) = objNewProp
       
End if

‘ Cleanup
Set index = Nothing
Set bFoundProperty = Nothing
Set objNewProp = Nothing
     
End Function

‘********************************************************************
‘ Function:    SetPropertyList
‘ Description: This is used to set or create entries in a site control property list array.
‘********************************************************************
Function SetPropertyList(objConnection, objPropLists, strPropertyListName, arrList)

Dim index
Dim bFoundProperty
Dim objNewProp

bFoundProperty = False
   
‘ If the Property List Name already exists, set the values using the arrList variable passed in. 
For index = 0 to UBound(objPropLists)
If objPropLists(index).PropertyListName = strPropertyListName then
bFoundProperty = TRUE
objPropLists(index).Values = arrList
Exit For
End if
Next

‘ If the Property List Name does not exist, create it and set values using the arrList variable passed in.
If not bFoundProperty then
Set objNewProp = objConnection.Get("SMS_EmbeddedPropertyList").SpawnInstance_
objNewProp.PropertyListName = strPropertyListName
objNewProp.Values = arrList

‘ Resize the property list and add the new Property List Name.
ReDim Preserve objPropLists(UBound(objPropLists) + 1)
Set objPropLists(UBound(objPropLists)) = objNewProp
End if
 
‘ Cleanup
Set index = Nothing
Set bFoundProperty = Nothing
Set objNewProp = Nothing
    
End Function

Source :
http://social.technet.microsoft.com/Forums/de-DE/configmgrsdk/thread/d6f7e8b7-7214-4e42-bd20-16136b76a3a4

Enjoy !

Michel PICOLLET | EXAKIS Paris
Consultant Senior Microsoft [System Center]
mpicollet@event-horizon.fr

Catégories :SCCM Étiquettes : , ,

Hyper-V – Comment automatiser la création de plusieurs machines virtuelles ?

décembre 4, 2011 2 commentaires

Bonjour à tous,

Voici un post rapide sur comment automatiser par script la création de plusieurs machines virtuelles en 2 minutes… L’idée m’est venue suite à la réinstallation de mon environnement Hyper-V et du temps qu’on passe souvent à créer et à configurer nos machines…

image

Prérequis

image

Il vous faut télécharger et installer le module Hyper-V à cette adresse :
http://pshyperv.codeplex.com/ 

Script Powershell

Lancer ensuite une console Hyper-V et utilser le script suivant :

#————————————————————————-
# AUTEUR : MICHEL PICOLLET | EXAKIS Paris
# Version : 3.0
#————————————————————————-

#    Usage du script :
#    .\Hyper-V-Create-Virtual-Environment-v3.ps1 -NBVM [X] -Eth [X]
#    -NBVM [X]    : Création de X Machines Virtuelles
#    -Eth  [X]    : Création de X VLAN (Internes) Virtuels
#    MAC Prefix   : 00155D00000[X]
#
#    Exemple d’utilisation :   
#    .\Hyper-V-Create-Virtual-Environment-v3.ps1 -NBVM 8 -Eth 1
#    (Pour la création de 8 Machines virtuelles et 1 VLAN)
#————————————————————————-

Param ([String]$NBVM, [String]$Eth)

if (!(Get-Module | where {$_.Name -eq "HyperV" })) 
{
 
if (Test-Path ‘C:\Program Files\modules\HyperV\HyperV.psd1’)
{
  Import-Module ‘C:\Program Files\modules\HyperV\HyperV.psd1’
  Write-Host " Importation OK" -fore green
}
else
    {
     write-host " Le module Hyper-V n’est pas disponible…" -fore red
     write-host " Veuillez installer le module, veuillez télécharger”
     write-host " le module ici :
http://pshyperv.codeplex.com/"
     break
    }
}
else
   {
     Write-Host "Le module est déjà importé…" -fore yellow
   }

$PathVMS = "D:\Virtualization\"
$PathISO = "D:\Sources\ISO\Windows 2008 Server Full x64 R2 en-us.iso"

#Clear
if ($Eth -eq "") {$Eth=1}
foreach ($e in (0..$Eth))
{
   $Result = Get-VMSwitch
   if ($result.ElementName -eq "Virtual Ethernet $e")
   {
     write-host "Virtual Ethernet $e existe déjà !"
   }
   else
       {
        write-host "Création du VLAN : Virtual Ethernet $e …"
        New-VMInternalSwitch "Virtual Ethernet $e"
       }
}

#Clear
if ($NBVM -eq "") {$NBVM=1}

Foreach ($i in (1..$NBVM))
{
$VM = "Machine $i"
$MAC = "00155D00000" + $i
$Fullpath = $PathVMS + $VM

write-host "1 – Création de la machine:"$VM -fore cyan
New-VM -Name $VM -Path $Fullpath
Set-VMMemory -VM $VM 1024MB

write-host "2 – Création du Vdisk 1…" -fore cyan
New-VHD -Size 300GB -Path "$Fullpath\HDD\Hard_disk1.vhd"
write-host "3 – Ajout du premier Disk 1 sur IDE 0" -fore cyan
Add-VMDisk -VM $VM -ControllerID 0 -LUN 0 -Path "$Fullpath\HDD\Hard_disk1.vhd"

write-host "4 – Ajout du contrôler SCSI" -fore cyan
Add-VMSCSIController $VM

write-host "5 – Ajout du premier Disk SCSI" -fore cyan
New-VHD -Size 300GB -Path "$Fullpath\HDD\Hard_disk2.vhd"
Add-VMDisk -VM $VM -SCSI 0 -LUN 0 -Path "$Fullpath\HDD\Hard_disk2.vhd"

write-host "6 – Ajout du second disk SCSI" -fore cyan
New-VHD -Size 300GB -Path "$Fullpath\HDD\Hard_disk3.vhd"
Add-VMDisk -VM $VM -SCSI 0 -LUN 1 -Path "$Fullpath\HDD\Hard_disk3.vhd"

write-host "7 – Montage de l’ISO" -fore cyan
Add-VMDisk -VM $VM -ControllerID 1 -LUN 0 -Path "$PathISO" –DVD

write-host "8 – Ajout de la Carte réseau" -fore cyan
Add-VMNic -VM $VM -Virtualswitch "Virtual Ethernet $e" -MAC $MAC
#Read-host
}

Note : Attention au Copier/Coller 🙂

Démonstration du script

Lancement de la console Powershell :
powershell.exe -NoExit -ImportSystemModules

image

Exécution de la commande :
.\Hyper-V-Create-Virtual-Environment-v3.ps1 -NBVM 8 -Eth 1

image

Résultats

Après l’exécution du script le VLAN a été créé :

image

Les 8 machines virtuelles ont été créées :

image

La configuration de chaque machine a été faite selon mes souhaits :

image

Bien sûr, ce script peut largement être optimisé… Ceci n’est qu’un premier jet…

Enjoy !

Michel PICOLLET | EXAKIS Paris
Consultant Senior Microsoft [System Center]
mpicollet@event-horizon.fr

Catégories :Hyper-V Étiquettes : , , , ,

SCCM – Comment créer le conteneur “System Management” avec Powershell, mais surtout créer un groupe et lui affecter les bons droits sur ce conteneur pour ConfigMgr ?

logo-sccm-20072

image_21En général, lorsque nous installons Microsoft ConfigMgr 2007, nous devons d’abord faire une extension de schéma Active directory et créer le conteneur “System Management” en utilisant la console Adsiedit.msc. Nous devons ensuite affecter le droit “Full Control” au compte machine Serveur SCCM (ou à un groupe dans lequel se trouve celui-ci) sur le dit conteneur.

Bien souvent en mission, nous n’avons pas toujours la main sur l’Active Directory de l’entreprise pour le faire. Nous devons donc écrire une procédure “pas-à-pas” pour les équipes techniques en charge dans l’entreprise.

Mais bien souvent, une procédure manuelle est sujet à l’erreur humaine et/ou à la compréhension de ce qu’il faut faire…

Donc dans une volonté d’éliminer les erreurs humaines et de gagner du temps rédactionnel ou autre nous allons concevoir un script Powershell capable de :

Créer un groupe GLOBAL dans lequel se trouvera notre serveur SCCM (Compte Machine
Créer le conteneur System Management pour Microsoft ConfigMgr 2007
Donner au nouveau groupe GLOBAL, les droits Full Control sur le nouveau conteneur System Management en spécifiant “Apply to : This object and all descendant objects”

Le script doit donc être capable de refléter les screenshots suivants sur le container « System Management » :

SCCM_Conteneur2 SCCM_Conteneur

Script Powershell


Pour ce faire, voici le script…

CD AD:
$GGSMSServers="GG-SMS-Servers"
$ComputerNameSCCM="SCCMServerName"
$adspath = ([ADSI] »).distinguishedName
$query = New-ADObject -name "System Management" -type container -path "CN=System,$adspath" –passthru
$acl = get-acl $query
$group = new-adgroup $GGSMSServers -groupscope global –passthru
$sid = new-object System.Security.Principal.SecurityIdentifier $group.SID
$objectguid = new-object Guid
$ace1 = new-object System.DirectoryServices.ActiveDirectoryAccessRule $sid, 0xF01FF, "Allow", $objectguid, "All"
$acl.AddAccessRule($ace1)
set-acl -aclobject $acl $query
Get-ADComputer $ComputerNameSCCM | Add-ADPrincipalGroupMembership -MemberOf $GGSMSServers

Sachant que l’extension du schéma Active directory pour SCCM n’est que l’exécution de EXTADSCH.EXE, je ne vais pas en parler ici. Mais rien ne vous empêche de l’inclure dans le script…

EXTADSCH.EXE se trouve dans le répertoire sources SCCM : DVD:>\SMSSETUP\BIN\I386\

Enjoy !

Michel PICOLLET | EXAKIS Paris
Consultant Senior Microsoft [System Center]
mpicollet@event-horizon.emea.microsoftonline.com

%d blogueurs aiment cette page :