WIN – CORE 2025
Cet article est intimement lié à un membre de mon service avec qui je travaille quotidiennement qui m’a mis le « seum » (comme disent les jeunes) sur une technologie à laquelle je n’avais pas touchée !
#vieuxcrouton #hasbeen #looser #cartevermeille
Ouai ba voyez M’sieurs, Dames, il suffit de pas grand chose pour toucher mon orgueil et surtout « titiller » (vous ne trouvez pas que ce mot transpire de sensualité ?) mon intellect. Il est vrai que depuis un certain temps pour ne pas dire année, je souhaitais aborder le sujet. Mais le manque de temps voyez vous… M’enfin il n’est jamais trop tard, jamais et les collègues vous le rendent bien !
Bon si vous connaissez Microsoft Windows en interface graphique, sachez qu’ici nous allez faire du hard core planc gorge, j’mords, c’est jusqu’à la mort ! Hé oui mes loulous, on va parler de Windows CORE. Accrochez vous à votre PowerShell, car va falloir jouer du framework .NET et se faire une bonne cartographie mentale !
Pour une première, je me suis dit pourquoi ne pas découvrir CORE avec la nouvelle version de WS 2025 DTC1 ? 🙂 Viendez viendez, on n’y craint pas ! (Merci de bénéficier des avantages d’êtres un Alumni Supinfo).
(L’auteur aurait il consommé quelques substances avant de commencer ce billet ? Nous mettons le commissaire MAIGRET sur le coup, mais discrètement hein. Jean GABIN or Bruno CEMER will be summon on ? This is an excellent question…).
Prérequis
- SE : Windows Server 2k19 et version ultérieures
- Apps : VMWare/Hyperv
- Autres :
- Powershell
Avant-Propos
Cet article va être plutôt petit et va dénoter avec les articles précédents qui étaient des pavés à la limite de l’indigestion. Toutefois, ne voyez pas dans ce billet un moyen d’utiliser mon appétence cérébrale à des fins mercantiles.
Je reconnais toutefois avoir été pris au piège de l’influence et des statistiques de la performance des réseaux. Néanmoins, une petite période de sevrage permet de remettre l’église au centre du village. Je dis-verge, mais ce point est important.
La vraie question est qu’est ce que t’apporte tes articles ? Un plaisir de créer et de partager ou de générer des réactions qui viennent flatter ton égo ?
Ah ha ! Tu es démasqué FANTOMAS ! La réponse est simple. Partager et accessoirement savoir que cela a été bénéfique à d’autre. Je dois garder à l’esprit que je ne suis ni expert, ni un surhomme. Juste un SysAdmin qui refuse d’être un NEVER BEEN et dans l’apprentissage permanente.
« Je suis le commissaire MAIGRET de la police judiciaire de Paris… Mmmmhhhh. Pensez vous que le rédacteur aurait pu boire quelques verres ? Vous lui avez donné quelques choses ? »
Merde, le commissaire commence à se rapprocher de moi ! Pour brouiller les pistes, nous allons partir sur le déploiement d’un serveur CORE pour remplacer notre serveur AD2 avec la surcouche d’expérience utilisateur. (Mais nous resterons uniquement sur la partie configuration du SE3 et de sa mise au domaine, je garde la suite pour d’autres billets 🙂 A que c’est beau de voir la fièvre créative d’un jeune vieux !).
Théorie
Bien bien bien, un petit peu d’histoire. Pourquoi, quand et comment Windows Core est né ?
Nous pourrions demander au commissaire MAIGRET, mais nous allons le ménager.
La première version grand public de Windows Serveur Core apparait en 2008 avec la version WS2k8.
L’un des enjeux de l’époque et la sécurité. Effectivement, si nous reprenons l’une des bonnes pratiques de l’ANSSI4, nous ne devrions installer sur nos serveurs le strict minimum en termes de rôles, fonctionnalités et applications. Or notre Windows Server en GUI5 possède plein de chose utile/inutile.
Bref, c’est pourquoi un gars (Andrew Mason pour ne pas donner de nom) c’est posé la question de restreindre le périmètre d’attaque des serveurs en épurant les SEs. Adieu l’interface graphique, bonjour la ligne de commande !
Mais la ligne de commande, ça ne fait pas b****r tout le monde. Perso, je dis aime <3
« Vous avez des nouvelles d’R-One ? C’est curieux vous ne trouvez pas ? Qu’avait-il bu ? J’ai bon espoir de croire que c’était un Beaujolais Moulin à Vent 2011… »
Il est fort ce Jules (vous ne saviez pas que c’était Jules son prénom ? Hé bien voilà, vous mourriez moins c*n ce soir) ! Mais pour ma défense c’était sur la griotte à l’eau de vie et ça pinottait pas mal, jusqu’à me remémorer un vague souvenir d’un Griotte Chambertin il y a quelques années.
Nous nous égarons commissaire ! Pourquoi utiliser Windows Core ? Si c’est en ligne de commande c’est pénible et pour les SysAdmins averties ?
Dans un sens oui c’est pour les SysAdmins un peu plus confirmés, mais quitte à me répéter, les compétences ça s’acquiert 😊Nous utiliserons les serveurs CORE pour des rôles qui sont « critiques » et qui ne nécessite en rien une interface graphique.
Un petit exemple :
Et nous pourrions continuer l’énumération des rôles !
Windows CORE n’est pas non plus une brute. Nous retrouvons quelques IHM8 en GUI si besoin (Notepad, ADExplorer, Regedit,Diskpart… La liste des composant, par ici).
Ok pour vous ? OOOOKKKKAAAAAYYYYY !
Mouai, mais tu peux nous dire comment on administre les serveurs ? La sécurité ok, mais ce n’est pas pratique ton truc.
Pour le coup, nous avons plusieurs possibilités d’administrer un serveur CORE à distance depuis un autre serveur.
- Microsoft Manangement Console (MMC.EXE)
- Gestionnaire de Server (ServerManager.exe)
- Windows Admin Center
- Powershell :p
La connexion s’effectue soit via le protocole DCOM9 (obsolète depuis) ou WinRM10. Mais qu’est-ce que ce WinRM ? Je pense que la définition de Microsoft s’applique sans user de paraphrase.
Windows Remote Management (WinRM) est l’implémentation Microsoft du protocole WS-Management, qui est un protocole soap (Simple Object Access Protocol) standard et compatible avec le pare-feu qui permet l’interopérabilité entre le matériel et les systèmes d’exploitation de différents fournisseurs.
https://learn.microsoft.com/fr-fr/windows/win32/winrm/portal
Pratique
Installation
L’installation entre nous c’est exactement la même chose que pour les versions précédentes avec un petit coup de poliche car c’est WS 2025. Waouh, l’IHM a été modifiée !
#grossebossedanslefutal #balancetonstream
Je passe donc cette partie. De toute façon, il n’y a rien de bien intéressant. Choisir un disque et la partition pour déployer le système d’exploitation ? Saisir une clé d’activation. Patientez devant la barre de progression ?
Perso, j’ai déjà fait l’installation est un modèle. J’ai donc déployé ce dernier et réalisé un sysprep en amont. L’objectif et d’être efficace quant au déploiement d’un serveur.
Allez, donne moi ton CORE baby, ton CORPS baby…
Premier Démarrage
Lors du premier démarrage, nous constatons dans notre console, un fond noir avec une fenêtre console qui tourne. Ça change de ce bon vieux écran bleu avec la progresse barre circulaire hein ?
Je vous vois 🙂 Vous êtes perdu comme Vincent VEGA en pleine montée 🙂 Pas de panique, nous n’aurons pas besoin d’adrénaline. Un petit Ctrl+Alt+Del et magie, le terminal change.
Comme pour l’interface graphique, nous sommes invités à définit le mot de passe du compte Administrateur local.
Ce qui nous amène avant d’afficher notre menu principal de choisir ou non si nous souhaitons envoyer des données de diagnostic dans un but « d’amélioration ». Même sans interface graphique, nous ne pouvons nous soustraire à la dure loi de collecte des données. Dura lex, sed lex (et non pas DUREX, SEX SEX qui est tout à fait hors de son propos bien que résultat des courses ils nous prennent pour des canards sauvages).
Perso, je valide que le strict minimum. Une fois validé, nous avons enfin le Saint-Graal qui se dévoile devant nous <3
Nous pourrions faire une rapide analogie avec le menu classique d’administration graphique Server Manager. Normal car c’est grosso merdo la même chose un petit « SConfig.exe » dans le terminal et youpi yope nous réafficherons ce menu.
K’est K’on Fé ? Y a pô d’Mulot pour y fair une config ?
Promis, nous allons réaliser la configuration du serveur étape par étape et améliorer ton niveau grammaticale et orthographique mon lapin 🙂
Comme énoncé précédemment, il faudra nous plonger dans les manuels et documentations des commandes powershell et autres afin de configurer notre système, la couche réseau, la couche de sécurité, les mises à jour. Il existe une autre méthode d’administration mais nous laissons cela pour plus tard.
Configuration
Une grande partie de la configuration peut être réaliser depuis l’utilitaire SConfig.exe. Néanmoins cela n’est pas amusant et nécessite de saisir les informations. Pas super dans le cadre d’un déploiement en série de serveur.
C’est pourquoi, je propose un bout de script juste step by step. Je ne compte pas réinventer la roue ou un SConfig, je vous rassure. Mon objectif reste d’avoir un Bécanne qui soit au domaine, le réseau configuré, le mode de performance défini et que ce dernier passe dans la sauvegarde VEEAM en guest-processing. En bonus, l’ajout d’une partition.
Réseaux
Pour commencer, il nous faut récupérer l’index de notre interface. (Dans le cas où nous avons plusieurs cartes, procédons interfaces par interfaces et fiez vous à votre MAC).
Bien, t’es sympa, mais ça irait plus vite avec le SConfig non ? Pas certains si nous visons un déploiement de plusieurs serveurs rapidement. Exemple une fois les bouts de codes mis bout à bout et en ayant préalablement renseigné les variables :
$_const_network_ipv4_address="192.168.171.10"
$_const_network_ipv4_CIDR="24"
$_const_network_ipv4_GW="192.168.171.2"
$_const_network_ipv4_DNS=@("8.8.8.8","1.1.1.1")
$_const_network_ipv6_enable=$false
$_const_network_ifIndex=3
function NetworkSettings {
param()
#https://learn.microsoft.com/en-us/powershell/module/nettcpip/new-netipaddress?view=windowsserver2025-ps
New-NetIPAddress -InterfaceIndex $_const_network_ifIndex `
-IPAddress $_const_network_ipv4_address `
-PrefixLength $_const_network_ipv4_CIDR `
-DefaultGateway $_const_network_ipv4_GW
#https://learn.microsoft.com/en-us/powershell/module/dnsclient/set-dnsclientserveraddress?view=windowsserver2025-ps
Set-DnsClientServerAddress -InterfaceIndex $_const_network_ifIndex `
-ServerAddresses $_const_network_ipv4_DNS
#https://learn.microsoft.com/en-us/powershell/module/nettcpip/set-netipinterface?view=windowsserver2025-ps
Set-NetIPInterface -InterfaceIndex $_const_network_ifIndex `
-Dhcp Disabled `
$interfaceName = Get-NetAdapter | Where-Object {$_.ifIndex -eq $_const_network_ifIndex}
if($_const_network_ipv6_enable){
Enable-NetAdapterBinding -Name $interfaceName.Name -ComponentID ms_tcpip6
}
else{
#Disable IPV6 : https://learn.microsoft.com/en-us/powershell/module/netadapter/disable-netadapterbinding?view=windowsserver2025-ps
Disable-NetAdapterBinding -Name $interfaceName.Name -ComponentID ms_tcpip6
}
}
Systèmes
Lors du déploiement d’un server depuis un modèle ayant subi un sysprep ou de zéro, le profil d’énergie n’est pas défini en mode de performance et ce dernier autorise le mode de mise en veille. Ce qui peut avoir des conséquences désastreuses dans un environnement de production.
Soit en synthèse, un bout de code du type
function Performance{
param()
#SetToPerformanceMode : https://learn.microsoft.com/fr-fr/windows-hardware/design/device-experiences/powercfg-command-line-options
$currentPowerProfile=powercfg.exe /getactivescheme
if($currentPowerProfile.Contains("*High performance*")){
$true
}
else{
$false
powercfg.exe -SETACTIVE 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
}
#Disable SleepingMode
powercfg.exe /hibernate off
powercfg /Change monitor-timeout-ac 45
powercfg /Change monitor-timeout-dc 45
powercfg /Change standby-timeout-ac 0
powercfg /Change standby-timeout-dc 0
}
La mise au domaine de notre serveur est un pré requis pour la suite des opérations, notamment de sécurité. Bien que certains des paramètres pourrons être administrés par GPP11 ou GPO12 je tiens à gérer, « jouer » avec les paramètres du profil de domaine authentifié.
Add-Computer -DomainName contoso.lan -ComputerName myPC -Restart
Naturellement, la commande ci-dessus permet de renommer en même temps notre serveur. Nous pourrions forcer la partie d’authentification en précisant le couple authentification et mot de passe. Toutefois, ce n’est pas parce que nous sommes en CORE que les interfaces graphiques n’existent pas. Nativement, certains outils sont pris en charge. C’est le cas de la fenêtre d’authentification.
Ce qui avec succès nous donnera le retour suivant dans notre console (si et seulement si nous n’avons pas spécifié le reboot dans la commande).
Je passe bien volontiers mon tour pour vous montrer dans l’AD l’inscription de notre serveur en tant qu’objet ordinateur. Oui nous pouvons faire la même chose avec SConfig, mais encore une fois optimisons le déploiement.
Sécurités
Cette partie pourrait plus être renommé Réseaux que Sécurités. Toutefois difficile de parler de réseaux sans aborder de notion de sécurité. Alors qu’à l’inverse il est possible de parler de sécurités sans parler pour autant de réseaux.
Je ne traiterai ici que de la partie pare-feu. C’est à dire s’assurer que ce dernier est bien actif pour l’ensemble des trois profils ainsi que de l’activation de la fonctionnalité de partage de fichiers et d’impressions pour le profil de domaine authentifié (mais si, vous savez cette petite fonctionnalité qui permet de réaliser la sauvegarde à chaud de nos serveurs Windows via VEEAM).
Si nous partons du postulat que nous avons plusieurs applications à activer pour plusieurs profils, il conviendrait alors de compléter les variables de type tableau de chaine de caractère concernant les applications ($_const_firewall_apps_toenaled) ainsi que les profils pour lesquels ils doivent être actif ($_const_firewall_apps_fileandprinterSharing_profils).
$_const_firewall_profil_enable=$true
$_const_firewall_apps_toenaled=@("File and Printer Sharing")
$_const_firewall_apps_fileandprinterSharing_profils=@("Domain","Private")
function FirewallSettings {
#check Profile + add files and shared
param()
$profilsFirewall=Get-NetFirewallProfile | Select-Object Name,Enabled
foreach($profil in $profilsFirewall){
Set-NetFirewallProfile -Name $profil.Name `
-Enabled $_const_firewall_profil_enable
}
foreach($app in $_const_firewall_apps_toenaled){
Get-NetFirewallRule -DisplayGroup "$app"
foreach($profil in $_const_firewall_apps_fileandprinterSharing_profils){
Set-NetFirewallRule -DisplayGroup $app `
-Profile $profil `
-Enabled "True"
}
}
}
Stockage
Je me pose la question de qu’est ce que peut bien fo***e cette partie ici. Dans la logique d’un billet déjà existant pour les systèmes GNU/UNIX. Popopopop garçon, ça a bien sa place. Nous avons tous débuter non ?
Je dirai que pour les SEs WINDOWS, la question ne se pose pas trop car nous savons initialiser un disque en interface graphique et définir nos volumes. En ligne de commande, c’est un peu moins facile (logique, nous n’avons pas les infobulles et autres wizards que nous orientons avec notre souris). Quoi que, je dirais que c’est tout aussi facile il suffit juste de suivre la même logique que pour l’ajout d’un volume sous UNIX.
Mais pour cela comment choisir notre disque ? Nous avons ajouté notre disque à travers VMWare ou HyperV. Nous connaissons donc ça volumétrie, right ? La commande Get-Disk va retourner l’intégralité des disques présentés à notre machine en lui attribuant un nombre. Il suffit donc de récupérer le nombre associé à notre disque.
Commençons par initialiser notre disque en type de partition GPT14.
Initialize-Disk -Number 1 -PartitionStyle GPT
Nous nous devons de récupérer l’ensemble des lettres assignées à nos différents lecteurs afin de ne pas allouer une lettre déjà utilisée. A savoir car je l’ai déjà vu sur certaines machines de production clients, nous bannissons les lettres A et B pour nos lecteurs… Par nostalgie, les lettres A et B étaient réservé au floppy drive ou disquette.
(Get-PSDrive -PSProvider FileSystem).Root
Donc à priori, les lettres C et D sont prises. Nous prendrons E sans hésiter. Oui, je vais suivre cette logique arbitraire du n+1.
Nous avons notre lettre, notre numéro de disque et la taille. Nous pouvons donc créer notre partition. Sur ce point, il y a cependant deux voies possibles jeune padadmin (comme un padawan mais sans l’ordre 66).
Nous pouvons utiliser l’intégralité de l’espace disque disponible ou seulement une quantité préalablement définie.
New-Partition -DiskNumber 1 -DriveLetter E -UseMaximumSize
ou
New-Partition -DiskNumber 1 -Size 5000MB -DriveLetter E
Cette syntaxe me parait importante pour être souligné. Par défaut, le système si rien n’est précisé prendra la totalité de l’espace disponible.
Une fois notre partition créée (car nous venons de créer une partition). Il nous faut formater cette dernière. Sur WINDOWS, le choix est plutôt simple. Mais lequel choisir NTFS15 ou ReFS16 ?
NTFS | ReFS |
* Meilleur fiabilité grâce à la fonctionnalité d’auto-adaptation. Correction des altérations grave via l’utilitaire chkdsk * Sécurité accru par une gestion robuste des ACL17 sur les éléments fichiers, répertoires ainsi que la prise en charge du chiffrement BitLocker * Volume Maximum pris en charge jusqu’à 8 Po selon la taille du cluster (se référer à la page technet) * Longueur maximale des chemins qui passe à 32767 caractères et 255 pour les fichiers avec un compatibilité descendante ainsi que la prise en charge du stockage en cluster * Flexibilité en prennant en compte la gestion des espaces par les quotas, la compressions des données l’augmentation des espaces. La possibilité de monter un volume local sans lettre (si nous avons déjà utiliser toutes les lettres de l’alaphabet) | * Meilleur résilience avec un contrôle sur le flux d’intégrité par CRC18 sur les métadonnées qui pourrait être endommagé. Prise en charge de l’intégration aux espaces de stockage. Possible de récupérer des données endommagées sans mettre hors connexion le disque. Correction proactive des erreurs. * Performance adaptée aux usages virtualisés et dynamique (VHDX19 par exemple) en optimisant en optimisant en temps réel le clonage de blocs ainsi que la longueur des données valides (VDL20). * Extensibilité sur des nombreux To de données sans perdre en performance. * Adapté au cible de solution de sauvegarde pour utiliser les avantages de parité, intégrité, clonage de bloc et l’évolution de stockage de données importantes * Longueur maximale des chemins qui passe à 32767 caractères et 255 pour les fichiers etc… |
Nous pourrions continuer l’analyse longtemps et dédier tout un billet sur NTFS et ReFS. Effectuer un benchmark. Je vous invite à lire les deux pages du technet. Pour faire simple et c’est ce que je fais pour l’ensemble de mes serveurs. Il est naturellement primordial de bien prendre en compte les documentations des éditeurs ainsi que des fonctionnalités portés par ces deux formats, cela peut avoir une incidence désastreuse sur le long terme en cas de mauvais choix.
- NTFS : Pour les disques systèmes ainsi que les petits serveurs de fichiers ou orienté archive. Ainsi que pour les applications simples (pas de gestion de résilience)
- ReFS : Pour ce qui nécessite beaucoup d’opération et de la grosse volumétrie ainsi que des performances accrues (Disque de profils utilisateurs, profils redirigés, applications compatibles, repo de sauvegardes)
Bref, revenons à notre partition à formater, nous lui attribuons une lettre, son type et un nom friendly 🙂
Format-Volume -DriveLetter E -FileSystem NTFS -NewFileSystemLabel "AD"
Notre partition est bien présente. Ou plutôt devrais je dire NOS partitions car vous avez une partition S:\ pour le backup de notre AD ainsi qu’une partition E:\ pour stocker notre AD (la base NTDS21 et le SYSVOL).
Administration
L’administration va poser problème. Généralement nous utilisons dans la grande majorité des cas des serveurs Windows avec l’expérience utilisateur d’activé. Ce qui se traduit par, j’ai besoin de faire quelques choses sur mon serveur, je me connecte en bureau à distance via RDP22 et je fais ma tambouille, terminé. Le scénario est à exclure car il n’y a pas d’interface graphique (bon peut être un regedit, notepad, taskmanager et j’en passe).
Alors comment se simplifier la vie ? En réalité il y a une multitude de méthode autres que la connexion directe en console ou via l’interface graphique.
- MMC23
- ServerManagement
- PSRemoteSession
- RSAT
- Windows Admin Center
Oui, je vois un doigt levé dans l’assistance ? Vous pouvez baisser votre annulaire (ou pas vous pouvez ajouter l’auriculaire), j’anticipe votre question. Je vais prendre le soin de montrer et présenter un exemple pour chacune solution énumérée toutefois je me garde le droit d’invoquer un joker le temps voulu.
MMC
MMC ou Microsoft Management Console est une console qui permet de gérer aussi bien un poste localement qu’à distance en chargeant des composants affichables.
Toutefois, il sera nécessaire d’autoriser le trafic des protocoles suivants :
- RPC : 135/tcp
- SMB : 445/tcp, 139/tcp
- Dynamique : 49152-65535/tcp
Dans mon cas, je souhaite administrer mon rôle DNS sur mon serveur CORE. Pour se faire, je choisi DNS et dans la fenêtre qui va suivre, je vais renseigner le nom FQDN de mon serveur. Et voilà.
Cette méthode est présente depuis Windows Server 2003 et Windows XP. Bien que peu utiliser de nos jours, elle m’a permis de réaliser pas mal de contournement. L’une de ces grandes forces et de fournir une console personnalisable. Et donc cela rentre parfaitement dans le cadre de la délégation sur des périmètres sensibles auprès des équipes opérationnelles.
ServerManagement
Nous connaissons tous cette interface qui pop depuis Windows Server 2012. Elle était pourtant présente sous 2008 mais en moins glamour. Depuis cette interface il est largement envisageable d’administrer nos rôles A condition d’avoir préalablement déployé les RSATs (quoi que…).
Comme pour MMC il sera nécessaire d’autoriser les protocoles ci-dessous et d’ajouter un serveur dans la console de gestion.
- RPC : 135/tcp
- SMB : 445/tcp, 139/tcp
- Dynamique : 49152-65535/tcp
Je passe volontiers la liste des étapes car il suffit d’user de clic clic souris. Je laisse le choix de vivre dangereusement (pour une fois). Une fois ajouter le serveur apparaitra dans le menu de gauche Tous les serveurs.
L’administration d’un des rôles et fonctionnalités se fera assez facilement car la console de management va détecter les rôles présents et les suggérer dans ce même panel de gauche.
Néanmoins, rien ne nous empêche de réaliser un clic droit sur notre serveur et de rentrer dans certaines fonctionnalités, ou tâche d’administration basique.
Ce n’est pas la méthode que j’affectionne et que j’utilise le plus. Bien qu’il faille le reconnaitre, tout est pensé pour simplifier l’accès aux informations et interagir avec nos serveurs. Le gros plus à mon sens de Server Manager consiste à la gestion des partages, gestions des volumes ainsi que de la gestion des rôles de bureau à distance.
PSRemoteSession
Un peu moins connu et utilisé des SysAdmins (sauf peut-être des SysAdmins avancés ou DevOps), c’est la possibilité de se connecter à partir d’une invite de commande powershell à un système distant (avec ou sans interface graphique).
Pour ce faire, nous devrons autoriser le protocole WinRM sur le réseau et activer la fonctionnalité sur les serveurs concernés. Le second protocole WinRMS est simplement le protocole WinRM over SSL. Plus sécurisé, mais plus lourd à mettre en place. Spoiler, je reviendrai sur ce point plus bas.
- WinRM : 5985/tcp
- WinRMS: 5986/tcp
L’ouverture d’une session powershell à distance s’effectue avec la commande
Enter-PSSession monserver.contoso.lan
Ci-dessous un magnifique exemple de fonctionnalité non autorisé ou de port WinRM bloqué.
En d’autres circonstances, nous obtenons le retour suivant.
J’ai toujours pour habitude de me tirer les cheveux pour savoir dans quel état j’erre, pardon dans quel environnement je travail. Powershell est sympa, il vous rappelle le contexte dans lequel vous êtes en début de chaque prompt [monserver.contoso.lan]: PS. Bref, vous admirerez que j’ai affiché ici l’intégralité de mon serveur DNS.
J’affectionne quand nous pourrions nous en douter cette méthode car elle permet d’exécuter certains petit bout de script, commande, à droite à gauche. Mais en tout et pour tout, cela n’arrange pas et n’aide pas à l’administration pour celui qui cherche à administrer ces rôles ou son serveur.
RSAT
Les RSATs24, mon pauvre amour (même si je ne les ai pas encore abandonnés). Les RSATs ont l’avantages et la souplesse de pouvoir se déployé un peu où l’on veut. Ce qui est génial si nous voulons faire des postes d’administration et de rebond. Ainsi nous limitons les périmètres d’exposition de nos infrastructures. Et encore, il faut faire attention.
Pour se faire, il nous faudra autoriser les flux « classiques » ci-dessous :
- RPC : 135/tcp
- SMB : 445/tcp, 139/tcp
- Dynamique : 49152-65535/tcp
Auparavant sur les environnements antérieurs à Windows 10 1809 me semble-t-il, il était nécessaire de se rendre sur le site de MS et de télécharger les RSATs pour administrer les rôles de nos serveurs. Au delà de cette version, Windows incorpore et offre la possibilité d’installer les RSATs depuis les applications. Franchement c’est sympa ? Le seul problème c’est qu’il faut se rappeler où il faut passer pour ajouter les fonctionnalités facultatives. C’est un truc qui me gonfle, mais à un point… A faire pâlir le dernier officier de la maréchaussée qui m’a arraisonné. Sérieusement. Rien que pour les captures d’écrans, j’ai perdu 30 minutes…
Bon, je réclame des applaudissements et une ovation… Pour ne pas s’emmerder (aux chiottes la censure et bienséance), dans la barre de recherche Cortana ou autre, rechercher « Facultatives ». Vous gagnerez du temps.
Ajouter une fonctionnalité dans le vaste choix qui s’offre à vos yeux, puis installer les RSATs souhaités. De mémoire, le reboot n’est pas obligatoire. Une fois déployée nous pouvons administrer nos rôles et fonctionnalités.
J’adore ces outils car cela permet de gagner un temps fou. Toutefois, nous ne parlons pas du tout de la configuration système de nos SEs CORE. Donc pas forcément ce que nous recherchons. Comme je l’ai dit plus haut, l’usage des RSATs nécessite d’être strict et rigoureux sur la sécurité, les accès et le périmètre que nous ouvrons. Un crypto et une connerie d’un stagiaire (ou non) sont vite arrivés…
Windows Admin Center
Ah ! Le fils prodige, tu es un sorcier WAC ! Fortement inspiré de l’interface Identiy/Entra Id/Azure AD de Microsoft 365. Nous avons une console d’administration web pour gérer nos serveurs.
Je vais faire un billet dédié car il y a matière à s’amuser avec cette petite fonctionnalité gratuite. 🙂
Comme pour la partie PSRemoteSession, il faudra autoriser les flux propres à Windows Remote Management.
- WinRM : 5985/tcp
- WinRMS: 5986/tcp
C’est une solution à cheval entre SCCM25 et toutes les autres solutions vues précédemment. Cette console est accessible depuis un navigateur WEB et est d’une facilité déconcertante quant à son utilisation et sa sécurité.
Compliqué de ne pas rentrer dans le détail, je vais me restreindre au strict minimum. L’image ci-haut uniquement pour la partie Overview nous donne un état des performances de notre serveur CORE (comme nous l’aurions également pour un serveur avec l’expérience utilisateur d’activé).
Puis si nous attardons rapidement notre regard sur le ruban de gauche, nous remarquons les fonctionnalités suivantes :
Tu ne pouvais pas t’en empêcher hein ? Il fallait que tu montres un peu plus !
Ba, je dirai que c’est comme chez mon boucher, quand je lui demande 500gr de poulet, il m’en met toujours un peu plus 🙂
Bref, là nous avons une solution qui nous permet d’administrer quasiment 80% de notre machine, nous pouvons prendre la main à distance dessus et nous pouvons configurer les rôles. Que demander de plus ? Je laisse un exemple, toujours le même pour la gestion du DNS.
Je reviendrai sur ce sujet dans deux billets, je pense sur 2025 car j’ai encore un point à traiter. Mais il faut savoir que c’est déconcertant dans le bon sens du terme de voir toutes l’évolutions technologiques mis à la disposition des SysAdmins pour faire en sorte de gérer convenablement nos infrastructures, limite à faire de nous des Maîtres du Monde <3
Conclusion
Cet article, je le crois ou du moins j’en suis certain est là d’être terminé. Pourquoi ? Parce qu’il reste encore plusieurs points à apporter quant à la sécurité, le « tunning » du système. Ce qui est vrai pour un serveur membre d’un domaine qui peut être administré par GPO, ce n’est malheureusement pas le cas d’un serveur local. Pour ça il y a Ansible me dit on… Je passe mon tour pour cette fois.
Encore un fois nous pouvons observer les différents états de personnalité de l’auteur. Les vapeurs éthyliques qui se sont échappé de ma cafetière qui me sert de cerveau sont venu s’échouer encore une fois sur ce billet. Encore une fois les nuits blanches ont fait leurs offices…
Je vous avais promis un article plus court que les précédents. Je m’en excuse je crois que je ne sais pas faire… Mais les vins étaient bons.
Enfin, ce que je veux dire par là, c’est que je vais ajouter ponctuellement des bouts de scripts et des sous parties 🙂
Et si nous revenions à notre sujet principal, Windows CORE. C’est une solution des plus cool pour laquelle j’aurais dû plonger dans ces rouages bien plus tôt. Je l’ai fait pour UNIX mais paradoxalement je n’ai pas osé pour CORE. Au début je ne comprenais pas l’usage de celui-ci en entreprise et pourtant maintenant je pense comprendre ce que cela apporte :
- Une sécurité accrue : Automatiquement, le manque d’interface graphique est perturbant aux premiers abords. Difficile de faire un copier/coller d’un fichier sur le bureau :). Un moyen de silloter des rôles d’infrastructures critiques sans installer des dépendances ou surcouche système non nécessaire.
- Gain de performance : Certains rôles critiques nécessaire au bon fonctionnement du système d’information d’une organisation peuvent être optimisé quant aux ressources allouées et consommées. Par exemple un serveur d’authentification AD qui en règle générale consomme 2 vCPU et 4 Go de RAM avec l’expérience utilisateurs peuvent être ramené à 1 vCPU et 512 Mo de RAM. Donc dans la logique d’économie de ressources sort la possibilité d’allouer ces ressources à d’autres besoins (applications métiers par exemple). Votre DAF va vous remercier car il n’aura pas à vous donner une rallonge pour le budget informatique à votre grand damn 🙂
- Geste pour l’environnement : Un peu de green bashing, ça fait du bien de temps en temps non ? Pourtant il faut voir le nombre d’hypocrite sur le marché de l’IT… Je n’ouvre pas le sujet car je vois venir des débats stériles. Juste pour développer le point précédent si nous optimisons la consommation de ressources, nous consommons moins et économisons des ressources ce qui est bon pour notre petite planète bleu. Mais soyons lucide, il faudra à un moment se heurter à l’obsolescence et vétusté de nos équipements matériels, peu importe les économies qui nous réaliserons.
- La panoplie d’outils : L’argument de c’est compliqué la ligne de commande. Oui mais en graphique c’est plus rapide… Ce n’est pas vrai et je l’ai démontré. Il existe les outils et solutions historiques. Certes elles ne vont pas aussi loin et de manière aussi complète que si nous avions l’expérience utilisateurs d’activé. Mais tout laisse à penser que la dernière solution Windows Admin Center tient à mettre en avant les environnements CORES et faciliter son utilisation.
- L’évolution des équipes IT : Les équipes avec CORE vont devoir apprendre à penser autrement et stimuler les petites cellules grises qui se balade dans leurs cafetières. Ainsi la lassitude routinière prendra une dimension différente. Néanmoins, ce qui permet de monter en conséquence et de challenger les équipes peut lors d’un incident d’infrastructure nous mettre en difficulté. Tiens tu t’inclus dedans ? Oui car je suis loin d’être le SysAdmin grand cador des architectures x86. Je ne suis qu’un trou du cru du même âge que le Christ.
Je sais que certains SysAdmin sont à l’opposé de mon point de vue et ne porterons pas d’intéret à cette branche opérationnelle. Toutefois, je vous invite à jouer avec. Je vous rassure par avance, nous ne pouvons pas TOUT faire en CORE. VEEAM Serveur (Ordo) n’est pas supporté par CORE donc l’interface graphique a encore des beaux jours devant lui.
Pour terminer et clore ce billet, si je fais le constat de ces 30 minutes de lecture et du temps passé à rédiger, rechercher, tester, casser mon CORE #120JournéesdeSodome. C’est bien grâce à mon jeune collègue si j’en suis là (et non las 🙂 ). Si j’ose une citation sérieuse :
Pour récolter plus de roses, il suffit de planter plus de rosiers
George Eliot
Il n’y a rien de plus vrai puisque de ce sujet, la porte a été ouverte vers 3 autres sujets que je me dois de mettre en œuvre et de partager ou non. Comme WAC par exemple 🙂
Le mot de la fin…
Je demote mon AD et j’oublie mon DNS ? Pas mal, mais M. Macron à demote l’Assemblée Nationale et il avait pas d’environnement de LAB. C’est pas grave, je lance un DCDIAG et je retourne un E. VALLS, le légendaire outsider catalan !
Erwan GUILLEMARD
Sources
- Windows : Net-IPAddress
- Windows : DNS
- Windows : NetIPInterface
- Windows : BindingNetAdapter
- Windows : Performance Mode
- Windows : Stockage NTFS
- Windows : Stockage ReFS
- DTC :
Dans ton C*L– Datacenter ↩︎ - AD : Active Directory ↩︎
- SE : Système d’Exploitation ↩︎
- ANSSI : Agence Nationale Sécurité des Systèmes d’Information ↩︎
- GUI : Graphical User Interface ↩︎
- ADDS : Active Directory Domain Services ↩︎
- RDS : Remote Desktop Sesssion ↩︎
- IHM : Interface Homme Machine ↩︎
- DCOM : Distributed Component Object Model ↩︎
- WinRM : Windows Remote Management ↩︎
- GPP : Group Policy Preference ↩︎
- GPO : Group Policy ↩︎
- UTM : Unified Threat Management ↩︎
- GPT : GUID Partition Table ↩︎
- NTFS : New Technology File System ↩︎
- ReFS : Resilient File System ↩︎
- ACL : Access Control List ↩︎
- CRC : Cycle Redundancy Check ↩︎
- VHDX : Virtual Hard Drive v2 ↩︎
- VDL : Valid Data Length ↩︎
- NTDS : NT Directory Services ↩︎
- RDP : Remote Desktop Protocol ↩︎
- MMC : Microsoft Management Console ↩︎
- RSAT : Remote Server Administration Tools ↩︎
- SCCM : System Center Configuration Manager ↩︎