In Foren tritt manchmal die Frage auf, ob SMS/SCCM auch den Inhalt der boot.ini inventarisieren kann. Bisher war meine Antwort meistens: "Klar. Skript schreiben, boot.ini auslesen, Inhalt in die WMI schreiben, sms_def.mof anpassen".
Durch Zufall bin ich über einen Registrykey gestoplert, der den Inhalt der boot.ini (und BCD bei Server 2008 / Vista) beinhaltet: HKLM\SYSTEM\CurrentControlSet\Control. Wie praktisch. Einfach die sms_def.mof (und configuration.mof) anpassen und schon hat man diese Infos inventarisiert.
Im Resource Explorer sieht’s dann so aus:
Die boot.ini an sich so:
Folgende Änderungen müssen dazu an der sms_def.mof / configuration.mof vorgenommen werden (Änderungen auf eigene Gefahr! Vor produktivem Einsatz in einem Testlab testen!)
sms_def.mof
//=================================================================================
// mssccmfaq.de – BootInfo
//=================================================================================
#pragma namespace ("\\\\.\\root\\cimv2\\sms")
[ SMS_Report (TRUE),
SMS_Group_Name ("BootInfo"),
SMS_Class_ID ("MSSCCMFAQ|BootInfo|1.0") ]
class BootInfo : SMS_Class_Template
{
[SMS_Report (TRUE), key ]
string KeyName;
[SMS_Report (TRUE) ]
string SystemBootDevice;
[SMS_Report (TRUE) ]
string SystemStartOptions;
};
configuration.mof
//=================================================================================
// mssccmfaq.de – BootInfo
//=================================================================================
#pragma namespace ("\\\\.\\root\\cimv2")
#pragma deleteclass("BootInfo", NOFAIL)
[DYNPROPS]
class BootInfo
{
[key] string KeyName = "";
string SystemBootDevice;
string SystemStartOptions;
};
[DYNPROPS]
instance of BootInfo
{
KeyName = "Bootinfo";
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control|SystemBootDevice"),
Dynamic, Provider("RegPropProv")]
SystemBootDevice;
[PropertyContext("local|HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control|SystemStartOptions"),
Dynamic, Provider("RegPropProv")]
SystemStartOptions;
};