選択したソフトウェアがないサーバーのリストを表示するクエリを持っている人はいますか?つまり、SCOMエージェント、アンチウイルス、バックアップエージェント。
この基本的なSQLは、forefront
に一致するソフトウェアがインストールされていないすべてのコンピューターを表示します。
SELECT ResourceID, Name0, SMS_Unique_Identifier0
FROM v_R_System
WHERE ResourceID NOT IN
(
SELECT ResourceID
FROM v_GS_INSTALLED_SOFTWARE
WHERE ProductName0 LIKE '%forefront%'
)
forefront
は、関心のあるソフトウェアの名前に置き換えることができます。
アイデアは、ソフトウェアがインストールされているdoのすべてのコンピューターを提供するクエリを作成し、NOT IN
を使用してそれを元に戻します。 ソフトウェアがインストールされていないコンピューターを入手してください。
ここでも同じですが、クエリのWQLでは次のようになります。
SELECT SMS_R_System.Name
FROM SMS_R_System
WHERE SMS_R_System.ResourceId NOT IN
(
SELECT SMS_G_System_Installed_Software.ResourceId
FROM SMS_G_System_Installed_Software
WHERE SMS_G_System_Installed_Software.ProductName LIKE "%forefront%"
)
ARPの使用がより正確であることがわかりました。
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
where SMS_R_System.ResourceId not in
(
select SMS_R_System.ResourceId from SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName LIKE "%<Application Name>%"
)
and SMS_R_System.Client = 1
and SMS_R_SYSTEM.OperatingSystemNameAndVersion like 'Microsoft Windows NT%Server%'