VmHost Script to change the MTU on vSwitch loop problem

For some reason, the value of $vmHost in the ForEach loop is both hosts (vmhost1 vmhost2).  I don't want to do all my guests, but only a chosen few that I would have in a list.  If I do $vmHosts = "vmhost1", it works fine.  Thanks for the help.

############################################################################################################################

$vswtch = "vSwitch3".
$report = @)

$vmHosts = "vmhost1 vmhost2".

{ForEach ($vmHost to $vmHosts)


(Get-VMHost $vmHost |) Get-VirtualSwitch-name $vswtch | Set-VirtualSwitch - 9000 MTU) {}
"Write-Host $vmHost.Name, ' VirtualSWITCH:"$vswtch"MTU value 9000 successfully. »
} else {}
"Write-Host $vmHost.Name, ' VirtualSWITCH:"$vswtch"MTU FAILURE 9000 value!. »
}
}

Hello, padgettmic-

That would be because of the way you create the variable $vmHosts.  It deploys a string that corresponds to the "vmhost1 vmhost2", not an array of two elements, "vmhost1" and "vmhost2".

A way to make a table would be to use the Split() the String class method, such as:

$vmHosts="vmhost1 vmhost2".Split(" ")

then try your Foreach loop.  How does do for you?

Tags: VMware

