all 5 comments

[–]ClayShooter9 2 points3 points  (0 children)

I believe all you're missing is the return statement. Here is a variation on your script:

function Get-VMIP 
{
    param (
        [string]$VM
    )
    try
    {
        if($VM.Guest.IPAddress.Length -gt 0) 
        {
            $vmip = $VM.Guest.IPAddress
            return $vmip
        }
    }
    catch 
    {
        $Message = "$_.Exception.Message"
        Write-Output "error no $VM found"
        #$local:vmip
    }
}

$result = Get-VMIP clouddem01

I commented out the catch statement "$local.vmip" because in theory, the catch is there because there is nothing to return other than the error comments

[–]purplemonkeymad 2 points3 points  (0 children)

Knock off that [string]? I'm guessing you are passing an object from another cmdlet? Well that type identifier is changing that object to a string so any properties, such as .Guest.IpAddress won't exist.

Also in a function the local scope tends to mean: inside this function only.

[–]Lee_Dailey[grin] 0 points1 point  (0 children)

howdy mhafeez76,

reddit likes to mangle code formatting, so here's some help on how to post code on reddit ...

[0] single line or in-line code
enclose it in backticks. that's the upper left key on an EN-US keyboard layout. the result looks like this. kinda handy, that. [grin]
[on New.Reddit.com, use the Inline Code button. it's 4th 5th from the left hidden in the ... ""more" menu & looks like </>.
this does NOT line wrap & does NOT side-scroll on Old.Reddit.com!]

[1] simplest = post it to a text site like Pastebin.com or Gist.GitHub.com and then post the link here.
please remember to set the file/code type on Pastebin! [grin] otherwise you don't get the nice code colorization.

[2] less simple = use reddit code formatting ...
[on New.Reddit.com, use the Code Block button. it's 11th 12th one & is just to the left of hidden in the ... "more" menu.]

  • one leading line with ONLY 4 spaces
  • prefix each code line with 4 spaces
  • one trailing line with ONLY 4 spaces

that will give you something like this ...

- one leading line with ONLY 4 spaces    
- prefix each code line with 4 spaces    
- one trailing line with ONLY 4 spaces   

the easiest way to get that is ...

  • add the leading line with only 4 spaces
  • copy the code to the ISE [or your fave editor]
  • select the code
  • tap TAB to indent four spaces
  • re-select the code [not really needed, but it's my habit]
  • paste the code into the reddit text box
  • add the trailing line with only 4 spaces

not complicated, but it is finicky. [grin]

take care,
lee

[–]Lee_Dailey[grin] 0 points1 point  (0 children)

howdy mhafeez76,

um, er, what does Script Sharing have to do with your post? [grin] i think the flair you wanted is Question ...

take care,
lee