
Nous examinons l'extension des capacités de System Center Configuration Manager (produit pour la gestion de l'infrastructure informatique) lors du démarrage des PC utilisateurs via le réseau en utilisant PXE. Nous créons un menu de démarrage basé sur PXELinux avec des fonctionnalités de System Center et ajoutons des capacités de vérification antivirus, des images de diagnostic et de récupération. À la fin de l'article, nous abordons les spécificités du fonctionnement de System Center 2012 Configuration Manager en collaboration avec Windows Deployment Services (WDS) lors du démarrage via PXE.
Toutes les actions se déroulent dans un environnement de test, où System Center 2012 Configuration Manager SP1, un contrôleur de domaine et un certain nombre de machines de test sont déjà installés. Il est supposé que le déploiement réseau utilisant PXE est déjà en cours dans SCCM.
Introduction
L'environnement de test se compose de plusieurs machines virtuelles. Toutes les machines ont le système d'exploitation invité Microsoft Windows Server 2008 R2 (x64), l'adaptateur réseau E1000, contrôleur SCSI : LSI Logic SAS.
Nom (Rôles)
Adresse IP / Nom DNS
Fonctionnalités
SCCM (System Center Configuration Manager)
192.168.57.102
sccm2012.test.local
System Center Configuration Manager 2012 SP1 est installé
DC (AD, DHCP, DNS)
192.168.57.10
dc1.test.local
Rôle de contrôleur de domaine, serveur DHCP et serveur DNS
TEST (Machine de test)
192.168.57.103
test.test.local
Pour les tests
GW (Passerelle)
192.168.57.1
Routage entre les réseaux. Rôle de la passerelle
1. Ajouter PXELinux dans SCCM
Les actions se déroulent sur la machine où System Center Configuration Manager est installé.
- Définissons le répertoire où se trouvent les fichiers WDS pour le démarrage, pour cela nous vérifions la valeur du paramètre dans le registre.
RootFolderdans la brancheHKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
Valeur par défautC:RemoteInstall
Les fichiers pour le démarrage depuis le point de déploiement SCCM se trouvent dans les répertoiressmsbootx86etsmsbootx64selon l'architecture.
Nous configurons d'abord le répertoire pour l'architecture 32 bits, par défautc:Remoteinstallsmsbootx86 - Nous téléchargeons l'archive avec le dernier . Nous copions depuis syslinux-5.01.zip dans
c:Remoteinstallsmsbootx86les fichiers suivants :
memdisk, chain.c32, ldlinux.c32, libcom32.c32, libutil.c32, pxechn.c32, vesamenu.c32, pxelinux.0
Des fichiers supplémentaires sont nécessaires pour éviter ce type d'erreur.
- Dans
c:Remoteinstallsmsbootx86Nous renommonspxelinux.0danspxelinux.com
Dans le dossierc:remoteinstallsmsbootx86nous faisons une copie deabortpxe.comet la renommons enabortpxe.0
Cependant, si nous ne renommons pas l'extension.0, alors par exemple, l'instructionKernel abortpxe.comsera exécutée avec l'erreur : Démarrage du noyau échoué : Mauvais numéro de fichier
Pour PXELINUX, l'extension du fichier de démarrage doit être définie conformément au tableau.aucune ou autre image du noyau Linux .0 programme de démarrage PXE (NBP) [uniquement PXELINUX] .bin "secteur de démarrage du CD" [uniquement ISOLINUX] .bs Secteur de démarrage [uniquement SYSLINUX] .bss Secteur de démarrage, le superbloc DOS sera patché [uniquement SYSLINUX] .c32 image COM32 (COMBOOT 32 bits) .cbt image COMBOOT (non exécutable à partir de DOS) .com image COMBOOT (exécutable à partir de DOS) .img image disque [uniquement ISOLINUX]Source : section "Fichier du noyau"
- Pour éviter d'appuyer plusieurs fois sur la touche F12 lors du démarrage de SCCM via le menu, nous renommons pxeboot.com en pxeboot.com.f12, copions pxeboot.n12 dans pxeboot.com
Si cela n'est pas fait, à chaque sélection nous recevrons ce message
Remarque : N'oublions pas de renommer ces fichiers dans le dossier pour x64 car lors du démarragex86wdsnbp.comdepuis le dossier x86, le chargeur détermine l'architecture du processeur et le fichier suivant est déjà chargé à partir du dossier de l'architecture correspondante. Ainsi, pour x64, le fichier suivant ne sera pasx86pxeboot.com, etx64pxeboot.com - Téléchargeons/créons , résolution 640x480, copions dans le même dossier. Créons un dossier
ISOdans lequel nous allons placer les images ISO. Créons un dossierpxelinux.cfgpour les configurations. - Dans le dossier pxelinux.cfg, créons un fichier default, dans un encodage non Unicode, avec le contenu
default (Cliquez pour afficher)# используем графическое меню DEFAULT vesamenu.c32 PROMPT 0 timeout 80 TOTALTIMEOUT 9000 MENU TITLE PXE Boot Menu (x86) MENU INCLUDE pxelinux.cfg/graphics.conf MENU AUTOBOOT Starting Local System in 8 seconds # Boot local HDD (default) LABEL bootlocal menu label Boot Local menu default localboot 0x80 # if it doesn't work #kernel chain.c32 #append hd0 # Вход в меню по паролю Qwerty, алгоритм MD5 label av menu label Antivirus and tools menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0 kernel vesamenu.c32 append pxelinux.cfgav.conf label sccm menu label Start to SCCM COM32 pxechn.c32 APPEND sccm2012.test.local::smsbootx86wdsnbp.com -W label pxe64 menu label Start to x64 pxelinux COM32 pxechn.c32 APPEND sccm2012.test.local::smsbootx64pxelinux.com LABEL Abort MENU LABEL Exit KERNEL abortpxe.0Dans le dossier
pxelinux.cfgcréons un fichiergraphics.confavec le contenu
graphics.conf (Cliquez pour afficher)MENU MARGIN 10 MENU ROWS 16 MENU TABMSGROW 21 MENU TIMEOUTROW 26 MENU COLOR BORDER 30;44 #00000000 #00000000 none MENU COLOR SCROLLBAR 30;44 #00000000 #00000000 none MENU COLOR TITLE 0 #ffffffff #00000000 none MENU COLOR SEL 30;47 #40000000 #20ffffff MENU BACKGROUND background.png NOESCAPE 0 ALLOWOPTIONS 0Dans le dossier
pxelinux.cfgcréons un fichierav.confavec le contenu
av.conf (Cliquez pour afficher)DEFAULT vesamenu.c32 PROMPT 0 MENU TITLE Antivirus et outils MENU INCLUDE pxelinux.cfg/graphics.conf label main menu menu label retourner au menu principal kernel vesamenu.c32 append pxelinux.cfg/default label drweb menu label DrWeb kernel memdisk append iso raw initrd=isodrweb.iso label eset menu label Eset kernel memdisk append iso raw initrd=isoeset_sysrescue.iso label kav menu label KAV Rescue CD KERNEL kav/rescue APPEND initrd=kav/rescue.igz root=live rootfstype=auto vga=791 init=/init kav_lang=ru udev liveimg doscsi nomodeset quiet splash #Nous chargeons l'ISO par le chemin complet, il est possible de charger depuis un autre TFTP label winpe menu label WinPE depuis un autre TFTP kernel sccm2012.test.local::smsbootx86memdisk append iso raw initrd=sccm2012.test.local::smsbootx86isoWinPE_RaSla.iso label clonezilla menu label Clonezilla kernel memdisk append iso raw initrd=isoclonezilla.iso - En fin de compte, le répertoire c:remoteinstallsmsbootx86 contient la structure
c:remoteinstallsmsbootx86
pxelinux.cfgchain.c32
ldlinux.c32
libcom32.c32
libutil.c32
pxechn.c32
vesamenu.c32
pxelinux.com
background.png
pxelinux.cfg
pxelinux.cfg
pxelinux.cfg
ISO
abortpxe.0
wdsnbp.com
bootmgfw.efi
wdsmgfw.efi
bootmgr.exe
pxeboot.n12
pxeboot.com
abortpxe.comdefault
av.conf
graphics.conf
*.iso - Pour l'architecture x64, nous copions également et créons une structure identique dans le dossier
c:remoteinstallsmsbootx64
Module complémentaire
Lors de l'utilisation de la commandemenu PASSWDle mot de passe peut être défini tel quel ou utiliser un algorithme de hachage, en ajoutant au début du paramètre la signature correspondanteL'algorithme
SignatureMD5
$1$SHA-1
$4$SHA-2-256
$5$SHA-2-512
$6$Ainsi, pour le mot de passe
Qwertyet l'algorithme MD5menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0Vous pouvez générer un mot de passe, par exemple, via un générateur de hachage en ligne , ligne
MD5(Unix)
2. Configurer le démarrage PXELinux
Nous allons maintenant indiquer comment démarrer pxelinux.com et obtenir le menu.
L'indication du chargeur pxelinux.com via la fonctionnalité WDS ne fonctionne pas dans SCCM. Les commandes de type
wdsutil /set-server /bootprogram:bootx86pxeboot.com /architecture:x86
ne sont pas traitées. Pour vous assurer que les images de démarrage ne sont pas spécifiées, vous pouvez exécuter la commande pour afficher la configuration du serveur WDS
wdsutil /get-server /show:images
Ainsi, dans SCCM 2012, il n'est pas possible de spécifier votre propre fichier de démarrage via PXE pour le fournisseur SMSPXE. Nous allons donc configurer la portée active du serveur DHCP.
Dans les paramètres de la portée active DHCP, nous définissons les paramètres conformément au tableau
Option DHCP
Nom du paramètre
Valeur
066
Nom d'hôte du serveur de démarrage
sccm2012.test.local
067
Nom du fichier de démarrage
smsbootx86pxelinux.com
006
Serveurs DNS
192.168.57.10
015
Nom de domaine DNS
test.local
Dans l'option 066, nous spécifions le nom FQDN du serveur SCCM, dans l'option 067, nous spécifions le chemin jusqu'au chargeur pxelinux.com x86 à partir de la racine TFTP, dans l'option 006, nous spécifions l'adresse IP du serveur DNS. Si l'option 066 utilise un nom court pour le serveur, dans l'option 015, nous spécifions le suffixe DNS du domaine.
Module complémentaire
Mvgolubev a décrit en détail la configuration DHCP . Mais dansDCl'option 150, l'adresse IP du serveur TFTP, était absente des paramètres de la portée DHCP et l'indication de l'option 150 via netsh ne fonctionnait pas.
3. Vérification du fonctionnement
Les paramètres principaux sont terminés et nous pouvons commencer la vérification. Nous indiquons sur l'ordinateur de test dans le BIOS de démarrer par réseau et nous entrons dans le menu
Sélectionnez l'option «Démarrer vers SCCM» et si une séquence de tâches est assignée à l'ordinateur, une fenêtre «Assistant de création de séquence de tâches» apparaîtra après un certain temps avec une demande d'entrée de mot de passe

