Saturday, 21 April 2012

IT Problem Troubleshooting Methodology

In my many years of troubleshooting IT problems, and working with many many colleagues, I have seen the good and the bad of troubleshooting technique. This post is not going to go into any particular technology, it aims to set out an ideology for troubleshooting a failed system where there is no known fix.

Pre-requisites

- Technical aptitude.
- An understanding of the concepts behind how the failed system works.
- Sufficient access to the logs, management consoles, and diagnostic tools for the system in question.
- Curiosity. Be curious and have a good look around (time permitting) through the logs, management consoles, and diagnostics tools; something glaringly obvious might become apparent!
- Time. Time might be very scarce if the failed system is of critical importance, still, it is important to take the time to absorb the information that is available in-front of you, in order to come to a diagnosis.
- Have the grace to admit when you are beaten and escalate before too much time is lost if the system is mission critical!

Note: To be a good IT Technical Troubleshooter, you do not need to be a guru, you do not need to be super intelligent, you do not even need to have seen or have experience of the failed system before, you just need the pre-requisite technical aptitude, and be able to apply logic to the problem at hand.

Rules

- Do not make the problem worse!
- Before making any major change in order to fix the problem, be certain to first check with available sources of potentially useful knowledge (e.g. colleagues, Google and the internet, troubleshooting manuals, support channels, ….)

Troubleshooting the Failed System

Approach the problem in-hand with a clear mind and in the following logical way:

- Every system needs a certain chain of events to be satisfied in order to work; follow through the system's operational process checking off each link in the chain to find the broken link (of course one can to jump straight to the broken link when it becomes obvious what it is.)
E.g. For this to work, first this, this, this, this, …, and this must work!
*Many thanks to David Castillo Dominici of FreeDigitalPhotos.net for the image.

- It often happens that all the links in the chain check out okay, upon which there is still the option to allow the system to go through its operational process from the start of the chain (reboot.)

Tips and Things To Remember

- Do not jump to any assumptions or assertions!
- Do not make a rash judgement.
- “There is nothing in our lives that is permanent.” Just because something shouldn't have changed, doesn't mean it won't have changed.
- Do not expect to know everything; consult with sources of knowledge (colleagues, the web, manuals, …) and do not be afraid to ask for help. "To admit you don't know everything is the first step on the road to wisdon."
- Take the words of others with a pinch of salt – be sure to check things yourself.
- If you've done everything right, why not just try doing something a little different - who knows!
- Always be on the lookout for tools to make your life easier.

Saturday, 14 April 2012

HP P4000: Management Group Maintenance Mode, Volumes Not Available, and Cache Status Corrupt

An interesting problem with a P4000 SAN last week!

Due to electrical maintenance work, a 2 node P4000 SAN cluster with failover manager, needed to be completely powered down, and this was done in the correct order – hosts accessing the SAN powered down first, then the SAN was shut down via the “Shut Down Management Group...” option in the HP StorageWorks P4000 Centralized Management Console (CMC).

Something went wrong when the SAN was powered back up, and the result was:
i: The Management Group was operating in Maintenance Mode.
ii: All the volumes (including the Network RAID tolerant volumes) had a status of 'Not Available'.
iii: One of the Storage Systems had a status of Failed.
iv: Running Diagnostic tests on the "Failed" storage system indicated that the Cache Status of Cache 1 was Corrupt.

The resolution is in two parts:

Part 1: Restoring the Management Group to Normal Mode
1.1 Right-click the Management Group and select 'Edit Management Group'
1.2 In the Edit Management Group dialog box, to the right of Group Mode: Maintenance Mode, click on the button 'Set To Normal'.

