Règle de collecte de gestion de disque

SCDPM.DiskManagementCollection.Rule (Rule)

Knowledge Base article:

Règle de collecte de gestion de disque DPM

Règle de collecte de gestion de disque DPM

Element properties:

TargetMicrosoft.SystemCenter.DataProtectionManager.2011.Library.DPMServer
CategoryEventCollection
EnabledTrue
Alert GenerateFalse
RemotableTrue

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.TimedScript.EventProvider Default
BulkWA1 WriteAction DPM.DiskMgmt.DW.WA.XmlBulkInsertModule Default

Source Code:

<Rule ID="SCDPM.DiskManagementCollection.Rule" Enabled="true" Target="DPM!Microsoft.SystemCenter.DataProtectionManager.2011.Library.DPMServer" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.TimedScript.EventProvider">
<IntervalSeconds>43200</IntervalSeconds>
<SyncTime/>
<ScriptName>CollectDiskManagement.js</ScriptName>
<Arguments>"$Target/Property[Type="DPM!Microsoft.SystemCenter.DataProtectionManager.2011.Library.DPMServer"]/DiskManagementLastUpdateTime$"</Arguments>
<ScriptBody><Script>
var SCRIPT_NAME = "CollectDiskManagement.js";
var SEVERITY_ERROR = 1;
var SEVERITY_WARNING = 2;
var SEVERITY_INFO = 4;
var EVENT_ID = 90100;
var ARGUMENT_COUNT = 1;
if (WScript.Arguments.length != ARGUMENT_COUNT) {
WScript.Quit(0);
}

var lastUpdateTimeStr = WScript.Arguments(0)
var dotpos = lastUpdateTimeStr.lastIndexOf(".");

if (dotpos != -1)
{
lastUpdateTimeStr = lastUpdateTimeStr.substring(0, dotpos);
}

lastUpdateTimeStr = lastUpdateTimeStr.replace("T", " ");
lastUpdateTimeStr = lastUpdateTimeStr.replace("-", "/");
var lastUpdateTime = new Date(lastUpdateTimeStr);
lastUpdateTime.setDate(lastUpdateTime.getDate() - 1);

function getValue(str) {
if(str==null) str="";
return str;
}

var momApi = new ActiveXObject("MOM.ScriptAPI");
var pBag = momApi.CreatePropertyBag();

try {

var wsh = new ActiveXObject("WScript.Shell");

var sqlServer = wsh.RegRead("HKLM\\SOFTWARE\\Microsoft\\Microsoft Data Protection Manager\\DB\\SqlServer");
var sqlInstance = wsh.RegRead("HKLM\\SOFTWARE\\Microsoft\\Microsoft Data Protection Manager\\DB\\InstanceName");
var dbName = wsh.RegRead("HKLM\\SOFTWARE\\Microsoft\\Microsoft Data Protection Manager\\DB\\DatabaseName");

var connString = "Data Source=" + sqlServer + "\\" + sqlInstance + ";Initial Catalog=" + dbName + ";Integrated Security=SSPI;Provider=SQLOLEDB";

var connection = new ActiveXObject("ADODB.Connection");
connection.Open(connString);

var rs = new ActiveXObject("ADODB.Recordset");
var query = "SELECT DPMServerName \
,DiskID \
,DiskName \
,TotalSize \
,FreeSize \
,IsInStoragePool \
,DiskType \
,HealthStatus \
,IsMissing \
,IsForeign \
,CanAddToStoragePool \
,CreatedDateTime \
FROM vw_RPT_DiskMgmt WHERE CreatedDateTime &gt; '" + lastUpdateTime.getFullYear() + "-" + (lastUpdateTime.getMonth() + 1) + "-" + lastUpdateTime.getDate() + "'";
rs.Open(query, connection);

rs.MoveFirst;
/* columns[] array stores the name of columns which will be present in views */
/* THIS REPRESENTATION MAKES THE TASK OF CHANGING COLUMNS NAME EASY */

var columns = ["DPMServerName"
,"DiskID"
,"DiskName"
,"TotalSize"
,"FreeSize"
,"IsInStoragePool"
,"DiskType"
,"HealthStatus"
,"IsMissing"
,"IsForeign"
,"CanAddToStoragePool"
,"CreatedDateTime"
] ;

var noOfColumns = columns.length;

while(!rs.eof)
{
pBag = null;
var pBag = momApi.CreatePropertyBag();

for(i=0;i&lt;noOfColumns;i++)
pBag.AddValue(columns[i],getValue(rs.fields(i).Value));



momApi.AddItem(pBag);

rs.movenext;
}
rs.close;
connection.close;
}
catch (e) {
momApi.LogScriptEvent(SCRIPT_NAME, EVENT_ID, SEVERITY_ERROR, e.Message);
}
finally {
momApi.ReturnItems();
}
</Script></ScriptBody>
<TimeoutSeconds>60</TimeoutSeconds>
<EventOriginId>$MPElement$</EventOriginId>
<PublisherId>$MPElement$</PublisherId>
<PublisherName>CustomScript</PublisherName>
<Channel>CustomScript</Channel>
<LoggingComputer>$Target/Property[Type="DPM!Microsoft.SystemCenter.DataProtectionManager.2011.Library.DPMServer"]/DPMServerName$</LoggingComputer>
<EventNumber>555</EventNumber>
<EventCategory>0</EventCategory>
<EventLevel>4</EventLevel>
<UserName/>
<Params/>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="BulkWA1" TypeID="DPM.DiskMgmt.DW.WA.XmlBulkInsertModule" Target="MSDL!Microsoft.SystemCenter.DataWarehouseConnectorServer">
<spname>SCDPM.DiskManagementInsert</spname>
</WriteAction>
</WriteActions>
</Rule>