Nous redémarrons la machine, entrons à nouveau dans le menu, choisissons dans le menu «Antivirus et outils» et entrons le mot de passe Qwerty
Nous choisissons un élément aléatoire et observons le chargement de l'image ISO en mémoire
Nous attendons et observons le résultat
Vérification terminée

4. Paramètres supplémentaires et particularités
Configuration du routage
Si le client, le serveur DHCP et le serveur contenant le chargeur réseau se trouvent dans le même segment de réseau, aucune configuration supplémentaire n'est nécessaire. Cependant, si le client et le serveur DHCP ou le serveur WDS/SCCM se trouvent dans des segments de réseau différents, il est recommandé de configurer la redirection des paquets de diffusion depuis le client vers le serveur DHCP actif et le serveur WDS/SCCM actif sur les routeurs. Dans la littérature anglophone, ce processus est connu sous le nom de « mises à jour de la table IP Helper ». Dans ce cas, après avoir obtenu une adresse IP, le client communique directement avec le serveur contenant le chargeur réseau via des paquets DHCP pour télécharger le chargeur réseau.
Pour les routeurs Cisco, la commande utilisée est
ip helper-address {ip address}
où {ip address} adresse du serveur DHCP ou du serveur WDS/SCCM. En utilisant cette commande, les paquets UDP de diffusion suivants sont également transférés
Port
Protocole
69
TFTP
53
Domain Name System (DNS)
37
Service de temps
137
Serveur de noms NetBIOS
138
Serveur de datagrammes NetBIOS
67
Bootstrap Protocol (BOOTP)
49
TACACS
La deuxième méthode pour que le client obtienne des informations sur le chargeur réseau directement du serveur DHCP consiste à spécifier les options 60, 66, 67 sur le serveur DHCP. L'utilisation du paramètre DHCP 60 avec la valeur « PXEClient » s'applique à tous les domaines d'application DHCP, uniquement si le serveur DHCP est hébergé sur le même serveur que les services de déploiement de Windows. Dans ce cas, le client se connecte au serveur des services de déploiement de Windows directement via le protocole TFTP sur le port UDP 4011, et non via DHCP. Cette méthode n'est pas recommandée par Microsoft en raison de problèmes d'équilibrage de charge, de traitement incorrect des paramètres DHCP et des réponses des services de déploiement de Windows du côté client. Elle est également déconseillée car l'utilisation uniquement des deux options 66 et 67 DHCP permet de contourner les paramètres définis sur le serveur de chargeur réseau.
Il est également nécessaire d'ouvrir les ports UDP suivants sur le serveur des services de déploiement de Windows
port 67 (DHCP)
port 69 (TFTP)
port 4011 (PXE)
et le port 68, si l'autorisation DHCP est requise sur le serveur.
Le processus de configuration et les subtilités de la redirection entre différents serveurs WDS sont décrits plus en détail ci-dessous dans les sources :
Gestion des programmes de démarrage réseau
Gestion du serveur
Limites de support des services de support produit Microsoft (PSS) pour le démarrage de Microsoft Windows Preinstallation Environment (Windows PE) 2.0
Comment rediriger la diffusion UDP (BOOTP / DHCP) sur Cisco
Caractéristiques de fonctionnement et de configuration de DHCP sur les routeurs Cisco (Partie 2)
Fonctionnalités supplémentaires de démarrage local
Dans l'environnement de test, la commande
localboot 0 affiche cette erreur

