약 280 개의 XenApp 서버를 쿼리하고 있습니다. 다음은 내 검색어입니다.WMI 쿼리가 오래 걸립니다.
$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 help는 280 개의 서버 모두에서 동시에 실행됩니다. 또한 내 대답을 도와주세요 : 내 코드는 원격 파일 공유에 누워있다, 시작 작업은 각 서버에 로컬 파일이 필요하거나 원격 공유에 스크립트를 처리 할 수 있습니다. – user183932