Part 2: Restoring the Cache Status back from Cache 1 is Corrupt to PASS
Completing Part 1 and Setting the Management Group back to Normal will restore access to volumes and allow services on those volumes (at least the Network RAID tolerant volumes) to resume. Part 2 requires 4th-line (or Manufacturer) support, and the below is how HP support will resolve the issue.
2.1 Use PuTTY or similar to SSH to the affected storage system and login with the root password and the correct challenge s/key.
Note: Access to the underlying CentOS Linux CLI is only available to HP Techs – only HP Tech Support have access to the root password and the tool to find the correct challenge s/key password.
2.2 At the # prompt type the hpasmcli command and press return, to enter the HP management CLI for Linux
2.3 At the hpasmcli> prompt type clear iml and press return
2.4 At the hpasmcli> prompt type exit and press return
2.5 At the # prompt, enter each line in turn
/etc/lefthand/system/./servicectl –stop-all
rm -f /etc/configs/Controller.cache.discarded
/etc/lefthand/system/./servicectl --start-all
2.6 Close and reopen the CMC and log back into the Management Group, and check the system is now healthy!

Below is the output from the PuTTY session:

login as: root
Support Key: ??:??:??:??:??:??
Using keyboard-interactive authentication.
Password:
Using keyboard-interactive authentication.
challenge s/key 99 none28381
password:
[root@SAN02 ~]# hpasmcli
HP management CLI for Linux (v2.0)
Copyright 2008 Hewlett-Packard Development Group, L.P.
hpasmcli> clear iml
IML Log successfully cleared.
hpasmcli> exit
[root@SAN02 ~]# /etc/lefthand/system/./servicectl --stop-all
response: hydra ok: mgmt-gw ok: dbd_agent ok: hpclimon ok: gcagent ok: eman ok: dbd_store ok: hplogmon ok: dbd_manager ok:
[root@SAN02 ~]# rm -f /etc/configs/Controller.cache.discarded
[root@SAN02 ~]# /etc/lefthand/system/./servicectl --start-all
response: hydra ok:started mgmt-gw ok:started dbd_agent ok:started hpclimon ok:started gcagent ok:started eman ok:started dbd_store ok:started hplogmon ok:started dbd_manager ok:started
[root@SAN02 ~]#

Credits:
My colleagues Ekim Vopall and Veets Sejon.
HP Storage Division Tech Support.

Friday, 13 April 2012

Veeam Backup and Replication: Obtaining a Gantt Chart Report to Identify Runtime Conflicts

Scenario:
A SysAdmin needs a graphical report displaying when all the backup and replication jobs run, and for how long, in order to identify if there is any runtime overlaps within the current job setup, and recommend if any changes are needed to the current schedules to optimize the backup process.
Fig. 1: Example report showing what we are setting out to achieve

Walkthrough:

Part 1: Obtaining a CSV Report from SQL
1.1 From a machine with a suitable version of SQL Server Management Studio installed (here using 'Microsoft SQL Server 2008 R2 – Management Studio Express',) and using a suitable set of credentials; connect to the SQL Server homing the VeeamBackup Database.
1.2 Click on the 'New Query' button, and in the SQLQuery pane, paste the following:

SELECT TOP 1000 [job_name]
,[creation_time]
,[end_time]
FROM [VeeamBackup].[dbo].[ReportSessionsView]
where [creation_time] > '2012-04-04 17:00:00.000' and [creation_time] < '2012-04-11 17:00:00.000'
order by [creation_time] desc;

1.3 Edit the creation_time start time and end time as per requirements, then click on the '! Execute' button.
1.4 By default, this will display the results in a grid. Click on the top left corner of the grid to select all –
– then from the File menu > Save Results As... > and save the file as a CSV (Comma delimited) file.

Part 2: Creating the Gantt Chart using Excel 2010
The steps to create the Gantt chart only need going through once, after setup can simply import new data.
2.1 Open the CSV file from Part 1 using Excel 2010.
2.2 In D1, input the formula =c1-b1 and use the Fill button on the Home Ribbon to complete column D

