Automation

 View Only
  • 1.  Help on some simple coding

    Posted Oct 02, 2008 05:34 PM

    I'm wondering if someone could help me with a bit of code. I've hacked this script together to produce information on each of 8 VC instances we have globally. The report info is simple for an executive who wants it as a weekly report, not for anyone who wants alot of detail.

    The script goes and connects to each VC, which all allow the same credentials, and then writes the output. The issue is that it is producing the same numbers for all the VC's. Am I not doing the "foreach" statement right or ? Here's just part of it, not the whole thing as to not clog up the forum. Any help is appreciated.

    $vc = @(

    "vc1.test.com",

    "vc2.test.com",

    "vc3.test.com",

    "vc4.test.com",

    "vc5.test.com",

    "vc6.test.com",

    "vc7.test.com",

    "vc8.test.com"

    )

    $report =@()

    $cred = Get-Credential

    $listVC = Connect-VIServer -Server $vc -Credential $cred

    foreach ( $VC in $listVC ) {

    Write-Output $VC.Name

    Write-Output (Get-VMhost).count

    Write-Output (Get-VM).count

    }



  • 2.  RE: Help on some simple coding

    Posted Oct 02, 2008 06:59 PM

    You need to pass $vc to the Server parameter of each toolkit cmdlet

    (almost everyone has this param). You can pass the whole array and

    you'll get one huge list of VMs or whatever, or you can do it in a

    loop like you are doing in your example.

    simple e.g.

    $vc | foreach-object { (get-vm -server $vc).Count }

    --

    $signature = "Hal Rottenberg, MVP - Admin Frameworks"

    $projects = @{ title = "Blog Author"; url = "http://halr9000.com" },

    @{ title = "Co-host"; url = "http://powerscripting.net" },

    @{ title = "Community Director"; url = "http://PowerShellCommunity.org" },

    @{ title = "Psi Webmaster"; url = "http://psi-im.org" }



  • 3.  RE: Help on some simple coding

    Posted Oct 02, 2008 07:01 PM

    You will need to add the VI Server on the cmdlets in the loop with the -Server parameter.

    Something like

    
    (Get-VMHost -Server $VC).count
    
    

    Hal types faster than me :smileywink:

    Message was edited by: LucD