Similar Questions

  • Script to change the settings for security vSwith

    We need a script to change the settings for security vSwitch.

    To change the below: -.

    Mac changes Accept Reject

    Forged pass Accept Reject

    The two parameters above must change on all the vSwitch in vcenter.

    Altogether. Pass an argument to Get-VMHost

    If you pass the complete hostname (as he shows in vCenter), it will act on the single host:

    Get-VMHost MYESXi01.mydomain.com

    or if you want to do more, you can pass a joker:

    Get-VMHost MYESXi*.mydomain .com

    FWIW, I think that should do the same thing on a single line, if you like this better

    Get-VMhost|%{$hv=Get-View $_.ID;$ns=$hv.ConfigManager.NetworkSystem;($hv.Config.Network.Vswitch)|%{$vs=$_.Spec;$vs.Policy.Security.AllowPromiscuous=$false;$vs.Policy.Security.ForgedTransmits=$false; $vs.Policy.Security.MacChanges=$false;$ns.UpdateVirtualSwitch($_.Name,$vs)}}

    Doug

  • Get-VMHost: you have changed the world: DefaultVIServer and global: DefaultVIServers system variables. This is not allowed. Please reset them to $null and reconnect the server vSphere.

    Hello world

    After the upgrade to PowerCLI version 5.1 however I can't run even the simplest command because it always ends up with the following error:

    Get-VMHost: you have changed the world: DefaultVIServer and global: DefaultVIServers system variables. This is not aRA. Please reset them to $null and reconnect the server vSphere.

    C:\Users\Albert\AppData\Local\Temp\7900df01-f6c1-48c6-ac1e-047dfff90fb6.ps1:1 tank: 11
    + Get-VMHost < < < <
    + CategoryInfo: NotSpecified: (:)) [Get-VMHost], InvalidState)
    + FullyQualifiedErrorId: VMware.VimAutomation.ViCore.Types.V1.ErrorHandling.InvalidState, VMware.VimAutomation.ViCore.Cmdlets.Commands.GetVMHost

    Can someone please suggest to me how to fix the script for my v3.2.0 PowerGUI IDE can work with the latest PowerCLI in my computer laptop 64 bit Windows 7?

    Thank you.

    And I just tried with PowerGui (same versions of PowerGUI and PowerCLI you use), no problem.

    Must be something local on your desktop.

    Maybe try a uninstall/reinstall of PowerGUI?

  • Script to change the subnet and vlan.

    Hello

    Please can anyone help with a script to change the subnet and VLANs on all the esx host in a cluster for the vmotion and management network interface?

    Thank you

    Astra

    I guess it worked because you pasted an out front, so:

    Get-Cluster mycluster. Get-VMHost | Get-VMHostNetworkAdapter | where {$_.} PortGroupName - eq "VMotion"} | {} %
    Game-VMHostNetworkAdapter - VirtualNic $_ - IP $_. IP - subnet mask "255.255.254.0" - confirm: $false
    }

    I guess that makes still out:

    Get-Cluster mycluster. Get-VMHost | Get-VMHostNetworkAdapter | where {$_.} PortGroupName - eq "VMotion"}

    2 vmknis right?

    If Yes, then it should work I think.

  • PowerShell script to change the DNS entries for all hosts

    Ive tried many others which have been posted on the web and none work... Someone at - it a script to change the DNS entries on all hosts?

    OK, changed a few pieces my end, it worked but now it's... Try this (50% confident

     $dnsServers = ("192.168.111.3","192.168.111.4")
    
     Get-VMHost | Get-View | %{
        $ns = Get-View -Id $_.configManager.networkSystem
        $dns = $ns.networkConfig.dnsConfig
    
         $dns.Address = @()
         foreach($server in $dnsServers) {
           $dns.Address += $server
       }
       $ns.UpdateDnsConfig($dns)
     }
    

    If you found this information useful, please consider the allocation of points for correct or helpful.

    Alan Renouf

    http://Virtu-al.NET

  • I know the process to change the MTU setting, but I'm stuck when I try to implement because it says that I am not the administrator.

    Original title: MTU settings

    I know the process to change the MTU setting, but I'm stuck when I try to implement because it says that I am not the administrator.

    I am running windows 7 home premium, service pack 1.

    I am the administrator in windows but not when I go to the C; \users\XXX > told me to click with the right button on command prompt and select run as administrator, but this option never comes.

    Hello

    Thank you for visiting Microsoft Community.

    I suggest you to post your query on our Forums TechNet social as this question should be better there.

    Please refer to the reference to the link below to send your request:

    https://social.technet.Microsoft.com/forums/Windows/en-us/home?Forum=w7itpronetworking

    Hope this information helps.

    Thank you.

    Sincerely,

    Ankit Rajput

  • How can I change the MTU in Windows 7?

    I need to change the MTU in 1458 to work with my router.

    I can't find where to do this in Windows 7...

    You can try this...

    http://networking.nitecruzr.NET/2007/11/setting-MTU-in-Windows-Vista.html

    What router do you have? Personally, I have never had to manually manipulate the MTU value on any of my PCs ever.

    MS - MVP Windows Desktop Experience, "when everything has failed, read the operating instructions.

  • Script to change the key of win8 silently

    I need a script to change the key for win8 silently, there are hundreds of systems whose key is goinng expires soon, so I need a script that can the key Active silently without user interaction. Planning to deply the script using SCCM, any suggestions would be helpful. Thanks in advance...

    Since this isn't a scenario of domestic consumption current, you'll get best advice of experts of INFORMATICS:

    http://forums.technet.Microsoft.com

  • script to change the data type of column

    Hi gurus of the oracle.

    I have 190 tables in my database.

    I have the column type CHAR of all these tables data.

    I need to change the data type of CHAR in VARCHAR2 for all these tables...

    There the script to change the data type of all tables at once?

    Please help me in this regard.

    Thanks in advance

    Concerning

    REDA

    Hello

    There is nothing built-in to Oracle SQL to do.  Maybe your front-end has certain characteristics.

    You can write dynamic SQL statements to do.  In other words, you can write a query that the output is a SQL script like this:

    ALTER TABLE TABLE_A CHANGE (A_TXT1 VARCHAR2 (5))

    A_TXT2 VARCHAR2 (10));

    ALTER TABLE TABLE_B CHANGE (B_TXT1 VARCHAR2 (5));

    with one row for each column of type CHAR.  Notice how the first line of output for each table begins with ALTER TABLE... but the later lines at the same table.  Similarly, the last line of a table (which will be the same as the first row, if the table has only one column of type CHAR) to end with a semicolon, but other lines are not.

    Here's a way to generate and execute such a dynamic script in SQL * more:

    -Disable the features that make the output easy to read, but hinder the execution
    SET FEEDBACK OFF
    SET LINESIZE 500
    SET PAGESIZE 0

    -Create fix_char.sql
    COIL c:\some_pathename\fix_char.sql

    SELECT THE CHECK BOX
    WHEN ROW_NUMBER () OVER (PARTITION BY table_name
    ORDER BY column_name
    )  = 1
    THEN 'ALTER TABLE ' | table-name
    || "CHANGE (").
    ELSE «»
    END
    ||        column_name
    ||        "VARCHAR2 (').
    ||        DATA_LENGTH
    ||        ')'
    ||        CASE
    WHEN ROW_NUMBER () OVER (PARTITION BY table_name
    ORDER BY column_name DESC
    )  = 1
    THEN '); "
    Output END AS
    Of user_tab_columns
    WHERE data_type = "CHAR".
    ORDER BY table_name
    column_name
    ;

    SPOOL OFF

    -Turn on the features that make the output easy to read, but hinder the execution
    SET FEEDBACK ON
    SET LINESIZE 80
    SET PAGESIZE 50

    -Fix_char.sql performance
    @c:\some_pathname\fix_char

    It's good to change all the CHARIOT of VARCHAR2 columns.  The CHAR data type is nothing trouble.

  • Need a script to change the password of admin for all the VMs (windows)

    Need a script to change the password of admin for all the VMs (windows)

    Hi LucD,

    Need your help about changing the password to root for Linux VM.

    It throws the following error when I run on Linux VM

    Invoke VMScript: 10/04/2013-16:52:02 Invoke VMScript Could not authenticate with the guest operating system by using the supplied credentials.

    Thank you

    Suresh

  • Script to change the name of the file to the virtual machine and its associated files

    Hello

    I'm looking for a script to change the name of the virtual machine in virtual center and also change it has associated file names in the data store to match file name of virtual machine. But the vmdk file will contain a descriptor which maps the - flat.vmdk file. So not sure that we can achieve this through a script.

    Thanks in advance!

    Not really as much as I know.

    The advantage of the svMotion is renamed it the files (.) VMX, VMDK,...) For you.

    The only alternative would be the command line. See Duncan Howto: renaming a virtual computer.

    With the help of the plink.exe tool which could possibly be scripted.

    ____________

    Blog: LucD notes

    Twitter: lucd22

  • [JS, CS3] a script to change the language in all styles of paragraph

    Hello

    I made a script to change the language in all styles of paragraph for "French", but when I run it I get the error: "Invalid request on the root style. Could you please tell me what I'm missing?

    myDoc = app.activeDocument;
    myStyles = myDoc.paragraphStyles;
    for (i = 0; i < myStyles.length; i ++)
    {
    myStyle = myStyles [i];
    myStyle.appliedLanguage = "French";
    }

    Parargaph Style #0 is [No Style], and you cannot change this way. Simply start your loop at 1.

    Style #1 is [Basic Style], and if you have trouble as well to change this, simply start at 2.

  • Script to get the VLan ID, vSwitch, networking and group of vCenter vmkernel ports.

    Hello

    Need help to get the script of ' Script for the VLan ID, vSwitch, networking and group ports vmkernel of vCenter. "to CSV

    Any help will be much appreciated.

    Get-VMHost | {foreach}

    $vmhost = $_

    $PortGroups = $vmhost | Get-VirtualPortGroup

    $vSwitchs = $vmhost | Get-VirtualSwitch

    $pNic = $vmhost | Get-VMHostNetworkAdapter

    $Managementinfo = $pNic | Where-Object {$_.} ManagementTrafficEnabled - eq $true}

    $vMotioninfo = $pNic | Where-Object {$_.} VMotionEnabled - eq $true}

    $FTinfo = $pNic | Where-Object {$_.} FaultToleranceLoggingEnabled - eq $true}

    $vlanID = $PortGroup | Where-Object {$_.name - eq $Managementinfo.ExtensionData.spec.Portgroup} | Select-object - ExpandProperty VLanId

    {foreach ($PG in $PortGroups)

    #Management Info network

    If ($Managementinfo.PortGroupName - eq $PG.) {Name)

    $MGMTStatus = "enabled".

    $ManagementIP = $Managementinfo | Where-Object {$_.} PortGroupName - eq $PG. Name} | Select-Object - ExpandProperty IP

    }

    else {}

    $MGMTStatus = "Disabled".

    $ManagementIP = $null

    }

    #vMotion Info network

    If ($vMotioninfo.PortGroupName - eq $PG.) {Name)

    $vmotionStatus = "enabled".

    $vMotionIP = $vMotioninfo | Where-Object {$_.} PortGroupName - eq $PG. Name} | Select-Object - ExpandProperty IP

    }

    else {}

    $vmotionStatus = "Disabled".

    $vMotionIP = $null

    }

    #FT Info network

    If ($FaultToleranceLoggingEnabled.PortGroupName - eq $PG.) {Name)

    $FTStatus = "enabled".

    $ftIP = $FTinfo | Where-Object {$_.} PortGroupName - eq $PG. Name} | Select-Object - ExpandProperty IP

    }

    else {}

    $FTStatus = "Disabled".

    $ftIP = $null

    }

    #vmKernel name

    $VMKernel = $pNic | Where-Object {$_.} PortGroupName - eq $PG. Name} | Select-Object - ExpandProperty DeviceName

    $result = "" | Select-Object HostName, vSwitchName, PortGroupName, VLanID, ManagementTraffic, ManagementIP, vMotionTraffic, vMotionIP, FTTraffic, FTIP, VMKernel

    $result. Host name = $vmhost.name

    $result.vSwitchName = $PG. VirtualSwitchName

    $result. PortGroupName = $PG. Name

    $result. VLanID = $PG. VLanID

    $result. VLanID = $PG. VLanID

    $result. ManagementTraffic = $MGMTStatus

    $result. ManagementIP = $ManagementIP

    $result.vMotionTraffic = $vmotionStatus

    $result.vMotionIP = $vMotionIP

    $result. FTTraffic = $FTStatus

    $result. FTIP = $ftIP

    $result. VMKernel = $VMKernel

    $result

    }

    } | Export-Csv c:\temp\data.csv

  • Jumbo frames, change the MTU size without VM guest tension

    I'm trying to disable jumbo frames, specifically to change the size of the mtu to 1500 (instead of 9000) in vcenter on some hosts. Some hosts run esxi 4.1, others are running esxi 5.0. I wonder if it is absolutely necessary to turn off the virtual machines that are connected to the iscsi san network while making this change, or is it relatively safe to make this change, while VMS are running.

    Each VM has active multipathing, 2 vswitches with 1 NIC associated with each.

    I know how to make the changes, regarding my questions whether it is possible to safely make changes while VMS still access the SAN.

    Yes, it is something that I do in my lab quite frequently without using maintenance mode. Memaad notes, maintenance mode is always preferable to avoid unnecessary risks, but it's finally to you.

    See you soon.

  • Change the MTU size to vmkernels on dvSwitch

    Hi all

    I have about 40 ESX hosts that belong to dvswitches different 6 and 6 different groups. Each host has 6 vmknics created for the dvswitch and all have value mtu of 1500. Can someone help me with a cli script to change all vmks 9000 MTU?

    Please let me know if additional information is required

    Thanks in advance.

    Try it like this.

    $MtuSize = 9000
    foreach($dvSw in (Get-VirtualSwitch -Distributed -Datacenter MyDC)){
      $dvSw.ExtensionData.Config.Host | %{
        $esx = Get-View $_.Config.Host    foreach($pnic in $_.Config.Backing.PnicSpec){
          $netSys = Get-View $esx.configManager.networkSystem      foreach($vnic in $netSys.NetworkConfig.Vnic | where {$_.Spec.DistributedVirtualPort}){
            $spec = [VMware.Vim.HostVirtualNicSpec]$vnic.spec        $spec.mtu = $MTUSize        $netSys.UpdateVirtualNic($vnic.Device,$spec)
          }
        }
      }
    }
    

    It will update the MTU value of each vnic connected to a dvSwitch

Maybe you are looking for