我想要做的事情很简单。我有自己的/ 25子网和Vmware集群,我想从一个好的模板部署一堆Windows 2012r2虚拟机。我的主机基本上是host10到host50,IP地址是10.251.169.10-50 ...最后一个与主机名中的号码匹配的八位字节。所以我决定做一个PowerShell循环。我遇到了一个我无法弄清楚的问题。
$gateway = 10.251.169.1
$pdns = 1.1.1.1
$sdns = 2.2.2.2
$pwins - 3.3.3.3
$subnetmask = 255.255.255.128
$Networkname = "vm_network"
foreach($i in 10..12){
#Setting VM name and IP based on position in the loop
$vmname = "azww-qc-$($i)d"
$ipaddress = "10.251.169.$i"
#Setting up $custspec variable
$custSpec = New-OSCustomizationSpec -Type NonPersistent -OSType Windows `
-OrgName “MyOrg” -FullName “Name” -Domain “mydomain.com” `
–DomainUsername “user” –DomainPassword “password”
#Adding network information to custspec
$custSpec | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping -IpMode UseStaticIP `
-IpAddress $ipaddress -SubnetMask $subnetmask -Dns $pdns -wins $pwins -DefaultGateway $gateway
New-VM -Name $vmname -Template $template -datastore $cluster `
-NumCPU 2 -MemoryGB 4 -DiskGB 35 -NetworkName $networkname `
-OSCustomizationSpec $custSpec
}
我一直收到以下错误:
Set-OSCustomizationNicMapping当IpMode参数设置为
UseStaticIp,您必须指定IPAddress,Subnetmask,Dns(在Windows规范上)
only)和DefaultGateway参数。
我正在指定这些参数,所以我不知道它在咆哮什么。
答案 0 :(得分:0)
尝试将IP括在引号中。您似乎也使用$pwins
将等号标记为错误。所以:
$gateway = "10.251.169.1"
$pdns = "1.1.1.1"
$sdns = "2.2.2.2"
$pwins = "3.3.3.3"
$subnetmask = "255.255.255.128"
Offhand我不确定为什么$x = 1.1.1.1
将$x
设置为$null
,但这就是发生的事情。