Sylver SCHORGEN Blog's

Articles, astuces et news sur les technologies Microsoft et plus particulièrement tournant autour de Powershell

[PowerShell - DSC] Configurer le nom d'une machine et son IP

Hello tout le monde,

Voici mon premier script DSC (tout simple pour commencer :P). Ce dernier s'appuie sur le module xNetworking et xComputerManagement. Il permet de configurer le nom de votre machine ainsi que son IP, DNS, passerelle par défaut & masque sous réseau.

Le script dispose de  paramètres obligatoires :

  • ComputerName : Le nom que vous voulez assigner à votre ordinateur
  • MofFilePath : Le chemin au niveau duquel vous voulez stocker les fichiers MOF (le script vérifie que le dossier existe et le crée si ce n'est pas le cas)

Le nom du noeud, le nom de l'interface réseau à configurer, l'IP, le masque de sous-réseau, le type d'IP (v4 ou v6), la passerelle par défaut et les serveurs DNS se configurent au niveau du hastable MyData (à la fin du script).

 

Le code :

 Configuration ConfigureComputer
{
param
(
[Parameter(Mandatory=$True)][string]$ComputerName,
[Parameter(Mandatory=$True)][string]$MofFilePath
)

# DSC Resources import

Import-DscResource -Module xNetworking
Import-DscResource -module xComputerManagement

Node $AllNodes.Nodename
{

LocalConfigurationManager
{
ActionAfterReboot = 'ContinueConfiguration'
ConfigurationMode = 'ApplyOnly'
RebootNodeIfNeeded = $true
}

File DSCFolder
{
Type = 'Directory'
DestinationPath = $MofFilePath
Ensure = "Present"
}

xComputer NewNameAndWorkgroup
{
Name = $ComputerName
}

xIPAddress IPAddress
{
IPAddress = $Node.IpAddress
InterfaceAlias = $Node.Interface
PrefixLength = $Node.IPPrefix
AddressFamily = $Node.IPAddressFamily
}

xDnsServerAddress DnsServer
{
InterfaceAlias = $Node.Interface
AddressFamily = $Node.IPAddressFamily
Address = $Node.DnsServers
}

xDefaultGatewayAddress DefaultGtw
{
InterfaceAlias = $Node.Interface
AddressFamily = $Node.IPAddressFamily
Address = $Node.Gateway
}
}
}

$MyData =
@{
AllNodes = @(
@{
NodeName = 'localhost'
IpAddress = '192.168.200.10'
Interface = 'Ethernet'
IPPrefix = 24
IPAddressFamily = 'IPV4'
DnsServers = '8.8.8.8','8.8.4.4'
Gateway = '192.168.200.254'
}
)
}

 

Pour démarrer votre configuration : 

ConfigureComputer -ComputerName "SRV-16-DEMO" -MofFilePath "C:\_DSC" -ConfigurationData $MyData -OutputPath "C:\_DSC"
Start-DscConfiguration -Wait -Force -Verbose -Path "C:\_DSC\ConfigureComputer"

 

Si vous voulez télécharger le code c'est par ici :)

Facebook Like
Anonymous