Param of IP address can't transmission to DSC configuration script file

Welcome Forums DSC (Desired State Configuration) Param of IP address can't transmission to DSC configuration script file

This topic contains 2 replies, has 2 voices, and was last updated by

 
Participant
1 year, 4 months ago.

  • Author
    Posts
  • #74974

    Participant
    Points: 0
    Rank: Member

    I set two params about IPv4 address, I want the params "$CNIPv4Address" and "$GWIPv4Address"can transmission to DSC configuration script just like below:

    configuration dsc-node-config {
    
        param
      
        ( 
                [string[]]$NodeName,
    
                [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true,Position=0)]
                [ValidateScript({$_ -match [IPAddress]$_ })]  
                [string]$CNIPv4Address,
    
                [string[]]$CN_MACAddress,
    
                [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true,Position=1)]
                [ValidateScript({$_ -match [IPAddress]$_ })]  
                [string]$GWIPv4Address
         ) 
    
       Import-DSCResource -ModuleName xNetworking
    
    
        Node $NodeName {
    
            xNetAdapterName RenameCNNetAdapter
            {
                NewName = 'CN'
                MacAddress = "$CN_MACAddress"
            }
    
            xDhcpClient DisabledDhcpClient
            {
                State          = 'Disabled'
                InterfaceAlias = 'CN'
                AddressFamily  = 'IPv4'
                DependsOn = '[xNetAdapterName]RenameCNNetAdapter'
            }
    
            xIPAddress NewCNIPv4Address
            {
                IPAddress      = '$CNIPv4Address'
                InterfaceAlias = 'CN'
                AddressFamily  = 'IPv4'
                PrefixLength = '24'
                DependsOn = '[xNetAdapterName]RenameCNNetAdapter'
    
            }
    
            xDefaultGatewayAddress SetDefaultGateway
            {
                Address        = '$GWIPv4Address'
                InterfaceAlias = 'CN'
                AddressFamily  = 'IPv4'
                DependsOn = '[xNetAdapterName]RenameCNNetAdapter'
            }
    
            xDNSServerAddress SetIPv4DNSAddress
            {
                Address = '1.1.1.1','2.2.2.2','3.3.3.3','4.4.4.4'
                AddressFamily = 'IPv4'
                InterfaceAlias = 'CN'
                DependsOn = '[xNetAdapterName]RenameCNNetAdapter'
            }
    
       }
    }
    

    Run the above script and then run below PowerShell command with param

    dsc-node-config -NodeName testserver -CNIPv4Address 45.117.22.189 -GWIPv4Address 45.117.22.1 -CN_MACAddress 00-50-56-9B-4C-F9

    Only $CN_MACAddress param can work, both params "$CNIPv4Address" and "$GWIPv4Address" can't work.

    Check the .MOF file as below can see just param "$CN_MACAddress" transmission to .MOF file, both both params "$CNIPv4Address" and "$GWIPv4Address" is still keep the variable in .MOF

    instance of MSFT_xNetAdapterName as $MSFT_xNetAdapterName1ref
    {
    ResourceID = "[xNetAdapterName]RenameCNNetAdapter";
     MacAddress = "00-50-56-9B-4C-F9";
     ModuleVersion = "4.1.0.0";
     SourceInfo = "C:\\Users\\vif12066\\Desktop\\DSC\\New-DHCP-DSC-Config.ps1::39::9::xNetAdapterName";
     ModuleName = "xNetworking";
     NewName = "CN";
    
     ConfigurationName = "dsc-node-config";
    
    };
    
    instance of MSFT_xIPAddress as $MSFT_xIPAddress1ref
    {
    ResourceID = "[xIPAddress]NewCNIPv4Address";
     PrefixLength = 24;
     InterfaceAlias = "CN";
     AddressFamily = "IPv4";
     SourceInfo = "C:\\Users\\vif12066\\Desktop\\DSC\\New-DHCP-DSC-Config.ps1::53::9::xIPAddress";
     ModuleName = "xNetworking";
     IPAddress = "$CNIPv4Address";
     ModuleVersion = "4.1.0.0";
    
    DependsOn = {
    
        "[xNetAdapterName]RenameCNNetAdapter"};
    
     ConfigurationName = "dsc-node-config";
    
    };
    
    
    
    instance of MSFT_xDefaultGatewayAddress as $MSFT_xDefaultGatewayAddress1ref
    {
    ResourceID = "[xDefaultGatewayAddress]SetDefaultGateway";
     AddressFamily = "IPv4";
     SourceInfo = "C:\\Users\\vif12066\\Desktop\\DSC\\New-DHCP-DSC-Config.ps1::63::9::xDefaultGatewayAddress";
     Address = "$GWIPv4Address";
     ModuleName = "xNetworking";
     InterfaceAlias = "CN";
     ModuleVersion = "4.1.0.0";
    
    DependsOn = {
    
        "[xNetAdapterName]RenameCNNetAdapter"};
    
     ConfigurationName = "dsc-node-config";
    
    };
    

    Any guys who knows this issues is, please help on, many thanks.

  • #75024

    Participant
    Points: 0
    Rank: Member

    Hi Allen.Zhang

    It's because you have used single quotes ' ' instead of double quotes " " around your $variable within the resource.

     xDefaultGatewayAddress SetDefaultGateway
            {
                Address        = '$GWIPv4Address'
                InterfaceAlias = 'CN'
                AddressFamily  = 'IPv4'
                DependsOn = '[xNetAdapterName]RenameCNNetAdapter'
    

    Should be

     
    xDefaultGatewayAddress SetDefaultGateway
            {
                Address        = "$GWIPv4Address"
                InterfaceAlias = 'CN'
                AddressFamily  = 'IPv4'
                DependsOn = '[xNetAdapterName]RenameCNNetAdapter'
    
    • #75049

      Participant
      Points: 0
      Rank: Member

      Hi Tommy, Many thanks for your help, it's work now !

      I am so careless... 😉

The topic ‘Param of IP address can't transmission to DSC configuration script file’ is closed to new replies.