Open ajohn24 opened 10 years ago
This is with vCheck6
I am seeing similar errors as well after running the latest download on three different environments. I can't tell what exactly is going on but the errors seem to go away if I disable 44 VMKernel Warnings.
Here are some of the errors I am seeing:
Get-HardDisk : 6/13/2014 4:44:37 PM Get-HardDisk The underlying
connection was closed: Could not establish trust relationship for the SSL/TLS
secure channel.
At E:\Scripts\vCheck\vcenter\Plugins\48 Find VM Disk Format.ps1:6 char:23
- CategoryInfo : NotSpecified: (:) [Get-HardDisk], ViError
- FullyQualifiedErrorId : Client20_QueryServiceImpl_RetrievePropertiesEx_V
iError,VMware.VimAutomation.ViCore.Cmdlets.Commands.VirtualDevice.GetHardD
isk
Get-View : 6/13/2014 4:44:42 PM Get-View The underlying connection
was closed: Could not establish trust relationship for the SSL/TLS secure
channel.
At E:\Scripts\vCheck\vcenter\Plugins\53 Hardware status
warnings-errors.ps1:6 char:20
- CategoryInfo : NotSpecified: (:) [Get-View], VimException
- FullyQualifiedErrorId : Core_BaseCmdlet_UnknownError,VMware.VimAutomatio
n.ViCore.Cmdlets.Commands.DotNetInterop.GetVIView
Get-View : 6/13/2014 4:44:42 PM Get-View View with Id
'HostHealthStatusSystem-healthStatusSystem-10' was not found on the server(s).
At E:\Scripts\vCheck\vcenter\Plugins\53 Hardware status warnings-errors.ps1:6 char:20
- CategoryInfo : ObjectNotFound: (:) [Get-View], VimException
- FullyQualifiedErrorId : Core_GetView_WriteNotFoundError,VMware.VimAutoma
tion.ViCore.Cmdlets.Commands.DotNetInterop.GetVIView
get-view : 6/13/2014 4:44:44 PM Get-View The underlying connection
was closed: Could not establish trust relationship for the SSL/TLS secure
channel.
At E:\Scripts\vCheck\vcenter\Plugins\63 Snapshot Removed.ps1:13 char:12
- CategoryInfo : NotSpecified: (:) [Get-View], VimException
- FullyQualifiedErrorId : Core_BaseCmdlet_UnknownError,VMware.VimAutomatio
n.ViCore.Cmdlets.Commands.DotNetInterop.GetVIView
get-view : 6/13/2014 4:44:44 PM Get-View The underlying connection
was closed: Could not establish trust relationship for the SSL/TLS secure
channel.
At E:\Scripts\vCheck\vcenter\Plugins\65 Snapshot Created.ps1:13 char:12
- CategoryInfo : NotSpecified: (:) [Get-View], VimException
- FullyQualifiedErrorId : Core_BaseCmdlet_UnknownError,VMware.VimAutomatio
n.ViCore.Cmdlets.Commands.DotNetInterop.GetVIView
get-stat : 6/13/2014 4:44:44 PM Get-Stat The underlying connection
was closed: Could not establish trust relationship for the SSL/TLS secure
channel.
At E:\Scripts\vCheck\vcenter\Plugins\68 Disk Max Total Latency.ps1:12
char:29
- CategoryInfo : NotSpecified: (:) [Get-Stat], ViError
- FullyQualifiedErrorId : Client20_QueryServiceImpl_RetrievePropertiesEx_V
iError,VMware.VimAutomation.ViCore.Cmdlets.Commands.GetViStats
Get-VirtualPortGroup : 6/13/2014 4:44:47 PM Get-VirtualPortGroup The
underlying connection was closed: Could not establish trust relationship for
the SSL/TLS secure channel.
At E:\Scripts\vCheck\vcenter\Plugins\98 vSwitch Security.ps1:63 char:7
- CategoryInfo : NotSpecified: (:) [Get-VirtualPortGroup], ViErro
r
- FullyQualifiedErrorId : Client20_QueryServiceImpl_RetrievePropertiesEx_V
iError,VMware.VimAutomation.ViCore.Cmdlets.Commands.Host.GetVirtualPortGro
up
As mentioned previously, if I remove/disable 44 VMKernel Warnings then I get no errors at all. Oddly I can not find anything special about the plugin or why it is now causing issues.
For others that have seen issues - can you disable/remove 44 VMKernel Warnings and see if you are still having issues?
If you have a large environment, seeing errors is not super easy via the console, it's better to pipe them to a file for easy reading - this can be done like so: PS> .\vCheck.ps1 *> output.txt
For those curious, my setup in all three environments: PowerShell v3 PowerCLI 5.5 R2 vSphere 5.5 Update 1
I'm getting some really odd/inconsistent results on this. The issue seems to come and go for no apparent reason (that I can tell). It may create errors 4 runs in a row and then run fine the next 3 runs. Disabling 44 VMKernel Warnings does seem to help but I can't seem to figure out why that plugin would cause any issues. I ran a few tests this morning to see if the vCenter server is actually disconnecting and in my case it is apparently not (write-host $global:DefaultVIServer prior to running each plugin). The size of the environment doesn't seem to come into play - same results on >500 VMs as <20 VMs. I did try the latest release build (6.20) and did not see any issues so it appears the issue has arose since then. The latest dev build will error 99% of the time on first run. For testing I am using a fresh download, changing 3 lines in GlobalVariables (Setup $false, vCenter address, SendEmail $false) and then running.
I'm stumped...may need to call in the big dogs...
Our environment looks like: Powershell v2 VMware vSphere PowerCLI 5.0 vSphere 5.1U2
Admins, any updates?
BTW, the solution to disable vmkernel warning plugin does not apply since I have the plugin already disabled. And I still fail to understand how disabling the plugin would sort this issue.
I tried running it again and this time it is stuck on calculating VM CPU usage. Last time also I had to kill and re-run the script while it was stuck on calculating VM CPU ready%. SO there is more than one thing which needs attention.
10:00:02 PM ..start calculating VM CPU %RDY by Alan Renouf v1.1 [35 of 84] 10:14:57 PM ..finished calculating VM CPU %RDY by Alan Renouf v1.1 [35 of 84] 10:14:57 PM ..start calculating VM CPU Usage by Alan Renouf, Sam McGeown v1.3 [36 of 84] Killed on 11:17P.M
Looks like this is a .net issue, I'm wondering if there is some way to reinstall .net 3.5 or fix it?
Have you tried running the script from a different machine?
I'll try re-installing .net today and update. Will try on a different machine too and see if it works.
My results are crazy inconsistent. So far with todays build, I am not able to produce any errors. Nor is my older build producing errors any longer... Is it crazy to think I just needed a reboot? I dunno
For datastore information plugin, can we ignore alerts for a array of datastore. I wanted to use wildcards but it is not working $DatastoreIgnore ="local"
@ajohn24 - the variable is regex (-notmatch) - please open a new issue for this if you are still having issues
vCheck fail - I am still seeing these disconnect/ssl (?) issues with the latest dev version. I can not figure out what the issue is, it seems adding/removing plugins sometimes helps but not always. Multiple environments so I don't think it's a one off thing. The latest build release (6.20) has no issues so as far as I can tell, something has been introduced that is causing the issues.
Can someone else grab a fresh copy and do some testing? I'd like to figure out where the issue is but need some more testers.
Bump...
Is anyone else able to get the latest dev version to run consistently in their environment? I've tried four different environments now and all will bomb out with SSL/Disconnect errors. The errors appear in different plugins, at different times, even within the same environment. It's a very odd situation to say the least...
I've been running the latest dev copy for the last couple of days now, and not been able to replicate this fault :\ No matter what plugins I throw at it, I haven't had any SSL/Disconnect errors- including running with every plugin enabled.
Win7 x64 Powershell 2.0 PowerCLI 5.5.0.6316 vCenter 5.1 U1b
HI, i wanted to inform you that I also have this problem that occurs in a random. First I tested the latest version of vcheck Sphere on the following environment: W7 32 bit Powershell 4 PowerCLI 5.5 R2 patch1.
Now I've changed environment: Windows Server 2012 R2 Powershell 4 PowerCLI 5.5 R2 patch1 8 GB RAM
In both environments the error occurs.
Hi, I have the same issue when I don't have enough free memory. I have a very large environment, and when no free RAM is available, the script hang and all i can do is disconnecting from vcenter Disconnect-VIServer -Force:$true -Confirm:$false Then, I kill some other programs, close my powershell script and relaunch vCheck. I don't have another solution :
Hello All,
I have used previous version of this script in the past and love it. I think the last version I used was 5, maybe older... Lots of great improvements to the current.. Thanks all.
My Env details: ~20 ESXi server ~600 VM's
Workstation Specs: Running vCheck: 6.23-alpha-1 PowerCLI 5.5 Realse 2 Patch 1 Powershell v3 Win7 x64 i7 w/ 24gb memory Win7 x64 i5 w/ 4gb mem...
I've only got this script working once with emailing me the results etc. All other times I get the error we are talking about and the script dies and never emails me. The only time the script worked for me It took 57min; Not sure if thats normal or not.
I have run many scripts via PowerCLI in the past and have never seen this error message like everyone else is seeing.. I did find another website that suggested some solutions, I have not tried myself but its worth trying... I will prolly test out the suggested solutions soon. Link here: http://d-fens.ch/2013/12/20/nobrainer-ssl-connection-error-when-using-powershell/
Anything else I can do to provide more info, or testing please let me know. Here's some screenshots.... The first shows the error after going through many plugins, the second shows the error while its in the middle of parsing thru VM's... Maybe yall can get more info from the screenshots... The last screenshot shows an error sending the email... wtf...
Hey @kernelphr34k,
To make troubleshooting easier for the plugins that return an error I suggest you run them seperately using the -Job parameter. Check out the documentation on the [vCheck wiki](../wiki/Job XML Specification).
Make sure to always include the following plugins:
00 Connection Plugin for vCenter.ps1
99 VeryLastPlugin Used to Disconnect.ps1
The error with the 'Sending Email' plugin looks like a problem with the number of parameters used to run the plugin. This could be a problem with your GlobalVariables file.
Thank you @rkleijwegt I will look into it.
This link works btw: https://github.com/alanrenouf/vCheck-vSphere/wiki/Job-XML-Specification
I suspect this disconnection issue is related to memory usage- the few times I've been able to replicate it have been when Powershell is using a lot of memory.
As for the email failure, try the suggestion from @rkleijwegt- it may be related to the other issues, or give more information than a fairly generic exception.
Yeah, I'm still learning how to use those fancy GitHub markdown codes. Fixed the link now. :smile:
@Sneddo What is considered high memory usage? If one of my machines has 24gb of memory it should not matter how much is used unless there is some Powershell limitations? You would think I would see a System.OutOfMemoryException error or something like it if it was a memory usage issue. Seeing a connection issue is weird imho....
I have been testing using @rkleijwegt suggestion but seeing another error about the given path's format is not supported as well as sending email issues.... Hope the screenshot helps...
Here is my job XML file:
<vCheck>
<globalVariables>GlobalVariables.ps1</globalVariables>
<plugins path="C:\scripts\vCheck-vSphere-master\Plugins">
<plugin>\00 Initialize\00 Connection Plugin for vCenter.ps1</plugin>
<plugin>\00 Initialize\01 General Information.ps1</plugin>
<plugin>\80 Finish\999 VeryLastPlugin Used to Disconnect.ps1</plugin>
</plugins>
</vCheck>```
Don't get it.... should not be this difficult... :(
@rkleijwegt hah, its ok.... I have never needed a github account till now, so learning myself. Thanks!
It appears as though it doesn't like the $Filename variable and then everything bombs out from there (cascading errors). Are you using the OutputPath parameter when running the script? If not, the script attempts to create an htm file in $Env:TEMP - any issues creating a file there manually?
[workaround] Have you tried sending as HTML (not as an attachment)? In GlobalVariables.ps1: $SendAttachment = $false
Hello @smasterson Not sure if I should have started a new thread or what.. I apologize if I should...
I have never used the OutputPath parameter. It should be sending out an html file as an attachment. No issues with $Env:TEMP can read/write there no issues.. there's other temp files there at the minute.
I tried to use the outputpath parameter and it seems to have worked (there is an html file in my output path), but still failed to send an email with the following settings:
I tried again without using the outputpath parameter and $SendAttachment = $false and got the following error:
@kernelphr34k I was seeing those disconnects when Powershell was using 1.5-2GB of memory. I agree that it seems odd- and quite possible that it was coincidence- but the only "unusual" thing I could see.
Really weird error you are getting with the temp directory. Can you try just putting in the following before line 737: Write-Host $FileName Curious to see why it is not in the correct format...
Timeout errors on the SMTP send is odd as well, I suppose it could be related to the file not saving correctly, but grasping as straws. I assume you can relay email from the machine you are running vCheck from?
Hi @Sneddo Unusual indeed..
So I put the Write-Host $FileName above line 737..... The file shows up in temp, I can open it, but still errors sending email. I have two SMTP servers I can use. I control one and have setup permissiosn to use.. The other is my works server and I have used this at one time and was able to get an email from it with a report. I have been switching between using both servers but mostly using my works since I had success with it once...
Screenshot shows the error and the html file it created... yet it does not attach and send.. odd.
$DisplaytoScreen = $false $SendEmail = $true $EmailReportEvenIfEmpty = $false $SendAttachment = $true
Thanks again!!
huh, that's even weirder! Maybe it's having issues with specifying the vCenter by IP, rather than hostname? Grasping at straws though...
Can you see the logs for either SMTP server? There might be a clue as to why it is failing from the server side, unfortunately the client error is a bit useless :(
I've been hitting this as well:
The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
The weird part is it seems to work fine on the first run but I will get this issue on subsequent runs of the script until the host I'm running powershell on reboots. I've tried it on two different systems with the same results
System 1: Windows 7 Ent SP1 64-bit VMware vSphere PowerCLI 5.8 Release 1 build 2057893 PSVersion 2.0 vCenter 5.0 Build 1300600
System 2: Windows 2008 R2 VMware vSphere PowerCLI 5.1 Release 2 Patch 1 build 1926866 PSVersion 2.0 vCenter 5.0 Build 1300600
I do have 44 VMKernel Warnings disabled but that doesn't seem to stop the errors from popping up. It's very weird how inconsistent the errors are.
@Sneddo hahaha odd I know!!!!! So these issues I'm having may be due to my network env. I'm in R/D, but they have us on a production network with tons of firewall rules afaik..
I copied the entire vCheck folder over to my vCenter server and it seems to be working fine using one SMTP server, the other not getting the emails but looking at logs. This should be my last msg on this thread as my issue has gone way beyond the initial issue problem.. Thanks for the help and working with me!!!
Hello, For the problem about "The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. "
I have a crappy workaround (vCheck.ps1 - Starting line 642)
$vCheckPlugins | Foreach { $TableFormat = $null try{ $PluginInfo = Get-PluginID $.Fullname $p++ Write-CustomOut ($lang.pluginStart -f $PluginInfo["Title"], $PluginInfo["Author"], $PluginInfo["Version"], $p, $vCheckPlugins.count) $pluginStatus = ($lang.pluginStatus -f $p, $vCheckPlugins.count, $.Name) Write-Progress -ID 1 -Activity $lang.pluginActivity -Status $pluginStatus -PercentComplete (100*$p/($vCheckPlugins.count)) $TTR = [math]::round((Measure-Command {$Details = . $_.FullName}).TotalSeconds, 2)
Write-CustomOut ($lang.pluginEnd -f $PluginInfo["Title"], $PluginInfo["Author"], $PluginInfo["Version"], $p, $vCheckPlugins.count)
$PluginResult += New-Object PSObject -Property @{"Title" = $PluginInfo["Title"];
"Author" = $PluginInfo["Author"];
"Version" = $PluginInfo["Version"];
"Details" = $Details;
"Display" = $Display;
"TableFormat" = $TableFormat;
"Header" = $Header;
"Comments" = $Comments;
"TimeToRun" = $TTR; }
*} catch { Write-Output "Plugin "+($PluginInfo["Title"])+" has failed... Ignoring result" -ForegroundColor red -BackgroundColor black Disconnect-VIServer -Force:$true -Confirm:$false Connect-VIServer $VIServer }**
}
I quite like this idea of catching errors from plugins in vCheck.ps1
and handling them cleanly.
From my own personal perspective, I use vCheck for a couple of different systems, but they're not VM-related, so I replace the whole plugins folder with my own. So for me, I would prefer it if vCheck.ps1
was kept generic and didn't have calls to things like disconnect/connect.
Maybe there could be some kind of special "recovery" plugin that would contain code like this (or whatever recovery code other variations might need) that would only be called if an error was detected here?
Yeah, agreed. Needs a bit of a tweak (as @PaulWalkerUK mentioned, we should keep vCheck as generic as possible), but I like the idea of at least gracefully catching the error until we can work out why we are getting this issue.
So, I stumbled across this today: http://blogs.technet.com/b/heyscriptingguy/archive/2013/07/30/learn-how-to-configure-powershell-memory.aspx
I wonder if bumping up the MaxMemoryPerShellMB setting will help with this issue... anyone that consistently gets this error able to test?
@Sneddo
I have just configured the max memory to 2048MB and will see if this solves the problem when tonights reports run. Im not getting it consistently but almost every night on report fails.
@Sneddo I set max memory to 4096 using: winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="4096"}' Not sure if I'm setting it correctly?? However, I'm still getting the error:
@Sneddo - Good find! My MaxMemoryPerShellMB was set to 150mb, set it to 2048mb. I tried to run vCheck and got the error again. So I set the MaxProcessesPerShell to 25, exited the powershell command prompt and reopened. Tried vCheck again and no errors. I'm doing a job with a lot less modulus, but there was a time I was seeing that error on my job.
@Sneddo @kernelphr34k tried setting MaxMemoryPerShellMB to 2048 and the report still failed this evening. I will try setting the MaxProcessesPerShell to 35 (mine is 25 by default).
After changing MaxProcessesPerShell from 15 to 30 it looks like I'm not seeing the error anymore. I'll keep testing.
@Sneddo @kernelphr34k @djzang I set it to MaxProcessesPerShell to 35 but that did not help. If I run the report now there is now problem but running it at 1.30 during the night fails. I have tried moving the scheduled task to execute earlier in the night and if that does not help I will try setting it for early in the morning instead.
Maybe your scheduled task did not use the same account as you. I use another account to perform the query than everyday work. I change the max process value to 25 (and memory...) and the problem disappeared
Le 12 mars 2015 à 08:32, Jonas G notifications@github.com a écrit :
@Sneddo @kernelphr34k @djzang I set it to MaxProcessesPerShell to 35 but that did not help. If I run the report now there is now problem but running it at 1.30 during the night fails. I have tried moving the scheduled task to execute earlier in the night and if that does not help I will try setting it for early in the morning instead.
— Reply to this email directly or view it on GitHub.
@Leleu256 I asked the Task Scheduler in Windows to run it for me exactly the same as if it triggered at a specified time so it is running as the same user.
hmmmm interesting results... what version of Powershell is everyone running? Let's see how this goes over the next few days.
During my testing of v6.22, I attempted to run this plugin and it ran for 3-4 hours before I just finally killed the script. I was thinking at the time it just took a long time to run and I didn't want the script running for that long.
Running Powershell v4 and PowerCLI 5.8 Release 1
I set my MaxMemoryPerShellMB 4096mb and MaxProcessesPerShell to 35 but I still get this error. Anyone else have have a solution?
Get-Datacenter : 7/23/2015 3:26:26 PM Get-Datacenter The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
Modified script to resolve issue #217 at my site for script "79 Find VMs in Uncontrolled Snapshot Mode.ps1". The change was made to search each Datastore for all VM directories that have files named like delta.vmdk and -*-flat.vmdk. In doing the file search this way there is only 2 calls per Datastore and only getting the information needed not other files that are not needed. This eliminates calling Get-Datacenter and retrieving all files for each VM. I have some questions about the following line of code in the current script
if ($file.Name -like '*delta.vmdk*' -or $file -like '-*-flat.vmdk') {
Should the 'or' portion of the statement be $file or $file.Name? I am assuming it should be $file.Name. And is the file to start with '-' (a hyphen)?
At my site the current version of "79 Find VMs in Uncontrolled Snapshot Mode.ps1" it ran for 2:40:03 and with this version it runs in 0:16:20 and I was able to run it with all the full vCheck.ps1 run. At my sight we do not have any uncontrolled snapshots showing up with either version so I would appreciate it if someone could verify that it works the same as the original version.
Our site consists of the following Number of Datastores: 67 Active VMs: 603
I had tried setting the Memory size and Timeout length and they seemed to help sometimes and not others. With this script I have set everything back to original settings and it runs fine.
See Pull Request #417
Thank you
I've been hitting the "The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel" error intermittently whenever I try and run PowerCLI scripts from a 2008 R2 server running PowerCLI R1 (was able to recreate errors from two different 2008 R2 scripting servers, and against two different vCenter 5.5 U2/3 servers). Tried a couple of tweaks that were talked about in this thread, but that did not resolve the issue. I recently moved, my scripts to a 2012 R2 server running PowerCLI 6.0 R3, and it appears that this resolved the issue.
Interesting...are the server specs the same, and same version of WMF?
Both servers have plenty of resources (ie CPU, Memory). Same version of WMF.
Question for those that ran into this same TLS/SSL intermittent errors issue - does this fix work for you as well (ie running script from 2012 R2 server with PowerCLI 6.0 R3)?
I'm having this problem without a true resolve triggered by 84 VMDK consistency.ps1
, 109 Orphaned VMDK File.ps1
, and 79 Find VMs in Uncontrolled Snapshot Mode.ps1
(uncertain of consistency)
I've tried the following:
$SendAttachment = $false
even though i prefer the inverse
winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="3072"}'
winrm set winrm/config/winrs '@{MaxProcessesPerShell="100"}'
However, if i create a job XML, with only those plugins, they run without fail.
Therfore I am thinking that possibly releasing/clearing of variables is needed in between plugins.
Hi, While running the vCheck script it fails while getting the hard disk info on plugin48. Seems the earlier plugin disconnects the session to the VC server. It runs fine till earlier plugins.
Get-HardDisk : 6/12/2014 9:33:00 PM Get-HardDisk Server vc.com not connected. At C:\scripts\Core\vCheck-vSphere-master\Plugins\48 Find VM Disk Format.ps1:6 char:35
Please assist