Selon la documentation de syslinux, il
localboot 0démarrera à partir du disque local. En spécifiant la valeur exacte 0x00 pour le disque floppy principal, et 0x80 pour le disque dur principal. En modifiant la commande en
localboot 0x80 le système d'exploitation local a démarré.
S'il est nécessaire de démarrer à partir d'un disque, d'une partition ou si la commande localboot ne fonctionne pas, alors il est possible d'utiliser les fonctionnalités du module chain.c32. Après son chargement, la commande append spécifie le disque ou la partition exacte, la numérotation des disques commence à 0, la numérotation des partitions à 1, car en spécifiant la partition 0, le MBR est chargé. Le disque n'a pas besoin d'être spécifié.
KERNEL chain.c32
APPEND hd0 0ou
KERNEL chain.c32
APPEND hd0 Sources :
Ordre et description du chargement des fichiers via PXE
Comme mentionné au début de l'article, le répertoire contenant les fichiers WDS pour le chargement est spécifié dans la valeur du paramètre RootFolder dans la branche du registre HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
Valeur par défaut C:RemoteInstall
Ici, dans le paramètre ReadFilter sont indiqués les répertoires où le serveur TFTP recherche les fichiers à charger, à partir de la racine. Lorsque SCCM 2012 SP1 est installé, ce paramètre est
boot*
tmp*
SMSBoot*
SMSTemp*
SMSImages* Si la valeur du paramètre est modifiée en * tous les fichiers situés dans le répertoire RemoteInstall.
Le rôle du point de déploiement SCCM 2012 est inscrit dans le paramètre du registre ProvidersOrder, situé dans la branche HKLMSystemCurrentControlSetWDSServerProvidersWDSPXE
Paramètre ProvidersOrder peut prendre les valeurs
SMSPXE
point de service PXE dans SCCM
SMS.PXE.Filter
Gestionnaire des scripts PXE provenant de MDT (Microsoft Deployment Toolkit)
BINLSVC
Gestionnaire standard de WDS et RIS
Lorsque SCCM est installé, le paramètre ProvidersOrder a de l'importance SMSPXE. En modifiant le paramètre, il est possible de changer l'ordre de chargement des fournisseurs.
Dans le répertoire RemoteInstall les fichiers standards suivants sont situés
wdsnbp.com
Programme de chargement réseau, conçu pour les services de déploiement Windows et exécutant les tâches suivantes :
1. Détection de l'architecture.
2. Gestion des ordinateurs en attente. Lorsque la politique d'ajout automatique est activée, ce programme de chargement réseau est envoyé aux ordinateurs en attente pour suspendre le chargement réseau et informer le serveur de l'architecture de l'ordinateur client.
3. Utilisation des liens de chargement réseau (y compris l'utilisation des paramètres 66 et 67 du protocole DHCP)
PXEboot.com
(Par défaut) Nécessite que l'utilisateur appuie sur la touche F12 pour continuer le chargement réseau
PXEboot.n12
Ne nécessite pas que l'utilisateur appuie sur la touche F12 et commence immédiatement le chargement réseau
AbortPXE.com
Charge l'ordinateur en utilisant l'élément de démarrage suivant dans le BIOS sans attendre
Bootmgr.exe
Gestionnaire de démarrage Windows (Bootmgr.exe ou Bootmgr.efi). Charge à l'aide du firmware le chargeur Windows à partir d'une partition de disque spécifique ou via une connexion réseau (en cas de chargement réseau)
Bootmgfw.efi
Version EFI des programmes PXEboot.com et PXEboot.n12 (dans EFI, la décision de charger ou non PXE se fait dans l'interface EFI, et non par le programme de démarrage réseau). Le programme Bootmgfw.efi combine les fonctionnalités de PXEboot.com, PXEboot.n12, abortpxe.com et bootmgr.exe. Actuellement, elle n'existe que pour les architectures x64 et Itanium
Default.bcd
Magasin de données de configuration de démarrage (BCD), format REGF, peut être chargé dans REGEDIT, remplace le fichier texte Boot.ini
Le démarrage se déroule dans l'ordre suivant conformément à la description ci-dessus
1. wdsnbp.com est chargé.
2. Ensuite, pxeboot.com de l'architecture correspondante est chargé
3. PXEBoot.com charge bootmgr.exe et le magasin de données de configuration de démarrage BCD
4. Bootmgr.exe lit les entrées du système d'exploitation à partir des données de configuration de démarrage BCD et charge le fichier Boot.sdi et l'image Windows PE (boot.wim)
5. Bootmgr.exe commence à charger Windows PE en appelant Winload.exe dans l'image Windows PE
Si dans RemoteInstall il y a des dossiers
Boot
Images
Mgmt
Templates
Tmp
WdsClientUnattend leur présence signifie qu'une action de configuration a eu lieu sur les Services de déploiement Windows (WDS) installés avant l'ajout du rôle de point de distribution dans SCCM 2012 (points de service PXE dans SCCM 2007), ce qui a entraîné la création automatique de ces dossiers.
Pour le rôle de point de distribution (point de service PXE dans SCCM 2007), seuls les dossiers suivants sont requis
SMSBoot
SMSIMAGES
SMSTemp
StoresCela ne signifie pas que SCCM est mal installé, mais cela peut indiquer une source potentielle d'erreurs.
La résolution des divers problèmes liés à WDS, SCCM et PXE est très détaillée dans l'article
Conclusion
Une nouvelle outil a été ajoutée à l'infrastructure informatique gérée par System Center Configuration Manager pour le travail des administrateurs système sur le terrain.
Liste des liens vers les images ISO (Cliquez pour afficher)
Merci de votre attention !

Source : habr.com
