J'interroge environ 280 serveurs XenApp. Voici mes questions.Les requêtes WMI sont longues
$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
Pouvez-vous me suggérer si c'est optimal ou puis-je l'optimiser. Également comment incorporer un paramètre de délai d'attente avec chaque requête. Est-ce possible?
WMI, il y a seulement tellement que vous pouvez le faire avant que la vraie réponse est beaucoup de multi-threading. J'ai un système absurde qui répand ce genre de chose sur plusieurs serveurs avec 100 threads chacun pour que je puisse tirer des données de quelques milliers de serveurs dans un délai raisonnable. Avez-vous regardé Start-Job et ses amis pour commencer? –
Comment fonctionne start-job, je veux dire qu'il fonctionne simultanément sur les 280 serveurs. Aidez-moi aussi à répondre à ceci: MON code se trouve dans un partage de fichiers distant. Est-ce que start-job a besoin d'un fichier local sur chaque serveur ou peut-il gérer un script sur un partage distant? – user183932