Hi Luc ,
could you suggest on the following requirments.
1:scheduling execution of following html report(discussed with you few days back)
2:oncereport is generated automatically sending to email address.
$vc = read-host "specify vcenter name"
$cred = Get-Credential
$date=get-date
Connect-VIServer -server $vc -Credential $cred|out-null
$path = 'C:\Users\in0079d6\Desktop\Technicolor_script'
$head = @'
<style>
body { background-color:#dddddd;
font-family:Tahoma;
font-size:12pt; }
td, th { border:1px solid black;
border-collapse:collapse; }
th { color:white;
background-color:black; }
table, tr, td, th { padding: 2px; margin: 0px }
table { margin-left:50px; }
</style>
'@
$clusters = Import-Csv -path "C:\users\in0079d6\Desktop\Technicolor_script\EU_tc_CLUSTER.csv"
$fragments = @()
foreach ($line in $clusters) {
$cluster = Get-Cluster -name $line.clustername
$vms = Get-VM -location $cluster
$esx = Get-VMHost -Location $cluster
$fragments += Get-Cluster -name $cluster |
Select name |
ConvertTo-Html -Property name -Fragment -PreContent '<h2>clustername </h2>' |
Out-String
$ds_all = Get-Datastore -RelatedObject $cluster
$syslog_server = "10.x.x.x"
$fragments += Get-Datastore -RelatedObject $cluster |
Where-Object {($_.FreeSpaceGB) / ($_.CapacityGB) -le 0.15} |
Select Name |
ConvertTo-Html -Property Name -Fragment -PreContent '<h2>DATASTORE WITH LESS THAN 15 PERCENT SPACE </h2>' |
Out-String
$fragments += $vms | Get-Snapshot |
Select Name, @{N = 'VM'; E = {$_.VM.Name}}, Created |
ConvertTo-Html -Property Name, VM, Created -Fragment -PreContent '<h2>SNAPSHOT_INFO</h2>' |
Out-String
$fragments += $vms | Where-Object {$_.PowerState -eq "poweredoff"}|
select name|
ConvertTo-Html -Property Name -Fragment -PreContent '<h2>POWEREDOFF_VMS</h2>' |
Out-String
$fragments += $esx |
select name, @{N = 'vmkernel'; E = {$_ | Get-VMHostNetworkAdapter -VMKernel | Where-Object {$_.vmotionenabled -eq "true"}}}|
ConvertTo-Html -Property name, vmkernel -Fragment -PreContent '<h2>VMKERNEL_PORT_VMOTION</h2>' |
Out-String
$fragments += $esx |
select name, @{N = 'syslogserver'; E = {Get-VMHostSysLogServer -VMHost $_}}|
ConvertTo-Html -Property name, syslogserver -Fragment -PreContent '<h2>SYSLOGSERVER<h2>' |
Out-String
$fragments += $vms | Where-Object {$_.Guest.GuestFamily -eq 'windowsGuest' -and $_.ExtensionData.guest.toolsversionstatus -eq 'guesttoolsneedupgrade'}|
select name|
ConvertTo-Html -Property Name -Fragment -PreContent '<h2>WINDOWS_VM_TOOLS_NEED_UPGRADE</h2>' |
Out-String
$fragments += $esx | Get-VMHostService|? {$_.key -eq 'ntpd'}|
select vmhost, key, running|
ConvertTo-Html -Property vmhost, key, running -Fragment -precontent '<h2>NTP<h2>'|
Out-String
$fragments += $esx |
select name, build, version, model|
ConvertTo-Html -Property name, build, version, model -Fragment -PreContent '<h2>VERSION<h2>'|
Out-String
$fragments += $cluster|
select drsenabled, haenabled, HAAdmissionControlEnabled|
ConvertTo-Html -Property drsenabled, haenabled, HAAdmissionControlEnabled -Fragment -PreContent '<h2>CLUSTERPROPERTIES<h2>'|
Out-String
$fragments += Get-DatastoreCluster -Location(Get-Datacenter -Cluster $cluster)|
select name|ConvertTo-Html -Property name -Fragment -PreContent '<h2>DATASTORECLUSTER<h2>'|
Out-String
}
ConvertTo-HTML -head $head -PostContent $fragments |
Out-String | Out-File -FilePath "$path\feb19.html"