New-VM is bombing out my script

Welcome Forums General PowerShell Q&A New-VM is bombing out my script

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

 
Participant
1 year, 3 months ago.

  • Author
    Posts
  • #75646

    Participant
    Points: 0
    Rank: Member

    Here's my code:

    [CmdletBinding()]
            Param(
          [Parameter(Mandatory=$True,HelpMessage="Enter one or more computer name(s) and IP address(es)")]
          [string[]]$ComputerName
            )
            Connect-VIServer -Server vcenterserver -Verbose
            $TargetCluster = Get-Cluster -Location "cluster" -Verbose
            $SourceVMTemplate = Get-Template -Name "Template" -Verbose
            $SourceCustomSpec = Get-OSCustomizationSpec -Name "Windows 2012 R2" -Verbose
            ForEach ($Computer in $ComputerName) {
                Write-Verbose -Message "Preparing to deploy [$Computer]." -Verbose
                $IPAddress = Read-Host -Prompt "Please enter IP Address"
                $SubnetMask = Read-Host -Prompt "Please enter Subnet Mask"
                $DefaultGateway = Read-Host -Prompt "Please enter Default Gateway"
                $DNSServerPrimary = Read-Host -Prompt "Please enter primary DNS address"
                $DNSServerSecondary = Read-Host -Prompt "Please enter secondary DNS address"
                Write-Verbose -Message "Deploying Virtual Machine with Name: [$Computer] using Template: [$SourceVMTemplate] and Customization Specification: [$SourceCustomSpec] on Cluster: [$TargetCluster] and waiting for completion"  -Verbose
                Start-Sleep -s 60
                New-VM -Name $Computer -Template $SourceVMTemplate -ResourcePool $TargetCluster -OSCustomizationSpec $SourceCustomSpec -Verbose
                Write-Verbose -Message "Virtual Machine $Computer Deployed. Powering On" -Verbose
                Start-Sleep -s 120
                Start-VM -VM $Computer -Verbose
                Start-Sleep -s 300 -Verbose
                Set-OSCustomizationNicMapping -IpAddress $IPAddress -SubnetMask $SubnetMask -DefaultGateway $DefaultGateway
                Set-DnsClientServerAddress -InterfaceIndex 12 -ServerAddresses ("$DNSServerPrimary","$DNSServerSecondary")
                Stop-VM -Server $Computer
                Set-NetAdapter -Name "Net adapter" -VlanID Vlan#
                Start-VM -Name $Computer
    }
    

    When I run this code, I return the following error:

    New-VM : 7/24/2017 2:09:59 PM   New-VM          Operation is not valid due to the current state of the object.
    At line:19 char:13
    +             New-VM -Name $Computer -Template $SourceVMTemplate -Resou ...
    +             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [New-VM], VimException
        + FullyQualifiedErrorId : Core_BaseCmdlet_UnknownError,VMware.VimAutomation.ViCore.Cmdlets.Commands.NewVM 
    

    I've thrown in the Start-Sleep cmdlets for troubleshooting, but I honestly can't figure out what is flagging the issue. Thoughts?

  • #75653

    Keymaster
    Points: 1,524
    Helping HandTeam Member
    Rank: Community Hero

    I'd probably toss in a breakpoint to stop the script right before New-VM, and then try running it manually. Something you're passing the command is making it choke, but it's all server-side, so without being there with you in person to futz with it, it's hard to say exactly what. But it's one of your parameters, I expect.

    • #75656

      Participant
      Points: 0
      Rank: Member

      Duly noted, I'll dig in further. Odd thing is the error isn't causing the script to stop, at the moment, it just alerts then continues. Maybe it's less of a problem than I thought it was.

The topic ‘New-VM is bombing out my script’ is closed to new replies.