这几天有个朋友问我SCCM能不能收集并查看所管理的计算机上的网络共享文件夹?这个需求很合理但SCCM好像没有这类直接的报表。怎么办呢?
原来在SMS的时候曾经修改sms_def.mof过文件来收集注册表中的特殊键值,可以通过此思路试试看。
首先我们在安装路径:\Microsoft Configuration Manager\Inboxes\clifiles.src\hinv\中找到sms_def.mof文件,该文件可以使用记事本或者代码编辑工具打开。
文件中每一个收集的项都相对独立的一段代码,
//*************************************************************************
//*
//* network shares
//*
//*************************************************************************
[ 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;
};
然后保存文件。
注意:只有sms_def.mof文件重新被加载时才会生效,所以我们可以重新启动相关服务或者是SCCM服务器。
当服务器再次从客户端收集硬件信息时便会收集我们添加的这段信息了。
然后我们在SCCM服务器上创建一个新的查询报表:
输入相关查询语句
SELECT
v_R_System.Name0 AS '计算机', v_GS_SHARE.Path0 AS '路径', v_GS_SHARE.Name0 AS '共享名称', v_GS_SHARE.Status0 AS '状态'
FROM
v_GS_SHARE INNER JOIN
v_R_System ON v_GS_SHARE.ResourceID = v_R_System.ResourceID
打开报表就可以查看相关数据了。