Monday, December 7, 2009

Инвентаризация общих папок


Чтобы получить отчёт по общим папкам на компьютерах домена, нужно просто найти в файле \Microsoft Configuration Manager\inboxes\clifiles.src\hinv\sms_def.mof найти строку SMS_Group_Name ("Shares") и заменить FALSE на TRUE:




[ SMS_Report (TRUE),
SMS_Group_Name ("Shares"),
SMS_Class_ID ("MICROSOFT|SHARE|1.0") ]

class Win32_Share : SMS_Class_Template
{
[SMS_Report (TRUE), SMS_Units("DecimalString")]
uint32 AccessMask;
[SMS_Report (TRUE) ]
boolean AllowMaximum;
[SMS_Report (TRUE) ]
string Caption;
[SMS_Report (TRUE) ]
string Description;
[SMS_Report (TRUE) ]
datetime InstallDate;
[SMS_Report (TRUE) ]
uint32 MaximumAllowed;
[SMS_Report (TRUE), key]
string Name;
[SMS_Report (TRUE) ]
string Path;
[SMS_Report (TRUE) ]
string Status;
[SMS_Report (TRUE), SMS_Units("DecimalString")]
uint32 Type;
};


После перекомпилирования файла и прохождения цикла инвентаризации на клиентах, в базе SCCM появится таблица v_GS_SHARE.

Затем можно строить запрос:

SELECT TOP (100) PERCENT dbo.v_R_System.Netbios_Name0 AS Компьютер, dbo.v_GS_SHARE.Name0 AS [Имя папки], dbo.v_GS_SHARE.Path0 AS Путь
FROM dbo.v_R_System INNER JOIN
dbo.v_GS_SHARE ON dbo.v_R_System.ResourceID = dbo.v_GS_SHARE.ResourceID
WHERE (dbo.v_GS_SHARE.Name0 <> 'C$') AND (dbo.v_GS_SHARE.Name0 <> 'D$') AND (dbo.v_GS_SHARE.Name0 <> 'E$') AND (dbo.v_GS_SHARE.Name0 <> 'F$') AND
(dbo.v_GS_SHARE.Name0 <> 'G$') AND (dbo.v_GS_SHARE.Name0 <> 'ADMIN$') AND (dbo.v_GS_SHARE.Type0 <> '1') AND (dbo.v_GS_SHARE.Name0 <> 'IPC$') AND
(dbo.v_GS_SHARE.Name0 <> 'print$')
ORDER BY Компьютер