Automation

 View Only
  • 1.  Need Portgroup Information against each VM in for loop

    Posted Mar 12, 2019 01:31 AM

    Using the following script to capture a few basic details of list of servers, need to add DVS information can someone please have a look and help.

    $vmList = Get-Content C:\server.txt

    $(foreach ($vmName in $vmList) {Get-VM $vmName| Select-Object -Property Name,

    @{Name=’Cluster’;Expression={$_.VMHost.Parent}},

    @{N="Tools Status";E={$vm.ExtensionData.Guest.ToolsStatus}},

    @{N="Network";E={$_.NetworkName}},

    @{Name=”Datastore”;E={[string]::Join(‘,’,(Get-Datastore -Id $_.DatastoreIdList | Select -ExpandProperty Name))}}}

    ) | Export-Csv "C:\Work\Scripts\SRM\DRTEST2.csv" -NoTypeInformation



  • 2.  RE: Need Portgroup Information against each VM in for loop

    Posted Mar 12, 2019 06:00 AM

    That is a bit vague as a requirement.

    What exactly do you need?

    There are numerous threads in here with VDS reports that you can find when you do a simple search

    Re: Script to collect from all VM adapters - portgroup (network), VLAN ID, subnet mask, gateway address

    Re: Virtual Distributed Switch Report

    Re: PowerCLI Script to extract all DVS configuration to CSV



  • 3.  RE: Need Portgroup Information against each VM in for loop

    Posted Mar 12, 2019 06:02 PM

    I have a list of servers in txt file need to export following info for those VM's

    1. VMName,
    2. Cluster
    3. Toolsstatus
    4. Datastore
    5. Network

    ---With following script every working except VM Networks

    $vmList = Get-Content C:\Work\Server.txt

    $(foreach ($vmName in $vmList) {Get-VM $vmName| Select-Object -Property Name,

    @{Name=’Cluster’;Expression={$_.VMHost.Parent}},

    @{N="Tools Status";E={$vm.ExtensionData.Guest.ToolsStatus}},

    @{N="Network";E={$_.NetworkName}},

    @{Name=”Datastore”;E={[string]::Join(‘,’,(Get-Datastore -Id $_.DatastoreIdList | Select -ExpandProperty Name))}}}

    )

    #| Export-Csv "C:\Work\result.csv" -NoTypeInformation

    ---Currently output is something like

    Name         : LXXXXXXX

    Cluster      :   XYZ

    Tools Status : toolsOk

    Network      :

    Datastore    : XXXXXXXXXX

    Name         : LXXXXX

    Cluster      :  ABC

    Tools Status : toolsOk

    Network      :

    Datastore    : XXXXXXXXXXXX



  • 4.  RE: Need Portgroup Information against each VM in for loop
    Best Answer

    Posted Mar 12, 2019 06:18 PM

    Ok, try like this

    $vmList = Get-Content C:\Work\Server.txt

    $report = foreach ($vmName in $vmList) {

       Get-VM $vmName| Select-Object -Property Name,

       @{Name=’Cluster’;Expression={$_.VMHost.Parent}},

       @{N="Tools Status";E={$vm.ExtensionData.Guest.ToolsStatus}},

       @{N="Network";E={(Get-VirtualPortGroup -VM $_).Name -join '|'}},

       @{Name=”Datastore”;E={[string]::Join(,,(Get-Datastore -Id $_.DatastoreIdList | Select -ExpandProperty Name))}}

    }

    $report | Export-Csv "C:\Work\result.csv" -NoTypeInformation



  • 5.  RE: Need Portgroup Information against each VM in for loop

    Posted Mar 13, 2019 03:03 PM

    Thanks, It's worked !!