注释:
此脚本用于检查Xenapp服务器的WriteCache磁盘使用情况,当使用率超过80%时
会自动禁止此服务器的新用户登陆,并且自动退出工作组负载
同时设置在30分钟后自动重启
前提:
由于脚本需要远程执行权限
运行脚本角色必须具有管理员权限
ASNP citrix.xenapp.commands
$re=0
$erroractionpreference = 'SilentlyContinue'
$ComPList = @()
$rebootlist = @()
'创建Xenapp命名数列'
for ($i = 1;$i -le 99;$i++)
{
if ($i -le 9)
{
$ComPList += 'app00' + $i.ToString()
}
else
{
$ComPList += 'app0' + $i.ToString()
}
}
'读取每台Xenapp的磁盘使用情况'
foreach ($Server in $ComPList)
{
$Disk = gwmi –computername $Server win32_logicaldisk -filter "DeviceID='D:'"
if ($Disk -ne $Null)
{
$Used = ([int64]$Disk.Size - [int64]$Disk.FreeSpace)
$Percent = ($Used * 100.0)/$Disk.Size
$Percent = "{0:N1}" -f $Percent
if ($Percent -ge 80)
{
$re=1
write-host $server "告警"
$rebootlist+=$server
}
}
}
'当出现有告警时,禁止登陆并且退出工作组,30分钟后重启'
if($re -eq 1)
{
foreach ($worker in $rebootlist)
{
Set-XAServerLogOnmode -ServerName $worker -LogOnMode ProhibitNewLogOnsUntilRestart
Remove-XAWorkerGroupServer GMCC_Prod_Load $worker
Remove-XAWorkerGroupServer GMCC_Prod_Print $worker
Shutdown -r -m \\$worker -t 1800
}
}