Commit 874b9b0a2000ddcc58042c8acedaa0d5674c49b8
1 parent
b0915fe9
Exists in
master
Adiciona coleta de hardware no Agente e move coleta de software para a operação correta
git-svn-id: http://svn.softwarepublico.gov.br/svn/cacic/cacic/trunk/agente-windows@1457 fecfc0c7-e812-0410-ae72-849f08638ee7
Showing
1 changed file
with
98 additions
and
21 deletions
Show diff stats
gercols/gercols.dpr
... | ... | @@ -679,6 +679,28 @@ begin |
679 | 679 | Result := outString; |
680 | 680 | end; |
681 | 681 | |
682 | +// Procedimento que executa a coleta de hardware | |
683 | +Function ColetaHardware: String; | |
684 | +var | |
685 | + outString: String; | |
686 | +begin | |
687 | + // Coletas de todos os atributos de hardware | |
688 | + outString := fetchWmiValues('Win32_Keyboard', 'Availability,Caption,Description,InstallDate,Manufacturer,Name', objCacic.getLocalFolderName); | |
689 | + outString := outString + fetchWmiValues('Win32_PointingDevice', 'Availability,Caption,Description,InstallDate,Manufacturer,Name', objCacic.getLocalFolderName); | |
690 | + outString := outString + fetchWmiValues('Win32_PhysicalMedia ', 'Caption,Description,InstallDate,Name,Manufacturer,Model,SKU,SerialNumber,Tag,Version,PartNumber,OtherIdentifyingInfo,Capacity,MediaType,MediaDescription', objCacic.getLocalFolderName); | |
691 | + outString := outString + fetchWmiValues('Win32_BaseBoard', 'Caption,ConfigOptions,Depth,Description,Height,HostingBoard,InstallDate,Manufacturer,Model,Name,OtherIdentifyingInfo,PartNumber,Product,RequirementsDescription,SerialNumber,SKU,SlotLayout,SpecialRequirements,Tag,Version,Weight,Width', objCacic.getLocalFolderName); | |
692 | + // Tenho que dividir a string em dois pedaços porque o Delphi não aceita strings individuais com mais de 255 caracteres | |
693 | + outString := outString + fetchWmiValues('Win32_BIOS', 'BiosCharacteristics,BIOSVersion,BuildNumber,Caption,CodeSet,Description,IdentificationCode,InstallDate,Manufacturer,Name,OtherTargetOS,PrimaryBIOS,ReleaseDate,SerialNumber,SMBIOSBIOSVersion,SMBIOSMajorVersion,SMBIOSMinorVersion,' + 'BIOSPresent,SoftwareElementID,TargetOperatingSystem,Version', objCacic.getLocalFolderName); | |
694 | + outString := outString + fetchWmiValues('Win32_MemoryDevice', 'Access,Availability,BlockSize,Caption,Description,DeviceID,EndingAddress,InstallDate,Name,NumberOfBlocks,PNPDeviceID,Purpose,SystemLevelAddress,SystemName', objCacic.getLocalFolderName); | |
695 | + outString := outString + fetchWmiValues('Win32_PhysicalMemory', 'BankLabel,Capacity,Caption,DataWidth,Description,DeviceLocator,FormFactor,InstallDate,InterleaveDataDepth,InterleavePosition,Manufacturer,MemoryType,Model,Name,OtherIdentifyingInfo,PartNumber,PositionInRow,' + 'SerialNumber,SKU,Speed,Tag,TotalWidth,TypeDetail,Version', objCacic.getLocalFolderName); | |
696 | + outString := outString + fetchWmiValues('Win32_Processor', 'AddressWidth,Architecture,Availability,Caption,CreationClassName,DataWidth,Description,DeviceID,ExtClock,Family,InstallDate,L2CacheSize,L2CacheSpeed,L3CacheSize,L3CacheSpeed,Level,LoadPercentage,Manufacturer,'+ 'MaxClockSpeed,Name,NumberOfCores,NumberOfLogicalProcessors,OtherFamilyDescription,PNPDeviceID,ProcessorId,ProcessorType,Revision,Role,SocketDesignation,SystemName,UniqueId,UpgradeMethod,Version,VoltageCaps', objCacic.getLocalFolderName); | |
697 | + outString := outString + fetchWmiValues('Win32_Printer', 'Attributes,Availability,Caption,CharSetsSupported,Comment,CurrentCharSet,Default,Description,DeviceID,Direct,DriverName,HorizontalResolution,InstallDate,JobCountSinceLastReset,KeepPrintedJobs,LanguagesSupported,' + 'Local,Location,MarkingTechnology,MaxCopies,MaxNumberUp,MaxSizeSupported,MimeTypesSupported,Name,Network,PaperSizesSupported,PaperTypesAvailable,Parameters,PNPDeviceID,PortName,PrintProcessor,' + 'ServerName,Shared,ShareName,SpoolEnabled,SystemName,VerticalResolution,WorkOffline', objCacic.getLocalFolderName); | |
698 | + | |
699 | + // Retorna uma string com todas as coletas | |
700 | + Result := outString; | |
701 | + | |
702 | +end; | |
703 | + | |
682 | 704 | |
683 | 705 | procedure executeGerCols; |
684 | 706 | var boolFound : boolean; |
... | ... | @@ -706,6 +728,8 @@ var strActionDefinition, |
706 | 728 | strTeServidor, |
707 | 729 | strTripa, |
708 | 730 | tstrColetaSoftware, |
731 | + tstrColetaHardware, | |
732 | + tstrColetaComputador, | |
709 | 733 | strValorChavePerfis : String; |
710 | 734 | |
711 | 735 | intAux4, |
... | ... | @@ -728,7 +752,7 @@ Begin |
728 | 752 | Try |
729 | 753 | |
730 | 754 | // Parâmetros possíveis (aceitos) |
731 | - // /coletas => Chamada para ativação das coletas | |
755 | + // /collect => Chamada para ativação das coletas | |
732 | 756 | // /recuperaSR => Chamada para tentativa de recuperação do módulo srCACIC |
733 | 757 | // USBinfo => Informação sobre dispositivo USB inserido/removido |
734 | 758 | // RCActions => Informação sobre ações durante conexão de suporte remoto |
... | ... | @@ -935,12 +959,6 @@ Begin |
935 | 959 | |
936 | 960 | strFieldsAndValuesToRequest := strFieldsAndValuesToRequest + ',AntiVirus=' + objCacic.replaceInvalidHTTPChars(objCacic.enCrypt(strColetaAtual)); |
937 | 961 | |
938 | - objCacic.writeDebugLog('executeGerCols: Executando coleta de Software -> '); | |
939 | - tstrColetaSoftware := SoftwareList; | |
940 | - | |
941 | - // Adiciona variáveis da coleta de software na requisição | |
942 | - strFieldsAndValuesToRequest := strFieldsAndValuesToRequest + ',SoftwareList=' + objCacic.replaceInvalidHTTPChars(objCacic.enCrypt(objCacic.replaceInvalidHTTPChars(tstrColetaSoftware))); | |
943 | - | |
944 | 962 | Except |
945 | 963 | on E : Exception do |
946 | 964 | Begin |
... | ... | @@ -950,6 +968,79 @@ Begin |
950 | 968 | End; |
951 | 969 | End; |
952 | 970 | End |
971 | + else If (tstringsActions[intLoopActions] = 'col_hard') then | |
972 | + Begin | |
973 | + Try | |
974 | + Inc(intTotalExecutedCollects); | |
975 | + | |
976 | + // Insere aqui a ação da coleta | |
977 | + objCacic.writeDebugLog('executeGerCols: Executando coleta de Hardware -> '); | |
978 | + //tstrColetaHardware := ColetaHardware; | |
979 | + | |
980 | + // Coletas de todos os atributos de hardware | |
981 | + tstrColetaHardware := fetchWmiValues('Win32_Keyboard', objCacic.getLocalFolderName, 'Availability,Caption,Description,InstallDate,Name'); | |
982 | + strFieldsAndValuesToRequest := strFieldsAndValuesToRequest + ',Win32_Keyboard=' + objCacic.replaceInvalidHTTPChars(objCacic.enCrypt(objCacic.replaceInvalidHTTPChars(tstrColetaHardware))); | |
983 | + | |
984 | + tstrColetaHardware := fetchWmiValues('Win32_PointingDevice', objCacic.getLocalFolderName, 'Availability,Caption,Description,InstallDate,Manufacturer,Name'); | |
985 | + strFieldsAndValuesToRequest := strFieldsAndValuesToRequest + ',Win32_PointingDevice=' + objCacic.replaceInvalidHTTPChars(objCacic.enCrypt(objCacic.replaceInvalidHTTPChars(tstrColetaHardware))); | |
986 | + | |
987 | + tstrColetaHardware := fetchWmiValues('Win32_PhysicalMedia ', objCacic.getLocalFolderName, 'Caption,Description,InstallDate,Name,Manufacturer,Model,SKU,SerialNumber,Tag,Version,PartNumber,OtherIdentifyingInfo,Capacity,MediaType,MediaDescription'); | |
988 | + strFieldsAndValuesToRequest := strFieldsAndValuesToRequest + ',Win32_PhysicalMedia=' + objCacic.replaceInvalidHTTPChars(objCacic.enCrypt(objCacic.replaceInvalidHTTPChars(tstrColetaHardware))); | |
989 | + | |
990 | + tstrColetaHardware := fetchWmiValues('Win32_BaseBoard', objCacic.getLocalFolderName, 'Caption,ConfigOptions,Depth,Description,Height,HostingBoard,InstallDate,Manufacturer,Model,Name,OtherIdentifyingInfo,PartNumber,Product,RequirementsDescription,SerialNumber,SKU,SlotLayout,SpecialRequirements,Tag,Version,Weight,Width'); | |
991 | + strFieldsAndValuesToRequest := strFieldsAndValuesToRequest + ',Win32_BaseBoard=' + objCacic.replaceInvalidHTTPChars(objCacic.enCrypt(objCacic.replaceInvalidHTTPChars(tstrColetaHardware))); | |
992 | + | |
993 | + // Tenho que dividir a string em dois pedaços porque o Delphi não aceita strings individuais com mais de 255 caracteres | |
994 | + tstrColetaHardware := fetchWmiValues('Win32_BIOS', objCacic.getLocalFolderName, 'BiosCharacteristics,BIOSVersion,BuildNumber,Caption,CodeSet,Description,IdentificationCode,InstallDate,Manufacturer,Name,OtherTargetOS,PrimaryBIOS,ReleaseDate,SerialNumber,SMBIOSBIOSVersion,SMBIOSMajorVersion,SMBIOSMinorVersion,' + 'SoftwareElementID,TargetOperatingSystem,Version'); | |
995 | + strFieldsAndValuesToRequest := strFieldsAndValuesToRequest + ',Win32_BIOS=' + objCacic.replaceInvalidHTTPChars(objCacic.enCrypt(objCacic.replaceInvalidHTTPChars(tstrColetaHardware))); | |
996 | + | |
997 | + tstrColetaHardware := fetchWmiValues('Win32_MemoryDevice', objCacic.getLocalFolderName, 'Access,Availability,BlockSize,Caption,Description,DeviceID,EndingAddress,InstallDate,Name,NumberOfBlocks,PNPDeviceID,Purpose,SystemLevelAddress,SystemName'); | |
998 | + strFieldsAndValuesToRequest := strFieldsAndValuesToRequest + ',Win32_MemoryDevice=' + objCacic.replaceInvalidHTTPChars(objCacic.enCrypt(objCacic.replaceInvalidHTTPChars(tstrColetaHardware))); | |
999 | + | |
1000 | + tstrColetaHardware := fetchWmiValues('Win32_PhysicalMemory', objCacic.getLocalFolderName, 'BankLabel,Capacity,Caption,DataWidth,Description,DeviceLocator,FormFactor,InstallDate,InterleaveDataDepth,InterleavePosition,Manufacturer,MemoryType,Model,Name,OtherIdentifyingInfo,PartNumber,PositionInRow,' + 'SerialNumber,SKU,Speed,Tag,TotalWidth,TypeDetail,Version'); | |
1001 | + strFieldsAndValuesToRequest := strFieldsAndValuesToRequest + ',Win32_PhysicalMemory=' + objCacic.replaceInvalidHTTPChars(objCacic.enCrypt(objCacic.replaceInvalidHTTPChars(tstrColetaHardware))); | |
1002 | + | |
1003 | + tstrColetaHardware := fetchWmiValues('Win32_Processor', objCacic.getLocalFolderName, 'AddressWidth,Architecture,Availability,Caption,DataWidth,Description,DeviceID,ExtClock,Family,InstallDate,L2CacheSize,L2CacheSpeed,Level,Manufacturer,MaxClockSpeed,Name,NumberOfCores,NumberOfLogicalProcessors,OtherFamilyDescription,PNPDeviceID,' + 'ProcessorId,ProcessorType,Revision,Role,SocketDesignation,SystemName,UniqueId,UpgradeMethod,Version'); | |
1004 | + strFieldsAndValuesToRequest := strFieldsAndValuesToRequest + ',Win32_Processor=' + objCacic.replaceInvalidHTTPChars(objCacic.enCrypt(objCacic.replaceInvalidHTTPChars(tstrColetaHardware))); | |
1005 | + | |
1006 | + tstrColetaHardware := fetchWmiValues('Win32_Printer', objCacic.getLocalFolderName, 'Attributes,Availability,Caption,CharSetsSupported,Comment,CurrentCharSet,Default,Description,DeviceID,Direct,DriverName,HorizontalResolution,InstallDate,JobCountSinceLastReset,KeepPrintedJobs,LanguagesSupported,' + 'Local,Location,MarkingTechnology,MaxCopies,MaxNumberUp,MaxSizeSupported,MimeTypesSupported,Name,Network,PaperSizesSupported,PaperTypesAvailable,Parameters,PNPDeviceID,PortName,PrintProcessor,' + 'ServerName,Shared,ShareName,SpoolEnabled,SystemName,VerticalResolution,WorkOffline'); | |
1007 | + strFieldsAndValuesToRequest := strFieldsAndValuesToRequest + ',Win32_Printer=' + objCacic.replaceInvalidHTTPChars(objCacic.enCrypt(objCacic.replaceInvalidHTTPChars(tstrColetaHardware))); | |
1008 | + // Adiciona variáveis da coleta de hardware na requisição | |
1009 | + //strFieldsAndValuesToRequest := strFieldsAndValuesToRequest + ',Hardware=' + objCacic.replaceInvalidHTTPChars(objCacic.enCrypt(objCacic.replaceInvalidHTTPChars(tstrColetaHardware))); | |
1010 | + | |
1011 | + strColetaAtual := strFieldsAndValuesToRequest; | |
1012 | + Except | |
1013 | + on E : Exception do | |
1014 | + Begin | |
1015 | + objCacic.writeDebugLog('executeGerCols: Lançando Exceção #12'); | |
1016 | + objCacic.writeExceptionLog(E.Message,E.ClassName,'Exceção #12 - ' + objCacic.getValueFromTags('te_descricao_breve',strActionDefinition)); | |
1017 | + objCacic.setValueToFile('Collects',tstringsActions[intLoopActions] + '_End' , '99999999', strGerColsInfFileName); | |
1018 | + End; | |
1019 | + End; | |
1020 | + End | |
1021 | + else If (tstringsActions[intLoopActions] = 'col_soft') then | |
1022 | + Begin | |
1023 | + Try | |
1024 | + Inc(intTotalExecutedCollects); | |
1025 | + | |
1026 | + // Insere aqui a ação da coleta | |
1027 | + objCacic.writeDebugLog('executeGerCols: Executando coleta de Software -> '); | |
1028 | + tstrColetaSoftware := SoftwareList; | |
1029 | + | |
1030 | + // Adiciona variáveis da coleta de software na requisição | |
1031 | + strFieldsAndValuesToRequest := strFieldsAndValuesToRequest + ',SoftwareList=' + objCacic.replaceInvalidHTTPChars(objCacic.enCrypt(objCacic.replaceInvalidHTTPChars(tstrColetaSoftware))); | |
1032 | + | |
1033 | + strColetaAtual := strFieldsAndValuesToRequest; | |
1034 | + Except | |
1035 | + on E : Exception do | |
1036 | + Begin | |
1037 | + objCacic.writeDebugLog('executeGerCols: Lançando Exceção #13'); | |
1038 | + objCacic.writeExceptionLog(E.Message,E.ClassName,'Exceção #13 - ' + objCacic.getValueFromTags('te_descricao_breve',strActionDefinition)); | |
1039 | + objCacic.setValueToFile('Collects',tstringsActions[intLoopActions] + '_End' , '99999999', strGerColsInfFileName); | |
1040 | + End; | |
1041 | + End; | |
1042 | + | |
1043 | + End | |
953 | 1044 | else If (tstringsActions[intLoopActions] = 'col_moni') then |
954 | 1045 | Begin |
955 | 1046 | Try |
... | ... | @@ -1402,13 +1493,6 @@ Begin |
1402 | 1493 | |
1403 | 1494 | strFieldsAndValuesToRequest := strFieldsAndValuesToRequest + ',MonitoredProfiles=' + objCacic.replaceInvalidHTTPChars(objCacic.enCrypt(strColetaAtual)); |
1404 | 1495 | |
1405 | - // Adiciona coleta de software | |
1406 | - objCacic.writeDebugLog('executeGerCols: Executando coleta de Software -> '); | |
1407 | - tstrColetaSoftware := SoftwareList; | |
1408 | - | |
1409 | - // Adiciona variáveis da coleta de software na requisição | |
1410 | - strFieldsAndValuesToRequest := strFieldsAndValuesToRequest + ',SoftwareList=' + objCacic.replaceInvalidHTTPChars(objCacic.enCrypt(objCacic.replaceInvalidHTTPChars(tstrColetaSoftware))); | |
1411 | - | |
1412 | 1496 | Except |
1413 | 1497 | Begin |
1414 | 1498 | objCacic.setValueToFile('Collects',tstringsActions[intLoopActions] + '_End' ,'99999999', strGerColsInfFileName); |
... | ... | @@ -1449,13 +1533,6 @@ Begin |
1449 | 1533 | strFieldsAndValuesToRequest := strFieldsAndValuesToRequest + ',' + tstringsClasses[intLoopClasses] + '=' + objCacic.replaceInvalidHTTPChars(objCacic.enCrypt(objCacic.replaceInvalidHTTPChars(fetchWmiValues('Win32_' + tstringsClasses[intLoopClasses],objCacic.getLocalFolderName, objCacic.getValueFromTags(tstringsClasses[intLoopClasses] + '.Properties',strClassesAndProperties),objCacic.getValueFromTags(tstringsClasses[intLoopClasses] + '.WhereClause',strClassesAndProperties))))); |
1450 | 1534 | End; |
1451 | 1535 | |
1452 | - // Adiciona coleta de software | |
1453 | - objCacic.writeDebugLog('executeGerCols: Executando coleta de Software -> '); | |
1454 | - tstrColetaSoftware := SoftwareList; | |
1455 | - | |
1456 | - // Adiciona variáveis da coleta de software na requisição | |
1457 | - strFieldsAndValuesToRequest := strFieldsAndValuesToRequest + ',SoftwareList=' + objCacic.replaceInvalidHTTPChars(objCacic.enCrypt(objCacic.replaceInvalidHTTPChars(tstrColetaSoftware))); | |
1458 | - | |
1459 | 1536 | strColetaAtual := strFieldsAndValuesToRequest; |
1460 | 1537 | Except |
1461 | 1538 | on E : Exception do | ... | ... |