Automation

 View Only
Expand all | Collapse all

Error deploying using customization

  • 1.  Error deploying using customization

    Posted Nov 14, 2022 07:54 AM

    Hi,

    I am getting error while deploying VM through customization

    Please help

    Get-OSCustomizationSpec -Name "MyCust-2019" -ErrorAction SilentlyContinue |
    Remove-OSCustomizationSpec -Confirm:$false
    $sCust = @{
    Name = "MyCust-2019"
    OSType = 'Windows'
    TimeZone = 033
    ProductKey = 'xxxxx-xxxxx'
    LicenseMode = 'Perserver'
    LicenseMaxConnections = 5
    GuiRunOnce = '"C:\Windows\System32\netdom.exe" join %COMPUTERNAME% /domain:mydc.com /ou:"OU=Servers,DC=mydc,DC=com" /userd:mydc.com\admin /passwordd:"P@ssw0rd@123" /reboot', 'net localgroup Administrators /ADD groupname "mydc\mydeploygrp"'
    Type = 'Persistent'
    FullName = 'mydc'
    OrgName = 'mydc'
    AdminPassword = 'password@123'
    NamingScheme = 'VM'
    AutoLogonCount = 1
    Workgroup = 'WORKGROUP'
    ChangeSID = $true
    }
    $Custo = New-OSCustomizationSpec $sCust
    $sCustNic = @{
    IpAddress = '192.168.11.100'
    DefaultGateway = '192.168.11.1'
    SubnetMask = '255.255.255.0'
    Dns = '192.168.11.5'
    }
    Get-OSCustomizationNicMapping -OSCustomizationSpec $Custo | Set-OSCustomizationNicMapping $sCustNic

    New-VM -Name $VM_Name -Template $Template -Datastore $Datastore -VMHost $VMHost | Set-VM -OSCustomizationSpec $Custo -Confirm:$false

    $VM = Get-VM $VM_Name

    $VM | Get-NetworkAdapter | Set-NetworkAdapter -PortGroup '192.168.11.x_1008' -Confirm:$false

    Get-VM $vm | Start-VM -Confirm:$false

     

    New-OSCustomizationSpec : A positional parameter cannot be found that accepts argument 'System.Collections.Hashtable'.
    + $Custo = New-OSCustomizationSpec $sCust
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidArgument: (:) [New-OSCustomizationSpec], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,VMware.VimAutomation.ViCore.Cmdlets.Commands.NewCustomizationSpec

    Get-OSCustomizationNicMapping : 11/14/2022 1:44:45 AM Get-OSCustomizationNicMapping Value cannot be found for the mandatory parameter OSCustomizatio
    + Get-OSCustomizationNicMapping -OSCustomizationSpec $Custo | Set-OSCus ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Get-OSCustomizationNicMapping], VimException
    + FullyQualifiedErrorId : Core_BaseCmdlet_UnknownError,VMware.VimAutomation.ViCore.Cmdlets.Commands.GetOSCustomizationNicMapping

     

    Set-NetworkAdapter : 11/14/2022 1:45:00 AM Set-NetworkAdapter The specified parameter 'Portgroup' expects a single value, but your name criter
    + ... rkAdapter | Set-NetworkAdapter -PortGroup '172.27.3.x_3012' -Confirm: ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidResult: (System.Collecti...dObjectInterop]:List`1) [Set-NetworkAdapter], VimException
    + FullyQualifiedErrorId : Core_ObnSelector_SelectObjectByNameCore_MoreResultsThanExpected,VMware.VimAutomation.ViCore.Cmdlets.Commands.VirtualDevice.SetNetw

    Set-NetworkAdapter : 11/14/2022 1:45:00 AM Set-NetworkAdapter Value cannot be found for the mandatory parameter Portgroup
    + ... rkAdapter | Set-NetworkAdapter -PortGroup '172.27.3.x_3012' -Confirm: ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Set-NetworkAdapter], VimException
    + FullyQualifiedErrorId : Core_BaseCmdlet_UnknownError,VMware.VimAutomation.ViCore.Cmdlets.Commands.VirtualDevice.SetNetworkAdapter



  • 2.  RE: Error deploying using customization

    Posted Nov 14, 2022 09:25 AM

    For splatting you have to use @ instead of $



  • 3.  RE: Error deploying using customization

    Posted Nov 14, 2022 11:35 AM

    LucD,

    After making the changes, I am getting below error

    #Create the specifications and NIC Mappings for Win2016
    Get-OSCustomizationSpec -Name "MyCust-2019" -ErrorAction SilentlyContinue |
    Remove-OSCustomizationSpec -Confirm:$false
    $sCust = @{
    Name = "MyCust-2019"
    OSType = 'Windows'
    TimeZone = 033
    ProductKey = 'xxxxx-xxxxx'
    LicenseMode = 'Perserver'
    LicenseMaxConnections = 5
    GuiRunOnce = '"C:\Windows\System32\netdom.exe" join %COMPUTERNAME% /domain:mydc.com /ou:"OU=Servers,DC=mydc,DC=com" /userd:mydc.com\admin /passwordd:"P@ssw0rd@123" /reboot', 'net localgroup Administrators /ADD groupname "mydc\mydeploygrp"'
    Type = 'Persistent'
    FullName = 'mydc'
    OrgName = 'mydc'
    AdminPassword = 'password@123'
    NamingScheme = 'VM'
    AutoLogonCount = 1
    Workgroup = 'WORKGROUP'
    ChangeSID = $true
    }
    $Custo = New-OSCustomizationSpec @sCust
    $sCustNic = @{
    IpAddress = '192.168.11.100'
    DefaultGateway = '192.168.11.1'
    SubnetMask = '255.255.255.0'
    Dns = '192.168.11.5'
    }
    $Custo1 = Get-OSCustomizationNicMapping -OSCustomizationSpec $Custo | Set-OSCustomizationNicMapping @sCustNic

    New-VM -Name $VM_Name -Template $Template -Datastore $Datastore -VMHost $VMHost | Set-VM -OSCustomizationSpec $Custo1 -Confirm:$false

    $VM = Get-VM $VM_Name

    Get-VM $VM | Get-NetworkAdapter | Set-NetworkAdapter -PortGroup '192.168.11.x_1008' -Confirm:$false

    Get-VM $vm | Start-VM -Confirm:$false

     

    Set-OSCustomizationNicMapping : 11/14/2022 5:03:14 AM Set-OSCustomizationNicMapping If the IpMode parameter is set to "UseDhcp" you must not specify
    + ... -OSCustomizationSpec $Custo | Set-OSCustomizationNicMapping @sCustNic
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidArgument: (:) [Set-OSCustomizationNicMapping], ViError
    + FullyQualifiedErrorId : Core_NicMappingCmdletBase_ValidateParameters_DhcpConflictingParameters,VMware.VimAutomation.ViCore.Cmdlets.Commands.SetOSCustomiza

     

    Set-NetworkAdapter : 11/14/2022 5:03:31 AM Set-NetworkAdapter The specified parameter 'Portgroup' expects a single value, but your name criteria '192.168.11.x_1008' corresponds to multiple values.
    + ... NetworkAdapter | Set-NetworkAdapter -PortGroup $DV_PG -Confirm:$false
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidResult: (System.Collecti...dObjectInterop]:List`1) [Set-NetworkAdapter], VimException
    + FullyQualifiedErrorId : Core_ObnSelector_SelectObjectByNameCore_MoreResultsThanExpected,VMware.VimAutomation.ViCore.Cmdlets.Commands.VirtualDevice.SetNetworkAdapter

    Set-NetworkAdapter : 11/14/2022 5:03:31 AM Set-NetworkAdapter Value cannot be found for the mandatory parameter Portgroup
    + ... NetworkAdapter | Set-NetworkAdapter -PortGroup $DV_PG -Confirm:$false
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Set-NetworkAdapter], VimException
    + FullyQualifiedErrorId : Core_BaseCmdlet_UnknownError,VMware.VimAutomation.ViCore.Cmdlets.Commands.VirtualDevice.SetNetworkAdapter



  • 4.  RE: Error deploying using customization

    Posted Nov 14, 2022 11:37 AM

    You have to add -IpMode UseStaticIp on the Set-OSCustomizationNicMapping cmdlet.



  • 5.  RE: Error deploying using customization

    Posted Nov 14, 2022 11:50 AM

    LucD,

    I am getting the below error, after adding the usestaticip

    Set-VM : Cannot bind parameter 'OSCustomizationSpec'. Cannot convert the "UseStaticIP:192.168.11.100" value of type "VMware.VimAutomation.ViCore.Impl.V1.OSCustomization.OSCustomizationNicMappingImpl" to type
    "VMware.VimAutomation.ViCore.Types.V1.OSCustomization.OSCustomizationSpec".
    + ... tastore -VMHost $VMHost | Set-VM -OSCustomizationSpec $Custo1 -Confir ...
    + ~~~~~~~
    + CategoryInfo : InvalidArgument: (:) [Set-VM], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,VMware.VimAutomation.ViCore.Cmdlets.Commands.SetVM

    Get-VM : 11/14/2022 5:48:26 AM Get-VM VM with name 'TempTest1' was not found using the specified filter(s).
    At D:\Jenkins\Scripts\deploytemplate\prod_jenkins_vmdeploy_1.0.ps1:72 char:7
    + $VM = Get-VM $VM_Name
    + ~~~~~~~~~~~~~~~
    + CategoryInfo : ObjectNotFound: (:) [Get-VM], VimException
    + FullyQualifiedErrorId : Core_OutputHelper_WriteNotFoundError,VMware.VimAutomation.ViCore.Cmdlets.Commands.GetVM

    Get-VM : 11/14/2022 5:48:26 AM Get-VM VM with name 'TempTest1' was not found using the specified filter(s).
    + Get-VM $VM_Name | move-vm -InventoryLocation $Folder
    + ~~~~~~~~~~~~~~~
    + CategoryInfo : ObjectNotFound: (:) [Get-VM], VimException
    + FullyQualifiedErrorId : Core_OutputHelper_WriteNotFoundError,VMware.VimAutomation.ViCore.Cmdlets.Commands.GetVM

    Get-VM : 11/14/2022 5:48:26 AM Get-VM VM with name 'TempTest1' was not found using the specified filter(s).
    + Get-VM $VM_Name | Get-NetworkAdapter | Set-NetworkAdapter -PortGroup ...
    + ~~~~~~~~~~~~~~~
    + CategoryInfo : ObjectNotFound: (:) [Get-VM], VimException
    + FullyQualifiedErrorId : Core_OutputHelper_WriteNotFoundError,VMware.VimAutomation.ViCore.Cmdlets.Commands.GetVM

    Get-VM : 11/14/2022 5:48:27 AM Get-VM VM with name 'TempTest1' was not found using the specified filter(s).
    + Get-VM $VM_Name | Start-VM -Confirm:$false
    + ~~~~~~~~~~~~~~~
    + CategoryInfo : ObjectNotFound: (:) [Get-VM], VimException
    + FullyQualifiedErrorId : Core_OutputHelper_WriteNotFoundError,VMware.VimAutomation.ViCore.Cmdlets.Commands.GetVM

     



  • 6.  RE: Error deploying using customization

    Posted Nov 14, 2022 12:05 PM

    Where and how did you add it?
    Since you are using splatting, it has to be added in the hash table



  • 7.  RE: Error deploying using customization

    Posted Nov 14, 2022 01:09 PM

    LucD,

    Please find the script, which I tried

    Get-OSCustomizationSpec -Name "MyCust-2019" -ErrorAction SilentlyContinue |
    Remove-OSCustomizationSpec -Confirm:$false
    $sCust = @{
    Name = "MyCust-2019"
    OSType = 'Windows'
    TimeZone = 033
    ProductKey = 'xxxxx-xxxxx'
    LicenseMode = 'Perserver'
    LicenseMaxConnections = 5
    GuiRunOnce = '"C:\Windows\System32\netdom.exe" join %COMPUTERNAME% /domain:mydc.com /ou:"OU=Servers,DC=mydc,DC=com" /userd:mydc.com\admin /passwordd:"P@ssw0rd@123" /reboot', 'net localgroup Administrators /ADD groupname "mydc\mydeploygrp"'
    Type = 'Persistent'
    FullName = 'mydc'
    OrgName = 'mydc'
    AdminPassword = 'password@123'
    NamingScheme = 'VM'
    AutoLogonCount = 1
    Workgroup = 'WORKGROUP'
    ChangeSID = $true
    }
    $Custo = New-OSCustomizationSpec @sCust
    $sCustNic = @{
    IpMode = 'UseStaticIp'
    IpAddress = '192.168.11.100'
    DefaultGateway = '192.168.11.1'
    SubnetMask = '255.255.255.0'
    Dns = '192.168.11.5'
    }
    Get-OSCustomizationSpec $Custo | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping @sCustNic

    New-VM -Name $VM_Name -Template $Template -Datastore $Datastore -VMHost $VMHost | Set-VM -OSCustomizationSpec $Custo -Confirm:$false

    $VM = Get-VM $VM_Name

    Get-VM $VM | Get-NetworkAdapter | Set-NetworkAdapter -PortGroup '192.168.11.x_1008' -Confirm:$false

    Get-VM $vm | Start-VM -Confirm:$false

     

    New-VM : 11/14/2022 7:04:34 AM New-VM Operation is not valid due to the current state of the object.
    + New-VM -Name $VM_Name -Template $Template -Datastore $Datastore -VMHo ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [New-VM], VimException
    + FullyQualifiedErrorId : Core_BaseCmdlet_UnknownError,VMware.VimAutomation.ViCore.Cmdlets.Commands.NewVM

    Get-VM : 11/14/2022 7:04:34 AM Get-VM VM with name 'TempTest1' was not found using the specified filter(s).
    + $VM = Get-VM $VM_Name
    + ~~~~~~~~~~~~~~~
    + CategoryInfo : ObjectNotFound: (:) [Get-VM], VimException
    + FullyQualifiedErrorId : Core_OutputHelper_WriteNotFoundError,VMware.VimAutomation.ViCore.Cmdlets.Commands.GetVM

    Get-VM : 11/14/2022 7:04:34 AM Get-VM VM with name 'TempTest1' was not found using the specified filter(s).
    At D:\Jenkins\Scripts\deploytemplate\prod_jenkins_vmdeploy_1.0.ps1:81 char:1
    + ~~~~~~~~~~~~~~~
    + CategoryInfo : ObjectNotFound: (:) [Get-VM], VimException
    + FullyQualifiedErrorId : Core_OutputHelper_WriteNotFoundError,VMware.VimAutomation.ViCore.Cmdlets.Commands.GetVM

    Get-VM : 11/14/2022 7:04:35 AM Get-VM VM with name 'TempTest1' was not found using the specified filter(s).
    + Get-VM $VM_Name | Get-NetworkAdapter | Set-NetworkAdapter -PortGroup ...
    + ~~~~~~~~~~~~~~~
    + CategoryInfo : ObjectNotFound: (:) [Get-VM], VimException
    + FullyQualifiedErrorId : Core_OutputHelper_WriteNotFoundError,VMware.VimAutomation.ViCore.Cmdlets.Commands.GetVM

    Get-VM : 11/14/2022 7:04:35 AM Get-VM VM with name 'TempTest1' was not found using the specified filter(s).
    + Get-VM $VM_Name | Start-VM -Confirm:$false
    + ~~~~~~~~~~~~~~~
    + CategoryInfo : ObjectNotFound: (:) [Get-VM], VimException
    + FullyQualifiedErrorId : Core_OutputHelper_WriteNotFoundError,VMware.VimAutomation.ViCore.Cmdlets.Commands.GetVM



  • 8.  RE: Error deploying using customization

    Posted Nov 14, 2022 01:17 PM

    That is yet another error, and definitely not the code that produced the previous errors.

    Did you already stop/start your PowerCLI/PowerShell session?







  • 9.  RE: Error deploying using customization

    Posted Nov 14, 2022 01:36 PM

    LucD,

    That did the trick, I closed the Powershell window and started a new session, that worked but I am getting error while setting the portgroup

    we have portgroup on local switch on every esxi and it is named as 192.168.11.x_1008

     

    Get-OSCustomizationSpec -Name "MyCust-2019" -ErrorAction SilentlyContinue |
    Remove-OSCustomizationSpec -Confirm:$false
    $sCust = @{
    Name = "MyCust-2019"
    OSType = 'Windows'
    TimeZone = 033
    ProductKey = 'xxxxx-xxxxx'
    LicenseMode = 'Perserver'
    LicenseMaxConnections = 5
    GuiRunOnce = '"C:\Windows\System32\netdom.exe" join %COMPUTERNAME% /domain:mydc.com /ou:"OU=Servers,DC=mydc,DC=com" /userd:mydc.com\admin /passwordd:"P@ssw0rd@123" /reboot', 'net localgroup Administrators /ADD groupname "mydc\mydeploygrp"'
    Type = 'Persistent'
    FullName = 'mydc'
    OrgName = 'mydc'
    AdminPassword = 'password@123'
    NamingScheme = 'VM'
    AutoLogonCount = 1
    Workgroup = 'WORKGROUP'
    ChangeSID = $true
    }
    $Custo = New-OSCustomizationSpec @sCust
    $sCustNic = @{
    IpMode = 'UseStaticIp'
    IpAddress = '192.168.11.100'
    DefaultGateway = '192.168.11.1'
    SubnetMask = '255.255.255.0'
    Dns = '192.168.11.5'
    }
    Get-OSCustomizationSpec $Custo | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping @sCustNic

    New-VM -Name $VM_Name -Template $Template -Datastore $Datastore -VMHost $VMHost | Set-VM -OSCustomizationSpec $Custo -Confirm:$false

    $VM = Get-VM $VM_Name

    Get-VM $VM | Get-NetworkAdapter | Set-NetworkAdapter -PortGroup '192.168.11.x_1008' -Confirm:$false

    Get-VM $vm | Start-VM -Confirm:$false

     

    Set-NetworkAdapter : 11/14/2022 7:31:57 AM Set-NetworkAdapter The specified parameter 'Portgroup' expects a single value, but your name criteria ''192.168.11.x_1008'' corresponds to multiple values.
    + ... NetworkAdapter | Set-NetworkAdapter -PortGroup $DV_PG -Confirm:$false
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidResult: (System.Collecti...dObjectInterop]:List`1) [Set-NetworkAdapter], VimException
    + FullyQualifiedErrorId : Core_ObnSelector_SelectObjectByNameCore_MoreResultsThanExpected,VMware.VimAutomation.ViCore.Cmdlets.Commands.VirtualDevice.SetNetworkAdapter

    Set-NetworkAdapter : 11/14/2022 7:31:57 AM Set-NetworkAdapter Value cannot be found for the mandatory parameter Portgroup
    + ... NetworkAdapter | Set-NetworkAdapter -PortGroup $DV_PG -Confirm:$false
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Set-NetworkAdapter], VimException
    + FullyQualifiedErrorId : Core_BaseCmdlet_UnknownError,VMware.VimAutomation.ViCore.Cmdlets.Commands.VirtualDevice.SetNetworkAdapter



  • 10.  RE: Error deploying using customization

    Posted Nov 14, 2022 01:52 PM

    It looks as if Get-VirtualPortgroup -Name ''192.168.11.x_1008'' returns more than 1 object.

    Could it be that there are multiple vCenter or ESXi connections open?
    Check $global:defaultviservers



  • 11.  RE: Error deploying using customization

    Posted Nov 14, 2022 02:03 PM

    LucD,

    Yes,  I am connecting to one vCenter and trying to deploy where we have same port group on all our esxi hosts.



  • 12.  RE: Error deploying using customization
    Best Answer

    Posted Nov 14, 2022 02:12 PM

    You can try explicitly specifying the ESXi node.



  • 13.  RE: Error deploying using customization

    Posted Nov 14, 2022 02:41 PM
    Thank you LucD, that worked perfectly


  • 14.  RE: Error deploying using customization

    Posted Nov 14, 2022 02:42 PM

    Thank you LucD, that worked perfectly