2.3 Format column B as dd/mm/yy hh:mm, column D as hh:mm:ss, and we can hide column C
2.4 Select the range A1:B? (where ? is the last row you want to include in your data) and from the Insert Ribbon select Bar > 2-D Bar > Stacked Bar
In the example below we are using A1:B14
2.5 From Chart Tools > Layout Ribbon > Legend > Select None : Turn off Legend
2.6 On the Design Ribbon click 'Switch Row/Column'
2.7 Right-click the horizontal axis, and select 'Format Axis...' Tick the box for 'Categories in reverse order', select the radio button for 'Horizontal axis crosses: At maximum category', and Close the 'Format Axis' dialog box
2.8 Right-click on any bar and select 'Format Data Series...'
Check that the 'Series Options: Series Overlap' is set to 100% Overlapped
Set the Fill radio button to 'No fill'
Set the Border Color radio button to 'No line'
Close the 'Format Data Series' dialog box.
2.9 On the Chart Tools > Design Ribbon, click on 'Select Data'
Click on Add
Give the Series a name such as 'Duration'
Click the button to the right of the 'Series values' field, then select the range D1:D? (where ? is the last row you want to include in your data) on the spreadsheet.
In our example below we are using D1:D14
Finally, click the button to the right of the Edit Series dialogue box, click OK to close the 'Edit Series' dialog box, click OK to close the 'Select Data Source' box, and voila!

Credits:

APPENDIX
To see the complete list of ReportSessionsView column titles:
SQL Server > Databases > VeeamBackup > Views > dbo.ReportSessionsView > Columns

Monday, 9 April 2012

The Importance of Pushing Forward IT Initiatives

A bit of a random post here; the idea for the post just bubbled up into consciousness and had to be let out!

Information Technology is a forever evolving and progressing arena. Depending on your job role, you may well be expected to be the one (or one of the ones) that pushes your company forward in terms of Technology and IT Service offerings, and even if this is not your job role, it cannot but help your future career prospects to show some initiative and foresight.

I am not talking about the usual process of upgrading existing systems – such as vSphere 4.1 to vSphere 5 U1, Windows 2003 to 2008, Exchange 2003 to 2010, etcetera – it is taken as a given that these upgrades are naturally in the pipeline, just waiting for some time to be set aside to do them. What I am talking about are initiatives that represent a sea change to the established way of doing things  – an adoption of new products, technologies and services to the business.

Where do you get your ideas from?
Your ideas may come from thinking about solutions to existing pain points in the business, areas where efficiences can be achieved, and daring to think big and imagining how new technology offerings could benefit the business. The solutions might come from talking with your colleagues, from your technology partners, from your service providers and their IT Consultants, from your professional network, from webinars, from seminars, from IT Expos (exhibitions), blogs, InfoTech websites, YouTube, word of mouth, and many many more different places.

Turning the idea into a concept!
Of course, when a good idea has come up, someone has got to grab it by the horns and turn it into a concept to be put forward to the stakeholders, otherwise it will stay just that – a good idea in someone's head. And this is where it gets interesting, as substantial personal qualities are required to push the initiative forward – such as patience, excellent communication skills, optimism, and courage.

Questions you will need to answer:
Q: How much is it going to cost?
Remember that it is not about looking for a solution at the cheapest price, it is about looking for a solution that can be obtained at the most effective price. Any initial outlay would need to be weighed in terms of future cost saving – perhaps due to efficiency savings from automation of repetitive tasks – or in terms of how the business will profit out of the new solution.
Q: Why do we need this?
You will need to be able to lay out why this IT initiative is needed, what purpose will it serve, and how it will help people. Perhaps not doing it will hand business rivals an advantage.
Q: What is the value to the business of this solution?
Any new IT initiative/service must offer true value to the company.
Q: But everything is running fine?
Often, everything is running fine on the surface, unseen by the corporate leaders uninvolved in the day-to-day IT operations, but this may hide a highly fragile IT infrastructure. Perhaps the IT team are struggling on a shoestring, faced with archaic backup systems that do not work, a non-existent DR system, unresilient hardware just waiting to break down, and security holes just waiting for an opportunist hacker to break into.
The everything is running fine argument needs to be weighed against, if we do not do this then this might happen, and the cost of that happening is .... Also, depending on the industry, you can be sure that rival corporations will be trying to do just what the IT Strategist is trying to push forward; that is to automate, find efficiency savings, find solutions which give real business value, and generally trying to improve systems and services, and make life better/easier for end users.
Q: How long will it take?

