To start, you need an event log source to use. Creating a source is easy via powershell.
New-EventLog –LogName Application –Source “Xenapp_Custom”
Technically you only need to this once, but it fails cleanly, allowing the command to be issued multiple times.
Set Some Defaults:
$disk="ID not found"
$file="c:\personality.ini"
Read the data:
if(Test-Path $File){
$data=get-content $file
Foreach ($line in $data) {
if ($line.Contains("DiskName")){$iname=$line.replace("$","").replace("DiskName=","").replace(".vhd","")}
if ($line.Contains("WriteCacheType")){$wc=$line.replace("$","").replace("WriteCacheType=","")}
}
Evaluate the Vdisk mode and log it if we are unhappy:
switch ($wc)
{
"0" {$wc1="Private"}
"4" {$wc1="Standard"}
"1" {$wc1="Server";Write-EventLog –LogName Application –Source “XenApp_Custom” –EntryType Error –EventID 911 –Message “PVS ALERT. VDisk is set to Cache on server. Immediate action is required to prevent an outage if this is a PROD image. Image: $iname”}
default {$wc1="OTHER";Write-EventLog –LogName Application –Source “XenApp_Custom” –EntryType Warning –EventID 911 –Message “PVS ALERT. Nonstandard VDisk configuration has been detected. Image: $iname”}
}
$disk=$iname+"_"+$wc1}
Capture the exception of a non PVSed disk
ELSE {$disk=$env:computername + "_Local"}
Write it to an environment variable so BGinfo can consume it and put it in the background
[Environment]::SetEnvironmentVariable("PVS_Disk",$disk,"Machine")
Like magic...
No comments:
Post a Comment