DSCResources/IpConfiguration/IpConfiguration.schema.psm1
configuration IpConfiguration { param ( [Parameter()] [hashtable[]] $Adapter ) Import-DscResource -ModuleName PSDesiredStateConfiguration Import-DscResource -ModuleName NetworkingDsc foreach ($nic in $Adapter) { $resourceName = "NetAdapter$($nic.NewName)$((New-Guid).Guid)" NetAdapterName $resourceName { MacAddress = $nic.MacAddress NewName = $nic.NewName IgnoreMultipleMatchingAdapters = $true } NetAdapterState "NetAdapterState$($nic.NewName)$((New-Guid).Guid)" { Name = $nic.NewName State = 'Enabled' DependsOn = "[NetAdapterName]$resourceName" } if ($nic.Contains('IPAddress') -and -not [string]::IsNullOrWhiteSpace($nic.IPAddress)) { IPAddress "IpAddress$($nic.NewName)$((New-Guid).Guid)" { InterfaceAlias = $nic.NewName IPAddress = $nic.IPAddress AddressFamily = $nic.AddressFamily DependsOn = "[NetAdapterName]$resourceName" } } if ($nic.Contains('GatewayAddress')) { DefaultGatewayAddress "Gateway$($nic.NewName)$((New-Guid).Guid)" { InterfaceAlias = $nic.NewName AddressFamily = $nic.AddressFamily Address = $nic.GatewayAddress DependsOn = "[NetAdapterName]$resourceName" } } if ($nic.Contains('DnsServerAddress')) { DNSServerAddress "Dns$($nic.NewName)$((New-Guid).Guid)" { Address = $nic.DnsServerAddress InterfaceAlias = $nic.NewName DependsOn = "[NetAdapterName]$resourceName" AddressFamily = $nic.AddressFamily } } } } |