Final Word
IT should never been a hindrance to corporate growth, so the IT Strategist is always looking for ways to push the envelope, and keeping ahead of any need for new resources and capabilities. The IT Strategist often has to fight with a sea of negativity, reluctance, and inertia to change. To those of you who manage to force through succesful new IT initiatives that deliver true business value – we salute you!
PS Apologies if the picture offends.

Sunday, 8 April 2012

Dell EqualLogic Tech Deepdive Meeting Notes

The following notes were taken during an interesting meeting we had with a delegation from Dell. The post is composed in the form of a question and answers session for clarity of presentation – even though most of the information was intelligently proferred without any initial question – and the questions are not put in any particular order. The answers are not the words of the Dell delegates themselves, and I apologize in advance if there is any mis-representation.

Q: Does EqualLogic support dedupe?
A: No, dedupe is not a feature provided by EqualLogic. If you are looking for an excellent, cost-effective dedupe appliance, we can highly recommend the DR4000. The DR4000 uses inline dedupe, and it is packed with high-levels of processing power to enable high-throughput levels. This storage is highly recommended for backup storage and allows for replication of deduped backups off site.
Note: Not recommended to run production/live virtual machines off this.

Q: What snapshot mechanism does EqualLogic use?
A: EqualLogic uses the Allocate-On-Write (AOW) snapshot mechanism. This has performance advantages over the Copy-On-Write (COW) mechanism, and also allows for the live mounting of volume snapshots without affecting the primary volume.
Notes: The following extract explaining Copy-On-Write versus Allocate-On-Write is taken from http://www.dcig.com/2011/03/another-look-at-what-is-the-best-snapshot.html
A copy-on-write snapshot incurs a performance penalty anytime previously written data is changed. In these circumstances, the previously written block of data first has to be read, re-written to another block of storage and then the new data written where the other data previously resided.
Allocate-on-write conversely "freezes" data that was previously written and writes changes to that data elsewhere on other disk. This eliminates the three step "read, rewrite and write" process associated with copy-on-write and reduces snapshots to just one step - a write.

Q: Does EqualLogic support Synchronous Replication?
A: Not yet, this is in the pipeline.
UPDATE: As of FW 6.0, EqualLogic does now support Synchronous Replication.

Q: Does EqualLogic support a Thin Provisioned LUN Space Reclaimer?
A: Not yet, this is in the pipeline.

Q: What best practices do you recommend as regards RAID setup?
A: This all depends on the environment and use scenario, which is why Dell have invested $1'000'000s in developing DPACK (Dell Performance Analysis Collection Kit) which is available to partners. The DPACK can be run over a typical working day to pick up various disk utilization statistics, and will then recommend which EqualLogic model(s) to go for, and the recommended RAID setup.

Q: Does EqualLogic support data auto tiering / load balancing (intelligent data tiering)?
A: Yes!
Dell added a new loadbalancer called Automatic Performance Load Balancer or APLB. This automatically moves blocks of data between pools of different controllers, RAID set or disk types. This means you can create a pool of disk drives containing different characteristics, like SAS and nearline SAS or SATA. As a administrator you do not have to worry anymore where to place the data. Also when administrator finds out an application needs more iops, he does not need to move data manually to high performance tier of storage. APLB will make sure the most accessed data will be placed on the fastest drives (the drives with the least latency).
For consideration: Consider the intelligent moving of blocks of data by the storage array to maximize storage performance, versus VMware vSphere 5's Storage DRS which has to move the entire datastore – which one do you think is better?

