【发布时间】:2016-08-18 14:04:50
【问题描述】:
我正在查询大约 280 个 XenApp 服务器。这是我的疑问。
$bootupMemory = gwmi -Query "SELECT * FROM Win32_OperatingSystem" -ComputerName $srv
#$cpuLoad = gwmi -Query "SELECT * FROM Win32_Processor" -ComputerName $srv
#$tSessions = gwmi -Query "SELECT * FROM Win32_TerminalService" -ComputerName $srv
$ima = gwmi -Query "SELECT * FROM Win32_Service WHERE name='imaservice'" -ComputerName $srv
$mfcom = gwmi -Query "SELECT * FROM Win32_Service WHERE name='mfcom'" -ComputerName $srv
$ctxPrintMgr = gwmi -Query "SELECT * FROM Win32_Service WHERE name='cpsvc'" -ComputerName $srv
$msmqstatus = gwmi -Query "SELECT * FROM Win32_Service WHERE name='msmq'" -ComputerName $srv
$cDrive = gwmi -Query "SELECT * FROM Win32_Logicaldisk WHERE deviceid='c:'" -ComputerName $srv
$dDrive = gwmi -Query "SELECT * FROM Win32_Logicaldisk WHERE deviceid='d:'" -ComputerName $srv
$loginStatus = gwmi -Query "SELECT loginsenabled, numberofsessions FROM Metaframe_Server" -Namespace root\citrix -ComputerName $srv
$load = gwmi -Query "SELECT * FROM Metaframe_Server_loadlevel" -Namespace root\citrix -ComputerName $srv
您能否建议这是否是最佳的,或者我可以对其进行优化。 还如何将超时参数与每个查询合并。这可能吗?
【问题讨论】:
-
WMI,在真正的答案是大量多线程之前,您能做的只有这么多。我有一个荒谬的系统,它将这种事情传播到几台服务器上,每台服务器都有 100 个线程,这样我就可以在合理的时间范围内从几千台服务器中提取数据。你有看过 Start-Job 和朋友吗?
-
start-job 有什么帮助,我的意思是它是否同时在所有 280 台服务器上运行。还帮我回答这个问题:我的代码位于远程文件共享中,start-job 是否需要每个服务器上的本地文件,或者它可以处理远程共享上的脚本。
标签: powershell wmi wql xenapp