<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>piercj2 Tracker</title>
    <link>https://communities.vmware.com/wbsdv95928/tracker</link>
    <description>piercj2 Tracker</description>
    <pubDate>Wed, 15 Nov 2023 10:12:06 GMT</pubDate>
    <dc:date>2023-11-15T10:12:06Z</dc:date>
    <item>
      <title>Re: Posh-ssh output to array</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Posh-ssh-output-to-array/m-p/2863045#M102858</link>
      <description>&lt;P&gt;That was it, thanks Luc.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 20 Aug 2021 13:48:44 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Posh-ssh-output-to-array/m-p/2863045#M102858</guid>
      <dc:creator>piercj2</dc:creator>
      <dc:date>2021-08-20T13:48:44Z</dc:date>
    </item>
    <item>
      <title>Posh-ssh output to array</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Posh-ssh-output-to-array/m-p/2863035#M102855</link>
      <description>&lt;P&gt;Hi, i'm using Posh SSH to check some config settings&amp;nbsp;&lt;/P&gt;&lt;P&gt;The specific command i'm interested in is&amp;nbsp;&lt;STRONG&gt;Invoke-SSHCommand -sessionID $sshSession.SessionId -Command "get dataplane | find Tx_ring_size"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Output from&amp;nbsp;&lt;STRONG&gt;Invoke-SSHCommand -sessionID $sshSession.SessionId -Command "get dataplane | find Tx_ring_size"&lt;/STRONG&gt; is&lt;/P&gt;&lt;P&gt;Host : myServerNameHere.mycomp.com&lt;BR /&gt;Output : {Tx_ring_size : 4096}&lt;BR /&gt;ExitStatus : 0&lt;/P&gt;&lt;P&gt;Creating a Posh-SSH Session and running the command works as expected.&lt;/P&gt;&lt;P&gt;$sshUsername = 'admin'&lt;BR /&gt;$password = 'notThePassword!'&lt;BR /&gt;$sshPassword = $password | ConvertTo-SecureString -AsPlainText -Force&lt;BR /&gt;$sshPassword.MakeReadOnly()&lt;BR /&gt;$sshCred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $sshUsername,$sshPassword&lt;BR /&gt;$sshCredential = Get-Credential -Credential $sshCred&lt;/P&gt;&lt;P&gt;$sshSession = New-SSHSession -ComputerName 'myServerNameHere.mycomp.com' -Credential $sshCredential -AcceptKey:$true&lt;BR /&gt;if ($sshSession.Connected -like "True") {&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;$Tx_ring_size = Invoke-SSHCommand -sessionID $sshSession.SessionId -Command "get dataplane | find Tx_ring_size"&lt;BR /&gt;Write-Host "Tx_ring_size is: " -NoNewline&lt;BR /&gt;(($Tx_ring_size.Output -split ':')[1]).Trim("{","}")&lt;BR /&gt;&lt;BR /&gt;$Rx_ring_size = Invoke-SSHCommand -sessionID $sshSession.SessionId -Command "get dataplane | find Rx_ring_size"&lt;BR /&gt;Write-Host "Rx_ring_size is: " -NoNewline&lt;BR /&gt;(($Rx_ring_size.Output) -split ':')[1]&lt;/P&gt;&lt;P&gt;Write-Host "Disconnecting ssh session to myServerNameHere.mycomp.com "&lt;BR /&gt;Remove-SSHSession -SessionId $sshSession.SessionId | Out-Null&lt;BR /&gt;Write-Host -ForegroundColor DarkGray "`n------------------------------------------------------------------`n"&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;Output to the console is as expected&lt;/P&gt;&lt;P&gt;Tx_ring_size is: 4096&lt;BR /&gt;Rx_ring_size is: 4096&lt;BR /&gt;Disconnecting ssh session to myServerNameHere.mycomp.com&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need to create a report for a large number of Servers by entering the details into an array and outputting the contents of the array&lt;/P&gt;&lt;P&gt;$ServerNameArray = @()&lt;/P&gt;&lt;P&gt;$resultsArray = @()&lt;/P&gt;&lt;P&gt;$downloadsDir = "$HOME\Downloads"&lt;/P&gt;&lt;P&gt;foreach ($item in $ServerNameArray){&lt;/P&gt;&lt;P&gt;$resultsProperty = [ordered] @{&lt;BR /&gt;'Server_FQDN'=$item.FQDN&lt;BR /&gt;'Server_IP' = $item.IP&lt;/P&gt;&lt;P&gt;$sshUsername = 'admin'&lt;BR /&gt;$password = 'notThePassword!'&lt;BR /&gt;$sshPassword = $password | ConvertTo-SecureString -AsPlainText -Force&lt;BR /&gt;$sshPassword.MakeReadOnly()&lt;BR /&gt;$sshCred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $sshUsername,$sshPassword&lt;BR /&gt;$sshCredential = Get-Credential -Credential $sshCred&lt;/P&gt;&lt;P&gt;$sshSession = New-SSHSession -ComputerName 'myServerNameHere.mycomp.com' -Credential $sshCredential -AcceptKey:$true&lt;BR /&gt;if ($sshSession.Connected -like "True") {&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;$Tx_ring_size = Invoke-SSHCommand -sessionID $sshSession.SessionId -Command "get dataplane | find Tx_ring_size"&lt;BR /&gt;Write-Host "Tx_ring_size is: " -NoNewline&lt;BR /&gt;(($Tx_ring_size.Output -split ':')[1]).Trim("{","}")&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$resultsProperty.Add("Tx_ring_size",(($Tx_ring_size.Output -split ':')[1]).Trim("{","}"))&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;$Rx_ring_size = Invoke-SSHCommand -sessionID $sshSession.SessionId -Command "get dataplane | find Rx_ring_size"&lt;BR /&gt;Write-Host "Rx_ring_size is: " -NoNewline&lt;BR /&gt;(($Rx_ring_size.Output) -split ':')[1]&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$resultsProperty.Add("Rx_ring_size",(($Rx_ring_size.Output -split ':')[1]).Trim("{","}"))&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Write-Host "Disconnecting ssh session to myServerNameHere.mycomp.com "&lt;BR /&gt;Remove-SSHSession -SessionId $sshSession.SessionId | Out-Null&lt;BR /&gt;Write-Host -ForegroundColor DarkGray "`n------------------------------------------------------------------`n"&lt;/P&gt;&lt;P&gt;$resultsArray += New-Object -TypeName psobject -Property $resultsProperty&lt;BR /&gt;$i++&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;$resultsArray | Sort-Object -Property {($_ | Get-Member -MemberType NoteProperty).Count } -Descending | Out-GridView&lt;/P&gt;&lt;P&gt;$resultsArray | Sort-Object -Property {($_ | Get-Member -MemberType NoteProperty).Count } -Descending | Export-Excel -Path "$downloadsDir\Config_Check.xlsx"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My issue is, the Tx_ring_size and Rx_ring_size fields are not being populated in the results array.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 20 Aug 2021 13:10:59 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Posh-ssh-output-to-array/m-p/2863035#M102855</guid>
      <dc:creator>piercj2</dc:creator>
      <dc:date>2021-08-20T13:10:59Z</dc:date>
    </item>
    <item>
      <title>Re: Try / Catch not working as expected for Invoke-SSHStreamExpectSecureAction</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Try-Catch-not-working-as-expected-for-Invoke/m-p/2848084#M101558</link>
      <description>&lt;P&gt;I'd looked at redirecting the verbose output yesterday (&lt;A href="https://docs.microsoft.com/en-gb/powershell/module/microsoft.powershell.core/about/about_redirection?view=powershell-7.1" target="_blank"&gt;about_Redirection - PowerShell | Microsoft Docs&lt;/A&gt;). I didn't have any success so didn't think this was the solution. With you suggesting that this was the solution, I took another look. As usual Luc, you are the man !&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It took some trial and error, redirecting the verbose output from various locations but, eventually I struck gold &lt;img class="lia-deferred-image lia-image-emoji" src="https://communities.vmware.com/html/@DCF4E2F7991292CEECF250394DB2C2BC/emoticons/1f642.png" alt=":slightly_smiling_face:" title=":slightly_smiling_face:" /&gt;&lt;/P&gt;&lt;P&gt;Below is the working code, i've left in the comments, write-host, etc, as it made it easier for me to see what's happening.&amp;nbsp;&lt;/P&gt;&lt;P&gt;# If you can ssh, check elevated privileges by entering 'st en'&lt;BR /&gt;if ($sshSession.Connected -like "True") {&lt;BR /&gt;$resultsProperty.Add("Username",$sshUsername)&lt;BR /&gt;$resultsProperty.Add("Password",$password)&lt;BR /&gt;&lt;BR /&gt;Write-Host "SSh session to $($item.VIP_FQDN) is connected, checking $($rootUser) credentials now"&lt;BR /&gt;$sshStream = New-SSHShellStream -index $sshSession.SessionId&lt;BR /&gt;Invoke-SSHStreamExpectSecureAction -ShellStream $SSHStream -Command 'st en' -ExpectString "Password:" -SecureAction ($sshRootPass) -Verbose&lt;BR /&gt;$sshStream.read()&lt;BR /&gt;Start-Sleep -Seconds 5&lt;BR /&gt;$verboseOut = $sshStream.Read() 4&amp;gt;&amp;amp;1&lt;BR /&gt;Write-Host -ForegroundColor blue "what Luc said .... $verboseOut"&lt;BR /&gt;if ($verboseOut -like '*su: Authentication failure*'){&lt;BR /&gt;Write-Host -ForegroundColor DarkGreen "got the error :)"&lt;BR /&gt;$resultsProperty.Add("RootUser",$rootUser)&lt;BR /&gt;$resultsProperty.Add("RootPass","Incorrect privileged password")&lt;BR /&gt;}else{&lt;BR /&gt;Write-Host -ForegroundColor DarkGreen "su Authentication successful"&lt;BR /&gt;$resultsProperty.Add("RootUser",$rootUser)&lt;BR /&gt;$resultsProperty.Add("RootPass",$rootPass)&lt;BR /&gt;}&lt;BR /&gt;# Verify it's possible to run an elevated command. If error returned, password provided for 'st en' was incorrect and authentication failed inside the remote shell&lt;BR /&gt;$hwPlat = Invoke-SSHStreamShellCommand -ShellStream $sshStream -Command 'uname -i'&lt;BR /&gt;$resultsProperty.Add("HardwarePlatform",$hwPlat)&lt;BR /&gt;&lt;BR /&gt;Write-Host " Disconnecting ssh session to $($item.VIP_FQDN) "&lt;BR /&gt;Remove-SSHSession -SessionId $sshSession.SessionId | Out-Null&lt;BR /&gt;Write-Host -ForegroundColor DarkGray "------------------------------------------------------------------"&lt;/P&gt;&lt;P&gt;} else {&lt;BR /&gt;Write-Warning "Password for $($item.VIP_FQDN) not working"&lt;BR /&gt;Write-Host -ForegroundColor DarkGray "------------------------------------------------------------------"&lt;BR /&gt;$_.exception.Message&lt;BR /&gt;$resultsProperty.Add("Username",$sshUsername)&lt;BR /&gt;$resultsProperty.Add("Password","Incorrect")&lt;BR /&gt;$resultsProperty.Add("RootUser",$rootUser)&lt;BR /&gt;$resultsProperty.Add("RootPass","Unable to SSH so cannot check Privileged Password")&lt;BR /&gt;$resultsProperty.Add("HardwarePlatform","Unable to SSH so cannot check Privileged commands")&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Output is as below&lt;/P&gt;&lt;P&gt;&lt;FONT color="#99CC00"&gt;Connecting to &lt;A href="https://server1.acme.com" target="_blank"&gt;https://server1.acme.com&lt;/A&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#99CC00"&gt;SSH session to &lt;A href="https://server1.acme.com" target="_blank"&gt;https://server1.acme.com&lt;/A&gt; is connected, checking root credentials now&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00FFFF"&gt;VERBOSE: Executing command st en.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00FFFF"&gt;VERBOSE: Waiting for match.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00FFFF"&gt;VERBOSE: Matching by String.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00FFFF"&gt;VERBOSE: Executing action.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00FFFF"&gt;VERBOSE: Action has been executed.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#99CC00"&gt;True&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT color="#3366FF"&gt;what Luc said .... &lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#3366FF"&gt;su: Authentication failure&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#3366FF"&gt;server1&amp;gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#008000"&gt;got the error &lt;img class="lia-deferred-image lia-image-emoji" src="https://communities.vmware.com/html/@DCF4E2F7991292CEECF250394DB2C2BC/emoticons/1f642.png" alt=":slightly_smiling_face:" title=":slightly_smiling_face:" /&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#99CC00"&gt;Disconnecting ssh session to &lt;A href="https://server1.acme.com" target="_blank"&gt;https://server1.acme.com&lt;/A&gt;&lt;/FONT&gt;&lt;BR /&gt;--------------------------------------------------------&lt;BR /&gt;&lt;FONT color="#99CC00"&gt;Connecting to &lt;A href="https://server2.acme.com" target="_blank"&gt;https://server2.acme.com&lt;/A&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#99CC00"&gt;SSh session to &lt;A href="https://server2.acme.com" target="_blank"&gt;https://server2.acme.com&lt;/A&gt; is connected, checking root credentials now&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00FFFF"&gt;VERBOSE: Executing command st en.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00FFFF"&gt;VERBOSE: Waiting for match.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00FFFF"&gt;VERBOSE: Matching by String.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00FFFF"&gt;VERBOSE: Executing action.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#00FFFF"&gt;VERBOSE: Action has been executed.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#99CC00"&gt;True&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT color="#3366FF"&gt;what Luc said .... &lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#3366FF"&gt;***************************************************************************&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#3366FF"&gt;NOTICE TO USERS&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#3366FF"&gt;WARNING! Changes made while logged in as the root user&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#3366FF"&gt;can cause system failure and potentially impact your network. Please be&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#3366FF"&gt;advised that changes made to the system as the root user must only be made&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#3366FF"&gt;under the guidance of xxxxxxxxxxx.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#3366FF"&gt;***************************************************************************&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#3366FF"&gt;root@server2:~#&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#008000"&gt;su Authentication successful&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT color="#99CC00"&gt;Disconnecting ssh session to &lt;A href="https://server2.acme.com" target="_blank"&gt;https://server2.acme.com&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;As always Luc, thank you !&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 20 May 2021 09:42:15 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Try-Catch-not-working-as-expected-for-Invoke/m-p/2848084#M101558</guid>
      <dc:creator>piercj2</dc:creator>
      <dc:date>2021-05-20T09:42:15Z</dc:date>
    </item>
    <item>
      <title>Re: Try / Catch not working as expected for Invoke-SSHStreamExpectSecureAction</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Try-Catch-not-working-as-expected-for-Invoke/m-p/2848012#M101550</link>
      <description>&lt;P&gt;Great idea but, there's no Out-Variable option for&amp;nbsp;&lt;SPAN&gt;$sshStream.Read()&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I may have "workable" solution.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Assuming successful authentication for privileged mode, i can run a privileged command and capture the result of that command to a variable. That variable can be written to the results array.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;If authentication to privileged mode fails, the command will error. The error can be written to the results array.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Examining the errors will identify the incorrect privileged credentials.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;(it's not the best solution, but the end result will be good enough)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;if ($sshSession.Connected -like "True") {&lt;BR /&gt;$resultsProperty.Add("Username",$sshUsername)&lt;BR /&gt;$resultsProperty.Add("Password",$password)&lt;BR /&gt;&lt;BR /&gt;Write-Host "SSh session to $($item.VIP_FQDN) is connected, checking $($rootUser) credentials now"&lt;BR /&gt;$sshStream = New-SSHShellStream -index $sshSession.SessionId&lt;BR /&gt;Invoke-SSHStreamExpectSecureAction -ShellStream $SSHStream -Command 'st en' -ExpectString "Password:" -SecureAction ($sshRootPass) -Verbose&lt;BR /&gt;$sshStream.read()&amp;nbsp;&lt;BR /&gt;Start-Sleep -Seconds 3&lt;BR /&gt;$sshStream.WriteLine("pwd")&lt;BR /&gt;Start-Sleep -Seconds 3&lt;BR /&gt;$sshStream.Read()&lt;BR /&gt;&lt;BR /&gt;# Verify it's possible to run an elevated command. If error returned, password provided for 'st en' was incorrect and authentication failed&amp;nbsp;&lt;BR /&gt;$hwPlat = Invoke-SSHStreamShellCommand -ShellStream $sshStream -Command 'uname -i'&lt;BR /&gt;&lt;BR /&gt;$resultsProperty.Add("RootUser",$rootUser)&lt;BR /&gt;$resultsProperty.Add("RootPass",$rootPass)&lt;BR /&gt;$resultsProperty.Add("HardwarePlatform",$hwPlat)&lt;BR /&gt;&lt;BR /&gt;Write-Host " Disconnecting ssh session to $($item.VIP_FQDN) "&lt;BR /&gt;Remove-SSHSession -SessionId $sshSession.SessionId | Out-Null&lt;BR /&gt;Write-Host ""&lt;/P&gt;&lt;P&gt;} else {&lt;BR /&gt;Write-host "Password for $($item.VIP_FQDN) not working" -ForegroundColor Red&lt;BR /&gt;$_.exception.Message&lt;BR /&gt;$resultsProperty.Add("Username",$sshUsername)&lt;BR /&gt;$resultsProperty.Add("Password","Incorrect")&lt;BR /&gt;$resultsProperty.Add("RootUser",$rootUser)&lt;BR /&gt;$resultsProperty.Add("RootPass","Unable to SSH so cannot check Privileged Password")&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;$resultsArray += New-Object -TypeName psobject -Property $resultsProperty&lt;BR /&gt;$i++&lt;BR /&gt;}&lt;BR /&gt;$resultsArray | Sort-Object -Property {($_ | Get-Member -MemberType NoteProperty).Count } -Descending | Out-GridView&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 19 May 2021 21:21:23 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Try-Catch-not-working-as-expected-for-Invoke/m-p/2848012#M101550</guid>
      <dc:creator>piercj2</dc:creator>
      <dc:date>2021-05-19T21:21:23Z</dc:date>
    </item>
    <item>
      <title>Re: Try / Catch not working as expected for Invoke-SSHStreamExpectSecureAction</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Try-Catch-not-working-as-expected-for-Invoke/m-p/2847985#M101546</link>
      <description>&lt;P&gt;you could be right, the error is probably happening inside the shell, not in PowerCLI, i hadn't thought of that.&lt;/P&gt;&lt;P&gt;If that is the case, is there any way of managing the messages that are displayed from -verbose ?&lt;/P&gt;&lt;P&gt;One of the outputs from -verbose is "su: Authentication failure", is there any way to manage/use this ?&lt;/P&gt;&lt;P&gt;The boxes in question are NSX Managers, entering privileged mode is done with "start enable", or "st en"&lt;/P&gt;</description>
      <pubDate>Wed, 19 May 2021 18:36:39 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Try-Catch-not-working-as-expected-for-Invoke/m-p/2847985#M101546</guid>
      <dc:creator>piercj2</dc:creator>
      <dc:date>2021-05-19T18:36:39Z</dc:date>
    </item>
    <item>
      <title>Re: Try / Catch not working as expected for Invoke-SSHStreamExpectSecureAction</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Try-Catch-not-working-as-expected-for-Invoke/m-p/2847965#M101544</link>
      <description>&lt;P&gt;Hi Luc, i had tried -erroraction stop as follows, it didn't help&lt;/P&gt;&lt;P&gt;try {&lt;BR /&gt;$sshStream = New-SSHShellStream -index $sshSession.SessionId&lt;BR /&gt;Invoke-SSHStreamExpectSecureAction -ShellStream $SSHStream -Command 'st en' -ExpectString "Password:" -SecureAction ($sshRootPass) -Verbose -ErrorAction Stop&lt;BR /&gt;$sshStream.read()&lt;BR /&gt;$sshStream.WriteLine("pwd")&lt;BR /&gt;Start-Sleep -Seconds 3&lt;BR /&gt;$sshStream.Read()&lt;BR /&gt;Start-Sleep -Seconds 3&lt;BR /&gt;&lt;BR /&gt;$resultsProperty.Add("RootUser",$rootUser)&lt;BR /&gt;$resultsProperty.Add("RootPass",$rootPass)&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It looks like there is no error passing the&amp;nbsp;Invoke-SSHStreamExpectSecureAction command. The output from this is&lt;/P&gt;&lt;P&gt;VERBOSE: Executing command st en.&lt;BR /&gt;VERBOSE: Waiting for match.&lt;BR /&gt;VERBOSE: Matching by String.&lt;BR /&gt;VERBOSE: Executing action.&lt;BR /&gt;VERBOSE: Action has been executed.&lt;BR /&gt;&lt;STRONG&gt;True&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;su: Authentication failure&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;I believe Invoke-SSHStreamExpectSecureAction executes without error, hence "true" in the output.&lt;/P&gt;&lt;P&gt;I think the error happens when the&amp;nbsp;&lt;STRONG&gt;$sshStream.read()&lt;/STRONG&gt; takes an incorrect password from&amp;nbsp;SecureAction ($sshRootPass), that is when&amp;nbsp;&lt;STRONG&gt;su: Authentication failure&lt;/STRONG&gt; happens.&lt;/P&gt;&lt;P&gt;I don't know how to manage this&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 19 May 2021 16:57:55 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Try-Catch-not-working-as-expected-for-Invoke/m-p/2847965#M101544</guid>
      <dc:creator>piercj2</dc:creator>
      <dc:date>2021-05-19T16:57:55Z</dc:date>
    </item>
    <item>
      <title>Try / Catch not working as expected for Invoke-SSHStreamExpectSecureAction</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Try-Catch-not-working-as-expected-for-Invoke/m-p/2847835#M101529</link>
      <description>&lt;P&gt;Hi, i'm trying to verify SSH and root credentials for multiple different systems.&lt;/P&gt;&lt;P&gt;The below script takes as input a .csv file containing the IP of the target systems and associated ssh and root credentials.&lt;/P&gt;&lt;P&gt;The output of the script is a second array, containing the verified Credentials, if any Password is incorrect, this is flagged in the array.&lt;/P&gt;&lt;P&gt;The Try/Catch below is not working as expected for privileged credentials, that is when an incorrect privileged mode password is entered, the expected "Incorrect privileged password passed" is not entered into the results array.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Function Check-Creds {&lt;BR /&gt;&amp;lt;#&lt;BR /&gt;.SYNOPSIS&lt;BR /&gt;Read text file containing System Manager Credentials and returns verify Credentials are working&lt;/P&gt;&lt;P&gt;.EXAMPLE&lt;BR /&gt;Check-Creds -Path C:\temp\list.csv&lt;BR /&gt;.NOTE&lt;BR /&gt;.csv file has the following column headings, VIP_FQDN,VIP_IP,Username,Password,RootUser,RootPass&lt;BR /&gt;#&amp;gt;&lt;/P&gt;&lt;P&gt;param(&lt;BR /&gt;[Parameter(Mandatory)]&lt;BR /&gt;[System.IO.FileInfo]$Path&lt;BR /&gt;)&lt;/P&gt;&lt;P&gt;If (!(Get-Module -ListAvailable Posh-SSH)) {&lt;BR /&gt;find-Module -Name Posh-SSH | Install-Module -Scope CurrentUser -Confirm:$false&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;If (!(Get-module -ListAvailable "ImportExcel")) {&lt;BR /&gt;Find-Module -Name ImportExcel | Install-Module -Scope CurrentUser&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;$systemMgmtArray = @()&lt;BR /&gt;$systemMgmtArray = Import-Csv $Path&lt;BR /&gt;$resultsArray = @()&lt;/P&gt;&lt;P&gt;$count = $systemMgmtArray | Measure-Object&lt;BR /&gt;$i = 1&lt;BR /&gt;&lt;BR /&gt;foreach ($item in $systemMgmtArray){&lt;BR /&gt;Write-Progress -Activity "Checking Credentials of System Managers" -Status "Working on $($item.VIP_FQDN)" -PercentComplete (($i*100)/$count.Count)&lt;/P&gt;&lt;P&gt;$resultsProperty = [ordered] @{&lt;BR /&gt;'VIP_FQDN'=$item.VIP_FQDN&lt;BR /&gt;'VIP_IP' = $item.VIP_IP&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;$sshTarget = $item.VIP_IP&lt;BR /&gt;$sshUsername = $item.Username&lt;BR /&gt;$password = $item.Password&lt;BR /&gt;$sshPassword = $password | ConvertTo-SecureString -AsPlainText -Force&lt;BR /&gt;$sshPassword.MakeReadOnly()&lt;BR /&gt;$sshCred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $sshUsername,$sshPassword&lt;BR /&gt;$sshCredential = Get-Credential -Credential $sshCred&lt;BR /&gt;$rootUser = $item.RootUser&lt;BR /&gt;$rootPass = $item.RootPass&lt;BR /&gt;$sshRootPass = $rootPass | ConvertTo-SecureString -AsPlainText -Force&lt;BR /&gt;$sshRootPass.MakeReadOnly()&lt;/P&gt;&lt;P&gt;Write-Host "Connecting to $($item.VIP_FQDN)"&lt;BR /&gt;$sshSession = New-SSHSession -ComputerName $item.VIP_IP -Credential $sshCredential -AcceptKey:$true&lt;/P&gt;&lt;P&gt;if ($sshSession.Connected -like "True") {&lt;BR /&gt;$resultsProperty.Add("Username",$sshUsername)&lt;BR /&gt;$resultsProperty.Add("Password",$password)&lt;BR /&gt;Write-Host "SSh session to $($item.VIP_FQDN) is connected, checking $($rootUser) credentials now"&lt;BR /&gt;try {&lt;BR /&gt;$sshStream = New-SSHShellStream -index $sshSession.SessionId&lt;BR /&gt;Invoke-SSHStreamExpectSecureAction -ShellStream $SSHStream -Command 'st en' -ExpectString "Password:" -SecureAction ($sshRootPass) -Verbose&lt;BR /&gt;$sshStream.read()&lt;BR /&gt;$sshStream.WriteLine("pwd")&lt;BR /&gt;Start-Sleep -Seconds 3&lt;BR /&gt;$sshStream.Read()&lt;BR /&gt;Start-Sleep -Seconds 3&lt;BR /&gt;&lt;BR /&gt;$resultsProperty.Add("RootUser",$rootUser)&lt;BR /&gt;$resultsProperty.Add("RootPass",$rootPass)&lt;BR /&gt;} catch {&lt;BR /&gt;$_.exception.Message&lt;BR /&gt;Write-Host "Unable to enter Privileged mode, incorrect $($item.RootUser) password supplied"&lt;BR /&gt;$resultsProperty.Add("RootUser",$rootUser)&lt;BR /&gt;$resultsProperty.Add("RootPass","Incorrect privileged password passed")&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;Write-Host " Disconnecting ssh session to $($item.VIP_FQDN) "&lt;BR /&gt;Remove-SSHSession -SessionId $sshSession.SessionId | Out-Null&lt;BR /&gt;Write-Host ""&lt;/P&gt;&lt;P&gt;} else {&lt;BR /&gt;Write-host "Password for $($item.VIP_FQDN) not working" -ForegroundColor Red&lt;BR /&gt;$_.exception.Message&lt;BR /&gt;$resultsProperty.Add("Username",$sshUsername)&lt;BR /&gt;$resultsProperty.Add("Password","Incorrect ssh Password")&lt;BR /&gt;$resultsProperty.Add("RootUser",$rootUser)&lt;BR /&gt;$resultsProperty.Add("RootPass","Unable to SSH so cannot check Privileged Password")&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;$resultsArray += New-Object -TypeName psobject -Property $resultsProperty&lt;BR /&gt;$i++&lt;BR /&gt;}&lt;BR /&gt;$resultsArray | Out-GridView&lt;BR /&gt;&lt;BR /&gt;$downloadsDir = "$HOME\Downloads"&lt;BR /&gt;if (Test-Path "$downloadsDir\Credential_Check.xlsx") {Remove-Item "$downloadsDir\Credential_Check.xlsx"}&lt;BR /&gt;$resultsArray | Export-Excel -Path "$downloadsDir\Credential_Check.xlsx"&lt;BR /&gt;Invoke-Item "$downloadsDir\Credential_Check.xlsx"&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Output from the above is&lt;/P&gt;&lt;P&gt;Connecting to &lt;A href="https://server1.acme.com" target="_blank"&gt;https://server1.acme.com&lt;/A&gt;&lt;BR /&gt;SSh session to &lt;A href="https://server1.acme.com" target="_blank"&gt;https://server1.acme.com&lt;/A&gt; is connected, checking root credentials now&lt;BR /&gt;VERBOSE: Executing command st en.&lt;BR /&gt;VERBOSE: Waiting for match.&lt;BR /&gt;VERBOSE: Matching by String.&lt;BR /&gt;VERBOSE: Executing action.&lt;BR /&gt;VERBOSE: Action has been executed.&lt;BR /&gt;True&lt;/P&gt;&lt;P&gt;pwd&lt;BR /&gt;su: Authentication failure&lt;BR /&gt;PC1RNNSXTNPROD02&amp;gt; pwd&lt;BR /&gt;% Command not found: pwd&lt;BR /&gt;server1&amp;gt;&lt;BR /&gt;Disconnecting ssh session to &lt;A href="https://server1.acme.com" target="_blank"&gt;https://server1.acme.com&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;With the result of "su: Authentication failure", I was expecting to drop out of the Try statement and for the Catch to be used.&lt;/P&gt;&lt;P&gt;What am I missing (not understanding) ?&lt;/P&gt;</description>
      <pubDate>Wed, 19 May 2021 08:34:38 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Try-Catch-not-working-as-expected-for-Invoke/m-p/2847835#M101529</guid>
      <dc:creator>piercj2</dc:creator>
      <dc:date>2021-05-19T08:34:38Z</dc:date>
    </item>
    <item>
      <title>Re: Insert Array contents into SQL DB</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Insert-Array-contents-into-SQL-DB/m-p/2315083#M83226</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Luc,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;one question to help my understanding if you don't mind.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in the Out-SQL Function,&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;I understand declaring the Parameters in the beginning&lt;/LI&gt;&lt;LI&gt;I understand the SQL Connection String variables&lt;/LI&gt;&lt;LI&gt;I don't understand the $output_* variables, as far as i can understand, they are not used/called anywhere ?&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output_Date = $VMinfo.Date&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output_vCenter = $VMinfo.vCenter&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output_Cluster = $VMinfo.Cluster&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can they be removed from the function or, am i totally missing their purpose ?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Sep 2020 11:44:44 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Insert-Array-contents-into-SQL-DB/m-p/2315083#M83226</guid>
      <dc:creator>piercj2</dc:creator>
      <dc:date>2020-09-29T11:44:44Z</dc:date>
    </item>
    <item>
      <title>Re: Insert Array contents into SQL DB</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Insert-Array-contents-into-SQL-DB/m-p/2315081#M83224</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Luc,&lt;/P&gt;&lt;P&gt;I don't understand the mechanics of what you did but, it worked for me&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 28 Sep 2020 20:02:46 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Insert-Array-contents-into-SQL-DB/m-p/2315081#M83224</guid>
      <dc:creator>piercj2</dc:creator>
      <dc:date>2020-09-28T20:02:46Z</dc:date>
    </item>
    <item>
      <title>Insert Array contents into SQL DB</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Insert-Array-contents-into-SQL-DB/m-p/2315079#M83222</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i realize that this is more a PowerShell question than PowerCLI but i've been trying to figure this our for a week now and am getting nowhere fast. Hoping someone on here may have done this already.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have an Array with basic VM information $VMinfo = @()&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" style="border: 1px solid rgb(198, 198, 198); width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;Date&lt;/TH&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;vCenter&lt;/TH&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;Cluster&lt;/TH&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;VM_Name&lt;/TH&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;IP Address&lt;/TH&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;PowerState&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 6px;"&gt;01/01/2020&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;MyVC1&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;MyCluster1&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;MyVMname1&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;1.1.1.1&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;PoweredOn&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 6px;"&gt;02/02/2020&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;MyVC1&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;MyCluster2&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;MyVMName2&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;2.2.2.2&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;PoweredOff&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 6px;"&gt;03/03/2020&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;MyVC2&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;AnotherCluster&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;AnotherVMname&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;3.3.3.3&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;PoweredOn&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 6px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With the below function, i can insert the data into a SQL Database but, everything goes in on a single row, i.e.&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" style="border: 1px solid rgb(198, 198, 198); width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;Date&lt;/TH&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;vCenter&lt;/TH&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;Cluster&lt;/TH&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;VM_Name&lt;/TH&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;IP_Address&lt;/TH&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;PowerState&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 6px;"&gt;01/01/2020 02/02/2020 03/03/2020&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;MyVC1 MyVC1 MyVC2&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;MyCluster1 MyCluster2 AnotherCluster&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;MyVMname1 MyVMname2 AnotherVMname&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;1.1.1.1 2.2.2.2 3.3.3.3 &lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;PoweredOn Power&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 6px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 6px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;function Out-SQL {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [CmdletBinding()]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output_Server = "MySQLserver.domain.com"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output_Database = "My_Database"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output_Username = "myUsername"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output_Password = "myPassword!" &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $Date = Get-Date&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output_vCenter = $VMinfo.vCenter&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output_Cluster = $VMinfo.Cluster&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output_VMname = $VMinfo.'VM Name'&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output_IP = $VMinfo.'IP Address'&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $output_PowerState = $VMinfo.PowerState&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $SQL_Property = "USE $output_Database&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT INTO [My_Database].[dbo].[VM_Info] (Date, vCenter, Cluster, VM_Name, IP_Address, PowerState)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VALUES('$Date', '$output_vCenter', '$output_Cluster', '$output_VMname', '$output_IP', '$output_PowerState');"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #echo $SQL_Property&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $SQL_Property_Insert = Invoke-Sqlcmd -Query $SQL_Property -ServerInstance $output_Server -Username $output_Username -Password $output_Password &lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;$VMinfo | OUT_SQL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #e23d39;"&gt;&lt;STRONG&gt;While this gets the data into SQL, the formatting of the table is bad. So i tried the following&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;$SQL_Info = $VMinfo&lt;/P&gt;&lt;P&gt;$Connection = New-Object System.Data.SQLClient.SQLConnection&lt;/P&gt;&lt;P&gt;$Connection.ConnectionString = "server='$SQL_Server';database='$SQL_Database';user=$SQL_Username;password=$SQL_Password"&lt;/P&gt;&lt;P&gt;$Connection.Open()&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;$command = New-Object System.Data.SqlClient.SqlCommand&lt;/P&gt;&lt;P&gt;$command.connection = $Connection&lt;/P&gt;&lt;P&gt;for($r=0; $r -lt $SQL_Info.Length; $r++){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [datetime]$Date = (Get-Date).ToString($TimeTormat)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $vCenter = $SQL_Info[$r].vCenter&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $Cluster = $SQL_Info[$r].Cluster&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $VM_Name = $SQL_Info[$r].'VM Name'&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $IP_Address = $SQL_Info[$r].'IP Address'&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $PowerState = $SQL_Info[$r].PowerState&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $SQL_Info_Query = "USE $SQL_Database&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT INTO [My_Database].[dbo].[VM_Info] (Date, vCenter, Cluster, VM_Name, IP_Address, PowerState)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VALUES('$Date', '$vCenter', '$Cluster', '$VM_Name', '$IP_Address', '$PowerState');"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $command.CommandText = $SQL_Info_Query&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $command.ExecuteNonQuery()&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The above just throws errors but, i think i need to break the array down row-by-row, treat each row as a PowerShell Custom Object and, add the properties of each object to the database, i.e Date, vCenter, Cluster, VM_Name, IP_Address &amp;amp; PowerState.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Has anyone done this or, able to offer any suggestions as to how if can complete it ?&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 28 Sep 2020 15:38:36 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Insert-Array-contents-into-SQL-DB/m-p/2315079#M83222</guid>
      <dc:creator>piercj2</dc:creator>
      <dc:date>2020-09-28T15:38:36Z</dc:date>
    </item>
    <item>
      <title>Re: Create new array from existing array data</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Create-new-array-from-existing-array-data/m-p/2293997#M81037</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Luc, that worked perfectly&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Sep 2020 12:00:02 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Create-new-array-from-existing-array-data/m-p/2293997#M81037</guid>
      <dc:creator>piercj2</dc:creator>
      <dc:date>2020-09-03T12:00:02Z</dc:date>
    </item>
    <item>
      <title>Re: Create new array from existing array data</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Create-new-array-from-existing-array-data/m-p/2293995#M81035</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;that's really close but, if the conditions are met, i.e.&amp;nbsp; PowerState=PoweredOff and Status=Decommissioned, that entire row is copied from $bigList to $smallList.&lt;/P&gt;&lt;P&gt;I'm trying to include only specific columns in $smallList. e.g. VMName and PowerState or, VMName and Status&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've tried&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #777777;"&gt;$&lt;/SPAN&gt;&lt;SPAN style="color: #7a3e9d;"&gt;smallList&lt;/SPAN&gt; &lt;SPAN style="color: #777777;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="color: #4b69c6;"&gt;@&lt;/SPAN&gt;&lt;SPAN style="color: #777777;"&gt;($&lt;/SPAN&gt;&lt;SPAN style="color: #7a3e9d;"&gt;bigList.Where&lt;/SPAN&gt;&lt;SPAN style="color: #777777;"&gt;({$&lt;/SPAN&gt;&lt;SPAN style="color: #7a3e9d;"&gt;_.PowerState&lt;/SPAN&gt; &lt;SPAN style="color: #777777;"&gt;-match&lt;/SPAN&gt; &lt;SPAN style="color: #777777;"&gt;'&lt;/SPAN&gt;&lt;SPAN style="color: #448c27;"&gt;PoweredOff&lt;/SPAN&gt;&lt;SPAN style="color: #777777;"&gt;'&lt;/SPAN&gt; &lt;SPAN style="color: #777777;"&gt;-and&lt;/SPAN&gt; &lt;SPAN style="color: #777777;"&gt;$&lt;/SPAN&gt;&lt;SPAN style="color: #7a3e9d;"&gt;_.Status&lt;/SPAN&gt; &lt;SPAN style="color: #777777;"&gt;-match&lt;/SPAN&gt; &lt;SPAN style="color: #777777;"&gt;'&lt;/SPAN&gt;&lt;SPAN style="color: #448c27;"&gt;Decommissioned&lt;/SPAN&gt;&lt;SPAN style="color: #777777;"&gt;'&lt;/SPAN&gt;&lt;SPAN style="color: #777777;"&gt;}))&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #777777;"&gt;$&lt;/SPAN&gt;&lt;SPAN style="color: #7a3e9d;"&gt;smallList&lt;/SPAN&gt; &lt;SPAN style="color: #777777;"&gt;| select $smallList.VMname, $smallList.PowerState&lt;/SPAN&gt; &lt;SPAN style="color: #aa3731; font-weight: bold;"&gt;Export-Csv&lt;/SPAN&gt; &lt;SPAN style="color: #777777;"&gt;-&lt;/SPAN&gt;Path c:\Temp\smallList.csv&lt;/P&gt;&lt;P&gt;but it fails&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've also tried&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #777777;"&gt;$&lt;/SPAN&gt;&lt;SPAN style="color: #7a3e9d;"&gt;smallList&lt;/SPAN&gt; &lt;SPAN style="color: #777777;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="color: #4b69c6;"&gt;@&lt;/SPAN&gt;&lt;SPAN style="color: #777777;"&gt;($&lt;/SPAN&gt;&lt;SPAN style="color: #7a3e9d;"&gt;bigList.Where&lt;/SPAN&gt;&lt;SPAN style="color: #777777;"&gt;({$&lt;/SPAN&gt;&lt;SPAN style="color: #7a3e9d;"&gt;_.PowerState&lt;/SPAN&gt; &lt;SPAN style="color: #777777;"&gt;-match&lt;/SPAN&gt; &lt;SPAN style="color: #777777;"&gt;'&lt;/SPAN&gt;&lt;SPAN style="color: #448c27;"&gt;PoweredOff&lt;/SPAN&gt;&lt;SPAN style="color: #777777;"&gt;'&lt;/SPAN&gt; &lt;SPAN style="color: #777777;"&gt;-and&lt;/SPAN&gt; &lt;SPAN style="color: #777777;"&gt;$&lt;/SPAN&gt;&lt;SPAN style="color: #7a3e9d;"&gt;_.Status&lt;/SPAN&gt; &lt;SPAN style="color: #777777;"&gt;-match&lt;/SPAN&gt; &lt;SPAN style="color: #777777;"&gt;'&lt;/SPAN&gt;&lt;SPAN style="color: #448c27;"&gt;Decommissioned&lt;/SPAN&gt;&lt;SPAN style="color: #777777;"&gt;' select $_.'VM Name', $_.'CI Status'&lt;/SPAN&gt;&lt;SPAN style="color: #777777;"&gt;}))&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #777777;"&gt;$&lt;/SPAN&gt;&lt;SPAN style="color: #7a3e9d;"&gt;smallList&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #777777;"&gt;| select $smallList.VMname, $smallList.PowerState&lt;/SPAN&gt; &lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #aa3731; font-weight: bold;"&gt;Export-Csv&lt;/SPAN&gt; &lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #777777;"&gt;-&lt;/SPAN&gt;Path c:\Temp\smallList.csv&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But that REALLY fails&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Sep 2020 21:29:49 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Create-new-array-from-existing-array-data/m-p/2293995#M81035</guid>
      <dc:creator>piercj2</dc:creator>
      <dc:date>2020-09-02T21:29:49Z</dc:date>
    </item>
    <item>
      <title>Create new array from existing array data</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Create-new-array-from-existing-array-data/m-p/2293993#M81033</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have an array, $bigList = @()&lt;/P&gt;&lt;P&gt;it contains for example&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" style="border: 1px solid #c6c6c6; width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;VMname&lt;/TH&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;PowerState&lt;/TH&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;Owner&lt;/TH&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;Status&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 6px;"&gt;MyServer1&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;PoweredOn&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;J.Bloggs&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;Installed&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 6px;"&gt;MyServer2&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;PoweredOff&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;M.Smythe&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;Decommissioned&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 6px;"&gt;MyServer3&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;PoweredOff&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;M.Smythe&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;Installed&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want to create a second array if PowerState=PoweredOff and Status=Decommissioned&lt;/P&gt;&lt;P&gt;The second Array contents will be output as a .CSV&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What i've come up with is&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;$smallList = @()&lt;/P&gt;&lt;P&gt;foreach ($row in $bigList){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(($bigList.PowerState -match 'PoweredOff') and ($bigList.Status -match 'Decommissioned)){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $smallListProperty = [ordered] @{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'VM Name' = $bigList.VMname&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Owner' = $bigList.Owner&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $smallList += new-object -TypeName psobject -Property $smallListProperty&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;$smallList | export-CSV -path c:\Temp\smallList.csv&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It kind of works but the output i'm getting is&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" style="border: 1px solid #c6c6c6; width: 100%;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;VM Name&lt;/TH&gt;&lt;TH style="text-align: left; background-color: #f2f2f2; color: #505050; padding: 6px;" valign="middle"&gt;Owner&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 6px;"&gt;System.Object[]&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;System.Object[]&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 6px;"&gt;&lt;/TD&gt;&lt;TD style="padding: 6px;"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Sep 2020 17:22:20 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Create-new-array-from-existing-array-data/m-p/2293993#M81033</guid>
      <dc:creator>piercj2</dc:creator>
      <dc:date>2020-09-02T17:22:20Z</dc:date>
    </item>
    <item>
      <title>Re: Hash Table not working for one vCenter</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Hash-Table-not-working-for-one-vCenter/m-p/2291165#M80678</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;That fixed the issue, thanks Luc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I replaced&lt;/P&gt;&lt;P&gt;function &lt;SPAN style="color: #408c52;"&gt;&lt;STRONG&gt;Get-vraDetails&lt;/STRONG&gt;&lt;/SPAN&gt; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;if ($script:target.customFields.Item("vrmManagedMachine")) {&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:vmProperty.Add("Attribute: vRA Managed","True")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:vmProperty.Add("Attribute: vRA Owner", $script:target.customFields.Item("VRM Owner"))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:vmProperty.Add("Attribute: vRA Managed","False")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:vmProperty.Add("Attribute: vRA Owner", "")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #eb7a3d;"&gt;&lt;STRONG&gt;$script:vm_Found_YES += New-Object -TypeName psobject -Property $Script:vmProperty&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;with&lt;/P&gt;&lt;P&gt;function &lt;SPAN style="color: #408c52;"&gt;&lt;STRONG&gt;Get-vraDetails&lt;/STRONG&gt;&lt;/SPAN&gt; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;if ($script:target.customFields.ContainsKey("vrmManagedMachine")) {&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:vmProperty.Add("Attribute: vRA Managed","True")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:vmProperty.Add("Attribute: vRA Owner", $script:target.customFields.Item("VRM Owner"))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:vmProperty.Add("Attribute: vRA Managed","False")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:vmProperty.Add("Attribute: vRA Owner", "")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;No more errors on the Script and it successfully runs across all vCenters, even on vCenters where the VM's don't contain these two attributes&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Sep 2020 09:33:13 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Hash-Table-not-working-for-one-vCenter/m-p/2291165#M80678</guid>
      <dc:creator>piercj2</dc:creator>
      <dc:date>2020-09-01T09:33:13Z</dc:date>
    </item>
    <item>
      <title>Re: Hash Table not working for one vCenter</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Hash-Table-not-working-for-one-vCenter/m-p/2291163#M80676</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;My first attempt was failing because i am using VM Attributes that don't exist for every VM inside of a TRY/CATCH Statement.&lt;/P&gt;&lt;P&gt;My issue, i need to check for these Attributes on all VM's.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;QUESTION 1&lt;/SPAN&gt;: How can i do it inside a TRY/CATCH without breaking the script ? (below is my attempt at a solution but still breaks the script)&lt;/P&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;QUESTION 2&lt;/SPAN&gt;: why is &lt;SPAN style="color: #eb7a3d;"&gt;&lt;STRONG&gt;$script:vm_Found_YES += New-Object -TypeName psobject -Property $Script:vmProperty&lt;/STRONG&gt;&lt;/SPAN&gt; not adding to the $script:vm_Found_YES&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;function &lt;SPAN style="color: #408c52;"&gt;&lt;STRONG&gt;Get-vraDetails&lt;/STRONG&gt;&lt;/SPAN&gt; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ($script:target.customFields.Item("vrmManagedMachine")) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:vmProperty.Add("Attribute: vRA Managed","True")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:vmProperty.Add("Attribute: vRA Owner", $script:target.customFields.Item("VRM Owner"))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:vmProperty.Add("Attribute: vRA Managed","False")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:vmProperty.Add("Attribute: vRA Owner", "")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #eb7a3d;"&gt;&lt;STRONG&gt;$script:vm_Found_YES += New-Object -TypeName psobject -Property $Script:vmProperty&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;function Main {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:vm_Found_YES =@()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $vm_Found_NO = @()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$isVRAmanaged = @()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $targetList = get-content $Script:file&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $count = $targetList | Measure-Object -Line&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $i = 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $dir = $Script:directory&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $vm_Found_YES_ReportPath = $Script:directory + "\" + $script:appName + "-FoundReport-" + (Get-Date -Format yyyy-MMM-dd-HHmm) + ".xlsx"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $vm_Found_NO_ReportPath = $Script:directory + "\" + $script:appName + "-NotFoundReport-" + (Get-Date -Format yyyy-MMM-dd-HHmm) + ".xlsx"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$isVRAmanaged_ReportPath = $Script:directory + "\" + $script:appName + "-isVRAManaged-" + (Get-Date -Format yyyy-MMM-dd-HHmm) + ".xlsx"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach ($line in $targetList){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Progress -Activity "Collecting details on provided VMs" -Status "Working on $line" -PercentComplete (($i*100)/$count.Lines)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; write-host "inside TRY, working on $line"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:target = Get-VM $line -ErrorAction SilentlyContinue&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $powerState = $script:target.PowerState&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ip = $script:target.guest.IPAddress[0]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $memory = $script:target.memoryGB&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $hddSize = [math]::Round(((Get-HardDisk -VM $script:target).CapacityGB | Measure-Object -Sum).Sum)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$vraManaged = $script:target.customFields.Item("vrmManagedMachine")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #$vraOwner = $script:target.customFields.Item("VRM Owner")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:vmProperty = [ordered] @{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'vCenter' = $script:target.Uid.Split('@')[1].Split(':')[0]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Cluster' = $script:target.VMHost.Parent.Name&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'VM Name' = $script:target.Name&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'IP Address' = $ip&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'PowerState' = $powerState&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Memory (GB)' = $memory&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Disk Capacity (GB)' = $hddSize&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'Attribute: vRA Managed' = if ($vraManaged) {"True"} else {"False"}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #'Attribute: vRA Owner' = $vraOwner&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #408c52;"&gt;&lt;STRONG&gt;Get-vraDetails&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:vm_Found_YES += New-Object -TypeName psobject -Property $Script:vmProperty&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "inside CATCH working on $line"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:notFound = [ordered] @{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'VM Name' = $line&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'VM Exists' = "NO"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host -ForegroundColor Red "$line does not exist on the vCenter being searched"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $vm_Found_NO += New-Object -TypeName psobject -Property $script:notFound&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $i++&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:vm_Found_YES | Sort-Object -Property 'VM Name' | Export-Excel -Path $vm_Found_YES_ReportPath -AutoFilter -AutoSize -TableStyle Light2 -Show &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ($vm_Found_NO){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $vm_Found_NO | Export-Excel -Path $vm_Found_NO_ReportPath -AutoFilter -AutoSize -TableStyle Light3 -Show &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 31 Aug 2020 16:27:50 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Hash-Table-not-working-for-one-vCenter/m-p/2291163#M80676</guid>
      <dc:creator>piercj2</dc:creator>
      <dc:date>2020-08-31T16:27:50Z</dc:date>
    </item>
    <item>
      <title>Re: Hash Table not working for one vCenter</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Hash-Table-not-working-for-one-vCenter/m-p/2291162#M80675</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;removing the TRY/CATCH highlighted the issue.&lt;/P&gt;&lt;P&gt;It was the following variables&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;$vraManaged = $script:target.customFields.Item("vrmManagedMachine")&lt;/P&gt;&lt;P&gt;$vraOwner = $script:target.customFields.Item("VRM Owner")&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;These attributes don't exist on all VM's in the environment.&lt;/P&gt;&lt;P&gt;Because they aren't present in the VM's in this particular vCenter, the $script:vmProperty Hash Table wasn't getting populated. As a result, the output wasn't as expected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now, i need to figure out how to account for these variables if present and, skip them cleanly if not present&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 31 Aug 2020 12:59:44 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Hash-Table-not-working-for-one-vCenter/m-p/2291162#M80675</guid>
      <dc:creator>piercj2</dc:creator>
      <dc:date>2020-08-31T12:59:44Z</dc:date>
    </item>
    <item>
      <title>Re: Hash Table not working for one vCenter</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Hash-Table-not-working-for-one-vCenter/m-p/2291161#M80674</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks but same result with changing that&lt;/P&gt;&lt;P&gt;I even removed the -errorAction but, same result.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the script is reaching the CATCH, from the output i see&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;inside TRY, working on jasontst01&lt;/P&gt;&lt;P&gt;inside CATCH working on jasontst01&lt;/P&gt;&lt;P&gt;jasontst01 does not exist on the vCenter being searched&lt;/P&gt;&lt;P&gt;inside TRY, working on jasontst011111111&lt;/P&gt;&lt;P&gt;inside CATCH working on jasontst011111111&lt;/P&gt;&lt;P&gt;jasontst011111111 does not exist on the vCenter being searched&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the thing is, jasontst01 does exist so it should not reach the CATCH for this VM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;a normal get-vm on jasontst01 works as expected&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i'll remove the TRY / CATCH and see what errors it displays&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 31 Aug 2020 12:44:14 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Hash-Table-not-working-for-one-vCenter/m-p/2291161#M80674</guid>
      <dc:creator>piercj2</dc:creator>
      <dc:date>2020-08-31T12:44:14Z</dc:date>
    </item>
    <item>
      <title>Re: Hash Table not working for one vCenter</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Hash-Table-not-working-for-one-vCenter/m-p/2291159#M80672</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I did, the defined variables are below&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;$script:vm_Found_YES =@()&lt;/P&gt;&lt;P&gt;$vm_Found_NO = @()&lt;/P&gt;&lt;P&gt;$isVRAmanaged = @()&lt;/P&gt;&lt;P&gt;$targetList = get-content $Script:file &lt;/P&gt;&lt;P&gt;$count = $targetList | Measure-Object -Line&lt;/P&gt;&lt;P&gt;$i = 1&lt;/P&gt;&lt;P&gt;$dir = $Script:directory&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;$vm_Found_YES_ReportPath = $Script:directory + "\" + $script:appName + "-FoundReport-" + (Get-Date -Format yyyy-MMM-dd-HHmm) + ".xlsx"&lt;/P&gt;&lt;P&gt;$vm_Found_NO_ReportPath = $Script:directory + "\" + $script:appName + "-NotFoundReport-" + (Get-Date -Format yyyy-MMM-dd-HHmm) + ".xlsx"&lt;/P&gt;&lt;P&gt;$isVRAmanaged_ReportPath = $Script:directory + "\" + $script:appName + "-isVRAManaged-" + (Get-Date -Format yyyy-MMM-dd-HHmm) + ".xlsx"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As mentioned though, this works for 99% of my VCSA's.&lt;/P&gt;&lt;P&gt;it's just one where it doesn't work as expected. i don't think it's a script issue but i've no idea why the hash table remains empty for that one VCSA.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 31 Aug 2020 11:46:52 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Hash-Table-not-working-for-one-vCenter/m-p/2291159#M80672</guid>
      <dc:creator>piercj2</dc:creator>
      <dc:date>2020-08-31T11:46:52Z</dc:date>
    </item>
    <item>
      <title>Hash Table not working for one vCenter</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Hash-Table-not-working-for-one-vCenter/m-p/2291157#M80670</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've the below script that works across a range of vCenters, except for one.&lt;/P&gt;&lt;P&gt;All vCenters are VCSA 6.5.0.32400&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I realize this probably isn't a PowerCLI question but, don't understand why the script will not work when run on this one VCSA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;foreach ($line in $targetList){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Progress -Activity "Collecting details on provided VMs" -Status "Working on $line" -PercentComplete (($i*100)/$count.Lines)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; write-host "inside TRY, working on $line"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:target = Get-VM $line -ErrorAction SilentlyContinue&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $powerState = $script:target.PowerState&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ip = $script:target.guest.IPAddress[0]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $memory = $script:target.memoryGB&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $hddSize = [math]::Round(((Get-HardDisk -VM $script:target).CapacityGB | Measure-Object -Sum).Sum)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $vraManaged = $script:target.customFields.Item("vrmManagedMachine")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $vraOwner = $script:target.customFields.Item("VRM Owner")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:vmProperty = [ordered] @{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'vCenter' = $script:target.Uid.Split('@')[1].Split(':')[0]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Cluster' = $script:target.VMHost.Parent.Name&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'VM Name' = $script:target.Name&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'IP Address' = $ip&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'PowerState' = $powerState&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Memory (GB)' = $memory&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Disk Capacity (GB)' = $hddSize&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Attribute: vRA Managed' = if ($vraManaged) {"True"} else {"False"}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Attribute: vRA Owner' = $vraOwner&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:vm_Found_YES += New-Object -TypeName psobject -Property $Script:vmProperty&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $i++&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "inside CATCH working on $line"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $script:notFound = [ordered] @{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'VM Name' = $line&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'VM Exists' = "NO"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host -ForegroundColor Red "$line does not exist on the vCenter being searched"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $vm_Found_NO += New-Object -TypeName psobject -Property $script:notFound&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;$script:vm_Found_YES | Sort-Object -Property 'VM Name' | Export-Excel -Path $vm_Found_YES_ReportPath -AutoFilter -AutoSize -TableStyle Light2 -Show &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;if ($vm_Found_NO){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $vm_Found_NO | Export-Excel -Path $vm_Found_NO_ReportPath -AutoFilter -AutoSize -TableStyle Light3 -Show &lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can confirm that the VM's in the $targetList do exist on this particular vCenter.&lt;/P&gt;&lt;P&gt;When outputting the contents of the variables, they are all populated except for the $script:vmProperty hashtable, which is blank.&lt;/P&gt;&lt;P&gt;For the output of this script, i would expect the $script:vm_Found_YES to ve exported to Excel and, have all the relevant fields populated. Instead, it opens as an empty spreadsheet.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the $vm_Found_NO on the other hand is populated with the VM Names. Even though these VM's do exist in this VCSA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As i've said, this script works as expected across a lot of other 6.5 VCSA's. Just one is giving this issue and i can't figure it out.&lt;/P&gt;&lt;P&gt;I thought it may be the Inventory Service on the VCSA but, all variables except the Hash table are populated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 31 Aug 2020 10:58:48 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Hash-Table-not-working-for-one-vCenter/m-p/2291157#M80670</guid>
      <dc:creator>piercj2</dc:creator>
      <dc:date>2020-08-31T10:58:48Z</dc:date>
    </item>
    <item>
      <title>Re: Delete VM's and output results - PART 2</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Delete-VM-s-and-output-results-PART-2/m-p/1864820#M64053</link>
      <description>&lt;P&gt;deleted&lt;/P&gt;</description>
      <pubDate>Tue, 24 May 2022 20:51:26 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Delete-VM-s-and-output-results-PART-2/m-p/1864820#M64053</guid>
      <dc:creator>piercj2</dc:creator>
      <dc:date>2022-05-24T20:51:26Z</dc:date>
    </item>
  </channel>
</rss>