Q: How expandable is an EqualLogic PS-Series Array?
A: EqualLogics are expanded by purchasing additional PS-Series Arrays. You can have up to 16 members in a group and 8 in a pool. The members can be different models of EqualLogic, with different types of disks. And there is no reason why you cannot continue to expand your group over time keeping the older EqualLogics in place and adding additional EqualLogics as need arises. The older PS-Series appliances going back over 7+ years continue to support the latest firmware and features, and the current models will continue to do the same, future-proofing and maximizing the return on your investment.

Q: Can I buy storage shelves to expand my EqualLogic PS-Series Array?
A: No. The reasoning behind this is that as you add more storage shelves to a controller unit, the demand placed on that controller unit goes up and up. Also, adding more shelves to a controller unit does not increase the number of I/O ports. With the EqualLogic you expand by adding additional PS-Series storage arrays, linearly increasing the number of high performance controllers and I/O ports.

Q: Can I mix and match different types of disk in an EqualLogic PS-Series Array?
A: No, each separate array will have a set of identical disks. Within a pool you can have different types of arrays with SATA, SAS, etcetera...
Note: An exception is the PS6100XS which has 7 SSDs and 17 SAS drives with intelligent data tiering.

Q: Which EqualLogic Array would you recommend for VDI deployments?
A: An excellent storage appliance to use for VDI solutions is the PS6100XS, this specialist unit has 7 SSDs and 17 SAS drives, and uses intelligent data tiering. You'd be looking at running 250 typical virtual desktops from just one unit.
Note (i): Don't take my word for this, please check with your Dell partner first. It may well be that you will get more much more than 250 virtual desktops running off one PS6100XS.
Note (ii): A certain world famous retail company uses 3 of the predecessor units to the PS6100XS, to service a near 1000 desktop VMware View VDI farm.

Q: Does EqualLogic do CIFS/NFS?
A: The EqualLogic FS7500 is designed for CIFS/NFS implementations. Essentially you just present the storage as shares, there are no LUN configurations required.
Note: Traditionally EqualLogic arrays have always been iSCSI.

Q: Why does EqualLogic not support having active/active controllers?
A: This is a very good question. EqualLogic runs the active and passive controllers connected by a thick I/O pipe that effectively maintains the passive controller as a mirror of the active controller, this allows for near instantaneous failover in the event of a RAID controller failure – there is no need for the controller having to seize ownership of the failed controllers disks. This is supported by write cache mirroring and the write cache is cached to flash memory.
Note: The process of controller failover uses MAC spoofing and needs portfast and rapid spanning tree enabled on switches.

