############################################################################### # # Sets the DNS Server on all ESXi # Created 03.12.2015 info@michlstechblog.info # # Changes: # # ############################################################################### <# .SYNOPSIS Sets DNS Server on all ESXi Host .DESCRIPTION Sets DNS Server on all ESXi Host .PARAMETER help Shows help .PARAMETER vcenter vCenter .PARAMETER dnsserver DNS Server. Comma separated #> [CmdletBinding()] Param( [Parameter(Mandatory=$true,Position=1)][alias("vc")][string]$vcenter="", [Parameter(Mandatory=$true,Position=2)][alias("s")][string[]]$dnsserver="", [Parameter(Mandatory=$false,Position=3)][alias("h")][switch]$help=$false ) $sScriptName=$MyInvocation.MyCommand.Name if($help) { write-host "Usage : $sScriptName -vc vCenterServerName -s DNSServer1,DNSServer2" write-host "Example: $sScriptName -vc yourhost.yourdomain -s 3.4.5.6,90.89.78.67" exit 0 } ############################################################################### # Connect to vCenter ############################################################################### Write-Host -NoNewline " Connecting to vCenter..." if($global:DefaultVIServers) { Disconnect-VIServer -ErrorAction SilentlyContinue -WarningAction SilentlyContinue |out-null } if(!($global:DefaultVIServers)) { Connect-VIServer $vcenter -ErrorAction SilentlyContinue -WarningAction SilentlyContinue |out-null } if(!$?){ Write-Host -ForegroundColor Red " Could not connect to $vcenter" exit 2 } else{ Write-Host "ok" } # All ESXi Hosts Get-VMHost *|%{ write-host -NoNewLine (" Set DNS Server at "+$_.Name+" ...") $error.clear() try{ $oVMHostNetworkInfo = Get-VmHostNetwork $_ Set-VMHostNetwork -Network $oVMHostNetworkInfo -DnsAddress $dnsserver|out-null write-host " ok" } catch{ write-warning " ERROR" } }