В процессе развертывания программного обеспечения через SCCM может возникнуть необходимость создания отдельных коллекций компьютеров в зависимости от битности используемой на них ОС, так как сейчас многие приложения имеют отдельные инсталляционные пакеты для разных платформ. Пример запроса на создание коллекции компьютеров по маске имени (например выбираем только ноутбуки и рабочие станции) и битности ОС для 32-битных систем Windows:
select
SMS_R_SYSTEM.ResourceID,
SMS_R_SYSTEM.ResourceType,
SMS_R_SYSTEM.Name,
SMS_R_SYSTEM.SMSUniqueIdentifier,
SMS_R_SYSTEM.ResourceDomainORWorkgroup,
SMS_R_SYSTEM.Client
from SMS_R_System
inner join SMS_G_System_COMPUTER_SYSTEM
on SMS_G_System_COMPUTER_SYSTEM.ResourceId = SMS_R_System.ResourceId
where (
SMS_R_System.NetbiosName like "KOM-%-NB%"
or SMS_R_System.NetbiosName like "KOM-%-WS%"
)
and SMS_G_System_COMPUTER_SYSTEM.SystemType = "x86-based PC"
И соответственно тот же запрос только для 64-битных систем Windows будет отличаться лишь последней строкой:
and SMS_G_System_COMPUTER_SYSTEM.SystemType = "x64-based PC"
Компьютеры под управлением Windows в среднестатистическом рабочем окружении могу иметь три основных типа существования:
- 32-битная ОС установлена на x86 процессор
- 64-битная ОС установлена на x64 процессор
- 32-битная ОС установлена на x64 процессор
Мы можем наглядно получить информацию о распределении таких типов существования в нашем окружении сформировав на SCCM отчет с запросом:
select distinct sys.netbios_name0,
case when pr.addresswidth0 = 64 then '64bit OS'
when pr.addresswidth0=32 then '32bit OS'
end as [Operating System Type],
case when pr.addresswidth0=32 and pr.DataWidth0=64 then '*'
end as [32-bit OS on x64 processor]
from v_r_system sys
join v_gs_processor pr on sys.resourceid=pr.resourceid
Результат будет выглядеть примерно так:
Или например чтобы получить сводную информацию о том как в данный момент распределены версии ОС по компьютерам в зависимости от их аппаратных возможностей можно сделать отчет на базе запроса:
select
OS.Caption0,
case when pr.Is64Bit0=1 then '64-bit'
when pr.Is64Bit0=0 then '32-bit'
end as [Processor Type],
Count(*)
from
dbo.v_gs_processor PR Left Outer Join dbo.v_GS_OPERATING_SYSTEM OS on PR.ResourceID = OS.ResourceId
Group by OS.Caption0, pr.Is64Bit0
Order by OS.Caption0, pr.Is64Bit0
Возможно что эта информация будет полезна при планировании перехода с 32-битных систем на 64-битные.
Последние комментарии