Q: Nothing to do with EqualLogic per-se – are 3.5" disks faster than 2.5" disks?
A: Technically speaking, with the same disk spin speed, if your data blocks are on the edge of a 3.5" disk it will be slightly faster read/write than if it were on the edge of a 2.5" disk. In practice there is nothing really in it (especially if you can pack in more 2.5" disks and thus have more spindles which means more IOPs.)

Saturday, 7 April 2012

iPhone: 16 Free Apps Provided by Major IT Corporations

The Apple App Store contains some interesting apps for the IT Professional as provided by the major IT corporations, and below lists a few offerings by: APC, Brocade, Cisco, Citrix, Dell, HP, IBM, Oracle, and NetApp. The list is by no means conclusive and 16 were picked as they fit nicely on the standard un-jailbroken iPhone's 4x4 app grid.
VMware and EMC are perhaps a bit of an omission from the list – VMware do provide their app for VMware View which is for iPad only, and EMC provide the EMC Documentum app that allows for securely browsing a Documentum ECM repository.
APC (American Power Conversion Corporation): StruxureWare Central
Connect to InfraStruxure Central 6.2 or StruxureWare 6.3 & 7.x servers, to provide an overview of active alarms and device details.

Brocade: Brocade
Enjoy the best of Brocade.com – News, Videos, Products, Offers, How to Buy and more....

Cisco: Cisco
Get the latest news and promotional offers; find events; search for content; play videos or podcasts; receive current security alerts, advisories and responses; and find local phone number for Cisco support.

Cisco: M-Learning
Provides access to premium learning content (alas, which are not free.)

Cisco: Technical Support
Provides access to Cisco's rich technical support content. Find solutions to your troubleshooting needs anywhere, anytime!

Citrix: Citrix Receiver
If your company uses Citrix to host applications, you can use Citrix Receiver to access hosted applications via the iPhone and iPad.

Dell: Quick Resource Locator
Get immediate access to extensive system information and detailed how-to videos for Dell PowerEdge servers.

Hewlett-Packard: HP Connect +
Stay on top of the latest news and announcements. Access sales guides and tools developed especially for HP Enterprise customers and channel partners.

Hewlett-Packard: HP iLO Mobile Toolbox
Interacts directly with the HP iLO 3 or greater chip on ProLiant servers, to give you total control over your server at all times.

Hewlett-Packard: HP SiteScope
If you use HP SiteScope Systems Monitoring, this allows you to harness its power wherever you go!
Note: Pretty much any monitoring system worth its salt will have an iPhone/smartphone app these days.

Hewlett-Packard: HP Support Center
Get instant support for your HP Enterprise printers, laptops, workstations, storage and servers!

IBM: IBM Mobile Systems Remote
An app that allows system administrators to monitor and manage IBM systems (currently BladeCenter and System x Rack mounted systems with RSA 2 cards) from the convenience of their mobile device.

Oracle: Oracle
Provides a high-level view of everything Oracle. Get the important news first. Hear about developments, releases, mergers and acquisitions, and other important events.

NetApp: OnCommand Resource Navigator
An application designed to provide quick mobile access to information about NetApp OnCommand storage management software products.

NetApp: Storage RFP Builder
The NetApp RFP Builder enables you to create custom storage RFPs (Request For Proposals) from your iPhone or iPad.

NetApp: VDI Calculator
The NetApp VDI Storage Calculator is a mobile application designed for iPhone, iPad, and iPod touch that provides a very high-level assessment of the storage requirements for a desktop virtualization deployment based on user defined inputs, and leads to displaying a recommended NetApp storage system.

Sunday, 1 April 2012

Setting Up a Monitoring System to Run vCheck 6.15 for Scheduled Monitoring of Multiple vCenter Servers

*vCheck is an excellent script utilizing the vSphere Power CLI, which is written and maintained by Alan Renouf with contributions from the VMware community at large. vCheck is available from www.virtu-al.net.

Contents
1. Pre-requisites*
2. Installing vCheck on a Monitoring Station.
3. Testing the Script from MS-DOS
4. Setting up a Scheduled Task.
5. Applying to Multiple vCenter Servers
*Includes recommendations on user account to use to connect to client vCenters and minimum vCenter permissions to run the script; and plugins to use.

1. Pre-requisites
1) A suitable system with PowerShell installed, and capable of running vSphere Power CLI.
Here using a Windows 7 32-bit machine on an internal domain with access to clients vCenters. The machine is fully patched, with up to date anti-virus, and with unnecessary services locked down.
Note 1: Choosing domain or workgroup is up to individual circumstances - ideally the system would be in a DMZ.
Note 2: Windows Server or Windows 7 machine is up to individual circumstances – ideally this would be setup utilizing a pre-existing monitoring server.

2) User accounts:
i: User account with local administrator privileges on the Monitoring Station to install vSphere Power CLI and run the script.
ii: vCenter connection accounts.
The minimum required account permissions would be a local user account on the customer's vCenter server, with Read Only permission in vCenter applied across 'Hosts and Clusters' / 'VMs and Templates' and Datastores, with the Datastore > Browse Datastore, and Global > Health permissions (also selected Global > Diagnostics)

