Я использую BigFix в корпоративной среде и заметил, что недавний раунд патчей Microsoft на 2016 год не прошел на небольшой группе ресурсов. Мне удалось обойти это, создав фикслеты Custom Copy Fixlets с измененной релевантностью, однако релевантность, которую мне приходилось использовать, не всегда была согласованной, даже несмотря на то, что большинство файлов находились в C: \ Windows \ Sytem32
.
Например: MS16-031 - критерии, которые мои платформа сканирования, которую ищет, основана на номере версии для Ntdll.dll
. Я создаю настраиваемый Fixlet с релевантностью:
((версия x64-файла "C: \ Windows \ System32 \ Ntdll.dll") в виде строки)
Это отлично сработало, так как я ранее создавал анализ BigFix. ищет Ntdll.dll
с использованием релевантности:
если (существует x64-файл "C: \ Windows \ System32 \ Ntdll.dll") then ((версия x64-файла "C: \ Windows \ System32 \ Ntdll.dll ") в виде строки) иначе" Не существует "
Я смог подтвердить, что релевантность для Custom Fixlet была примерно с анализом. По какой-то причине это не зеркальное отображение этих двух, но оно очень близко, и в списке Custom Fixlet есть все машины, отмеченные в результатах сканирования, так что я доволен этим.
Проблема возникает здесь: Для некоторые файлы в C: \ Windows \ System32
, мне нужно использовать совершенно другой синтаксис, чтобы получить правильную информацию о номере версии, которую я ищу, на основе результатов сканирования. То есть я могу использовать метод, указанный выше, но информация о версии, которую он предоставит, даже не близка к тому, что ищет сканер. Если бы я использовал вышеуказанный метод, предполагая, что сканер ищет что-то вроде " файл (команда)
может привести к разным результатам в зависимости от пути для 32-битных систем и 64-битных систем, однако я подумал, что это применимо только к файлам, расположенным в C: \ Program Files
и C: \ Program Files (x86)
? Разве это не так? Если да, то где находится 64-разрядная версия System32 и почему результаты между ними так сильно различаются?
Просто чтобы прояснить, это вопрос о релевантности BigFix, а не BigFix ActionScript.
Я скажу, что хотя релевантность BigFix имеет небольшую кривую обучения и иногда затрудняет понимание источника сложности, проблемы, с которыми вы сталкиваетесь, в большей степени связаны со сложностью того, как файлы могут содержать множество различных типов информации о версии, а также с тем, как работает перенаправление WindowsOnWindows от Microsoft.
Простая причина, по которой информация о версии файла может отличаться в зависимости от того, откуда вы ее прочитали, заключается в том, что существует несколько мест для размещения версий файлов, и они могут точно совпадать, или же они могут быть разными. Это зависит от создателя файла и от того, как они хотят передать значение информации о версии.
Значение версий файлов "mfds.dll"
читается в одном месте, а значение значения "FileVersion" блоков версий файлов "mfds.dll"
читается в другом месте.
Смотрите здесь:
Q: (values "FileVersion" of version blocks of it, (it as string) of versions of it) of files "mfds.dll" of (system folders)
A: 10.0.14342.1000 (rs1_release.160506-1708), 10.0.14342.1000
T: 3.677 ms
I: plural ( string, string )
Не думаю, что различия, которые вы видите, связаны с различиями между файлом
и x64 файлом
, но это важно понимать по многим причинам.
Для целей этого вопроса предположим, что речь идет о 64-разрядном Windows-компьютере, и вы должны предположить, что это применимо к Windows Vista или более поздней версии, но может также применяться и к Windows XP 64-разрядной версии.
Поскольку клиент BigFix - это 32-битный процесс, все чтения файлов, которые будут сделаны в специальные x64-битные места, на самом деле перенаправляются Windows в 32-битное место.
В чем разница между файлами
и x64 файлами
в релевантности BigFix? В случае с большинством файлов, использование либо файлов
, либо x64 файлов
фактически прочитает один и тот же файл. Это связано с тем, что использование x64 файлов
говорит BigFix читать файл с отключенной переадресацией WindowsOnWindows(WoW), но эта переадресация применяется только к чтению определенных путей. Одним из примеров является Program Files
, а другим - System32
, в то время как на что-то вроде C:\Windows\Temp
перенаправление WoW вообще не влияет, поэтому любой файл, прочитанный по адресу C:\Windows\Temp
работает одинаково независимо от его местоположения.
C:\Program Файлы (x86)
C:\Program Файлы
C:\Windows\SysWOW64
C:\Windows\System32
C:\Windows\sysnative
Мы благодарим Microsoft за то, что расположение 64-битной системы имеет 32 в названии, в то время как расположение 32-битной системы имеет 64 в названии. Это, безусловно, крайне распространенный источник недоразумений.
Используйте эту значимость, чтобы увидеть, что на самом деле на системе есть 2 копии mfds.dll
.
(имя, размер) файлов "mfds. dll" (системные папки; системные x64 папки)
Это значение считывается с обоих мест, так как (системные папки; системные x64 папки)
говорит BigFix читать БОТУ папку C:\Windows\SysWOW64
, а также папку C:\Windows\System32
.
С ума сойти? Сбиваешь с толку? Просто подождите, становится все страннее.
Запустите следующую релевантность в отладчике фикслета: патнамы файлов "mfds.dll" (системные папки; системные папки x64)
Q: pathnames of files "mfds.dll" of (system folders; system x64 folders)
A: C:\WINDOWS\system32\mfds.dll
A: C:\WINDOWS\system32\mfds.dll
T: 1.312 ms
I: plural string
Обратите внимание, что патнамы обоих файлов одни и те же, но это не один и тот же файл!!!
Вот как работает WindowsOnWindows Redirection. Она лжет 32-битному процессу и говорит ему, что читает файл из папки C:\Windows\System32
, хотя читает его с C: \Windows\SysWOW64
вместо этого в случае использования системных папок , BigFix правильно сообщает путь как
C:\WINDOWS\system32\mfds. dll
. Затем в случае релевантности системных x64 папок BigFix (32-битный процесс) сообщает Windows, что хочет прочитать местоположение
C:\Windows\System32
с отключенным перенаправлением, и в этом случае фактически считывает файл, находящийся по адресу C:\WINDOWS\system32\mfds. dll
и правильно сообщают путь как таковой.
Хочу еще раз повторить, это никак не связано с BigFix и все, что связано с реализацией компанией Microsoft Windows 64bit с Windows 32bit redirection.
Для будущих вопросов по BigFix я бы настоятельно рекомендовал очень активные форумы: https://forum.bigfix.com/