-
Notifications
You must be signed in to change notification settings - Fork 90
Open
Description
Problem description
Imagine a scenario where a user wants to perform both these steps in the same configuration:
- Rename a network adapter
- Assign a DNS server address to the same adapter
If a configuration like this is put through a Test-TargetResource phase before being applied (see example), it will fail with 'System.InvalidOperationException: A network adapter with the alias '' could not be found.'
Verbose logs
VERBOSE: [Test-VM]: LCM: [ Start Resource ] [[DnsServerAddress]Ethernet0-IPv6::[DomainController]Test-VM]
VERBOSE: [Test-VM]: LCM: [ Start Test ] [[DnsServerAddress]Ethernet0-IPv6::[DomainController]Test-VM]
VERBOSE: [Test-VM]: [[DnsServerAddress]Ethernet0-IPv6::[DomainController]Test-VM]
Test-TargetResource: Checking the DNS server addresses.
VERBOSE: [Test-VM]: [[DnsServerAddress]Ethernet0-IPv6::[DomainController]Test-VM]
Get-DnsClientServerStaticAddress: Getting staticly assigned DNS server IPv6 address for interface alias 'Ethernet0'.
VERBOSE: [Test-VM]: LCM: [ End Test ] [[DnsServerAddress]Ethernet0-IPv6::[DomainController]Test-VM] False in
0.1090 seconds.
VERBOSE: [Test-VM]: LCM: [ *FAILED*Compare ] Completed processing compare operation. The operation returned
False.
PowerShell DSC resource DSC_DnsServerAddress failed to execute Test-TargetResource functionality with error message:
System.InvalidOperationException: A network adapter with the alias 'Ethernet0' could not be found.
+ CategoryInfo : InvalidOperation: (root/Microsoft/...gurationManager:String) [], CimException
+ FullyQualifiedErrorId : ProviderOperationExecutionFailure
+ PSComputerName : Test-VM
DSC configuration
NetAdapterName "Ethernet0"
{
NewName = "Ethernet0"
InterfaceNumber = 1
}
DnsServerAddress "Ethernet0-IPv6"
{
InterfaceAlias = "Ethernet0"
AddressFamily = "IPv6"
DependsOn = "[NetAdapterName]Ethernet0"
}Suggested solution
The DnsServerAddress resource should not return a terminating error when the network interface specified in InterfaceAlias is invalid - instead, it should just return that the resource is not in the desired state. There is no need to tank the entire Test-TargetResource process.
Operating system the target node is running
OsName : Microsoft Windows Server 2022 Datacenter Azure Edition
OsOperatingSystemSKU : 407
OsArchitecture : 64-bit
WindowsVersion : 2009
WindowsBuildLabEx : 20348.1.amd64fre.fe_release.210507-1500
OsLanguage : en-US
OsMuiLanguages : {en-US}
PowerShell version and build the target node is running
Name Value
---- -----
PSVersion 5.1.20348.558
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.20348.558
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
NetworkingDsc version
Name Version Path
---- ------- ----
NetworkingDsc 9.0.0 C:\Program Files\WindowsPowerShell\Modules\NetworkingDsc\9.0.0\NetworkingDsc.psd1
Metadata
Metadata
Assignees
Labels
No labels