2. Installing vCheck on a Monitoring Station
1) Download and install vSphere Power CLI (5.0.1 is the current latest version) from http://www.vmware.com
2) Run Windows PowerShell as an administrator, and set the PowerShell execution policy to RemoteSigned:
> Set-Execution Policy RemoteSigned
3) Download vCheck (6.15 is the current latest version) from http://www.virtu-al.net
4) Before unzip vCheck.zip, check the properties of the file and on the General tab click Unblock
5) Unzip vCheck.zip and – to make life easier – can place the unzipped vCheck folder at the root of a drive (e.g. V:\ in the examples below)
6) Before first running the script, reduce the number of plugins to speed up the running of the script, and avoid information overload. Can move the unused plugins to a 'Removed Plugins' folder within the Plugins folder. The below image gives an example set of plugins to keep (also listed in the Appendix below):
Note: You may want to run a different set of plugins for different customers, so later can copy the entire vCheck folder to give each customer their own vCheck folder, and just edit a few lines in the scripts, and apply a new scheduled task.
7) In Windows PowerShell, navigate to the location of the vCheck.ps1 script and use the command .\vCheck.ps1 to do an initial run of the script
> .\vCheck.ps1
8) Run through the prompts answering as per requirements
Note: To re-run wizard use vCheck.ps1 -Config, alternatively can edit the GlobalVariables.ps1 file.
9) PowerShell prompts for 'Please specify server credential' for connection to the vCenter server.
If all is setup correctly, the script should run with no errors and an email report should be received:
10) Create of a copy of the vCheck folder called say vCheckCustomerName

3. Testing the Script from MS-DOS
Test running of the script from the MS-DOS command line with syntax similar to the below:
> C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -PSConsoleFile "C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\vim.psc1" -file "V:\vCheckCustomerName\vCheck.ps1" -noconsole –noninteractive
Example:
Note 1: On a 64 bit system use Program Files (x86) instead of Program Files
Note 2: If continuously being prompted for vCenter credentials, edit the '00 Connection Plugin for vCenter.ps1' file in the plugins folder, at roughly line 26 – which is:
$VIConnection = Connect-VIServer $VIServer
- with arguments for user, password and protocol as below:
$VIConnection = Connect-VIServer $VIServer -user “vCheck” -Pass “PASSWORD” -Protocol Https

4. Setting up a Scheduled Task.
Now create the scheduled task via Administrative Tools > Task Scheduler (taskschd.msc)
Select 'Create Task...' and configure as required.
Paste the tested line from section 3 into the 'Program/script:' box when specifying the New Action:
Note: To add multiple email correspondents, edit the GlobalVariables.ps1 file and $EmailTo line as below:
$EmailTo =”user01@example.com”, “user02@example.com”


5. Applying to Multiple vCenter Servers
There are various ways to run the script for other customers/multiple vCenters; one easy way that gives granular control across what plugins run and the contents of GlobalVariables.ps1 and '00 Connection Plugin for vCenter.ps1' (if modification required), is to simply copy the vCheckCustomerName folder, rename the folder for the new customer, apply custom configuration changes, and either add a New Action to the existing scheduled task, or create a new scheduled task.

The lines in GlobalVariables.ps1 that will/might need modification are just:
$Server
$EmailFrom (depending on requirements)
$EmailTo (depending on requirements)
$EmailSubject (depending on requirements)

If you have the same local user account across all vCenters (set up with the minimum permissions to vCenter as described in section 1), then the '00 Connection Plugin for vCenter.ps1' does not need to be modified, otherwise just modify the following line as required:
$VIConnection

Appendix: Recommended Plugins
The following is a selection of plugins that will provide the most essential information for a scheduled daily report (the most common VMware problems tend to be unmonitored snapshots running out of control and filling up the underlying datastore) and will not take too long to run:

00 Connection Plugin for vCenter
01 General Information
03 Datastore Information
06 Hosts not responding or Disconnected
07 Hosts Overcommit State
08 Hosts Dead Lun Path
12 VMs Swapping or Ballooning
13 invalid or inaccessible VMs
19 Guest with less than X MB free
23 VI Events
35 Host Configuration Issues
36 Host Alarms
37 VM Alarms
44 VMKernel Warnings
47 HAHostMonitoring
53 Hardware status warnings-errors
56 Clusters with HA Disabled
64 Snapshots Oversize