Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Configuration Manager, amikor a Data Discovery Manager (DDM) észleli, hogy az adatfelderítési rekord (DDR) tartalmaz egy olyan tulajdonságot, amely nem létezik az erőforrásosztályban, a tulajdonság hozzá lesz adva az erőforrásosztályhoz. Az új tulajdonság adattípusától függően az erőforrás korábbi példányai nulla vagy üres sztringet ("") tartalmaznak az új tulajdonság értékéhez. Egy meglévő erőforrásosztály frissítésekésekor meg kell adnia az összes osztálytulajdonságt. Ne tartalmazza azonban a DDM által létrehozott hét tulajdonságot. Amikor a DDM új erőforrásosztályt hoz létre, a következő további tulajdonságokat adja hozzá az osztályhoz:
Erőforrás-azonosító
Ügynök neve
AgentSite
AgentTime
Name (Név)
ResourceType
SMSAssignedSite
A tulajdonságok leírását lásd:
SMS_R_System
. Ezen tulajdonságok létrehozása mellett a DDM létrehoz egy példánytSMS_ResourceMap
az új ResourceType értékhez.
Tulajdonságok hozzáadása meglévő erőforrástípushoz
Meglévő erőforrás adott példányának lekérése.
Hozzon létre egy új példányt a
SMSResGen
osztályból.Hozzon létre egy új DDR-t a
NewDDR
metódussal.Adjon hozzá tulajdonságokat a DDR-hez a ADDPROP_ metódusokkal.
Írja be az új DDR-t egy fájlba a
DDRWrite
metódussal.
Példa
Az alábbi példa létrehoz egy DDR-t, amely hozzáadja a OrganizationalUnit
tulajdonságot a SMS_R_System
osztályhoz. Ezt a tulajdonságot használhatja a részlegek alapján létrehozott gyűjteményekhez, és ennek megfelelően terjesztheti a szoftvereket. Ha a szervezete Active Directoryt használ, a benne található adatokkal feltöltheti a tulajdonságot OrganizationalUnit
.
Az alábbi példa a rendszererőforrás-osztály frissítéséhez használt kulcs-, név- és GUID-tulajdonságokat mutatja be.
Sub CreateDDRToAddNewPropertiesToAnExistingResourceType()
' Define variables.
Dim resourceID
Dim existingResource
Dim newDDR
Dim siteCode
Dim organizationalUnit
' Set variables.
resourceID = 5
siteCode = "TQ1"
organizationalUnit = "Test OU"
' Get a specific resource (client) object using the resourceID value.
Set existingResource = GetObject("winmgmts:root/sms/site_" & siteCode & ":SMS_R_System.ResourceID=" & resourceID & "")
' Load an instance of the SMSResGen.dll.
Set newDDR = CreateObject("SMSResGen.SMSResGen.1")
' Create a new DDR using the DDRNew method.
newDDR.DDRNew "System", "Department Discovery", siteCode
' Add properties to the new DDR using the DDRAdd methods.
newDDR.DDRAddInteger "Client", existingResource.Client, ADDPROP_NONE
newDDR.DDRAddString "Client Version", existingResource.ClientVersion, 15, ADDPROP_NONE
newDDR.DDRAddStringArray "IP Addresses", existingResource.IPAddresses, 64, ADDPROP_NONE
newDDR.DDRAddStringArray "IP Subnets", existingResource.IPSubnets, 64, ADDPROP_NONE
newDDR.DDRAddString "Last Logon User Domain", existingResource.LastLogonUserDomain, 64, ADDPROP_NONE
newDDR.DDRAddString "Last Logon User Name", existingResource.LastLogonUserName, 255, ADDPROP_NONE
newDDR.DDRAddStringArray "MAC Addresses", existingResource.MACAddresses, 64, ADDPROP_KEY
newDDR.DDRAddString "NetBIOS Name", existingResource.NetbiosName, 64, ADDPROP_NAME
newDDR.DDRAddString "Operating System Name and Version", existingResource.OperatingSystemNameandVersion, 64, ADDPROP_NONE
newDDR.DDRAddString "Resource Domain OR Workgroup", existingResource.ResourceDomainORWorkgroup, 64, ADDPROP_NONE
newDDR.DDRAddStringArray "Resource Names", existingResource.ResourceNames, 128, ADDPROP_NONE
newDDR.DDRAddStringArray "SMS Installed Sites", existingResource.SMSInstalledSites, 3, ADDPROP_NONE
newDDR.DDRAddString "SMS Unique Identifier", existingResource.SMSUniqueIdentifier, 64, ADDPROP_GUID OR ADDPROP_KEY
newDDR.DDRAddStringArray "System Roles", existingResource.SystemRoles, 32, ADDPROP_NONE
' The new property that is being added.
newDDR.DDRAddString "Organizational Unit", OrganizationalUnit, 64, ADDPROP_NONE
' Write new DDR to file.
newDDR.DDRWrite "NewDDR_AddToExistingResource.DDR"
wscript.echo "Created new DDR."
End Sub
public void CreateDDRToAddNewPropertiesToAnExistingResourceType(WqlConnectionManager connection)
{
try
{
// Define and set the required variables.
int resourceID = 5;
string siteCode = "TQ1";
string organizationalUnit = "Test OU";
// Get a specific resource (client) object using the resourceID value.
IResultObject existingResource = connection.GetInstance(@"SMS_R_SYSTEM.ResourceID='" + resourceID + "'");
// Create the SMSResGenClass instance.
SMSRSGENCTLLib.SMSResGen newDDR = new SMSRSGENCTLLib.SMSResGen();
// Create a new DDR using the DDRNew method.
newDDR.DDRNew("System", "Department Discovery", siteCode);
// Add properties to the new DDR using the DDRAddInteger, DDRAddString and DDRAddStringArray methods.
newDDR.DDRAddInteger("Client", existingResource["Client"].IntegerValue, SMSRSGENCTLLib.DDRPropertyFlagsEnum.ADDPROP_NONE);
newDDR.DDRAddString("Client Version",existingResource["ClientVersion"].StringValue, 15, SMSRSGENCTLLib.DDRPropertyFlagsEnum.ADDPROP_NONE);
newDDR.DDRAddStringArray("IP Addresses",existingResource["IPAddresses"].StringArrayValue, 64, SMSRSGENCTLLib.DDRPropertyFlagsEnum.ADDPROP_NONE);
newDDR.DDRAddStringArray("IP Subnets", existingResource["IPSubnets"].StringArrayValue, 64, SMSRSGENCTLLib.DDRPropertyFlagsEnum.ADDPROP_NONE);
newDDR.DDRAddString("Last Logon User Domain",existingResource["LastLogonUserDomain"].StringValue, 255, SMSRSGENCTLLib.DDRPropertyFlagsEnum.ADDPROP_NONE);
newDDR.DDRAddString("Last Logon User Name",existingResource["LastLogonUserName"].StringValue, 64, SMSRSGENCTLLib.DDRPropertyFlagsEnum.ADDPROP_KEY);
newDDR.DDRAddStringArray("MAC Addresses",existingResource["MACAddresses"].StringArrayValue, 32, SMSRSGENCTLLib.DDRPropertyFlagsEnum.ADDPROP_NAME);
newDDR.DDRAddString("NetBIOS Name",existingResource["NetbiosName"].StringValue, 64, SMSRSGENCTLLib.DDRPropertyFlagsEnum.ADDPROP_NONE);
newDDR.DDRAddString("Operating System Name and Version",existingResource["OperatingSystemNameandVersion"].StringValue, 64, SMSRSGENCTLLib.DDRPropertyFlagsEnum.ADDPROP_NONE);
newDDR.DDRAddStringArray("Resource Names",existingResource["ResourceNames"].StringArrayValue, 128, SMSRSGENCTLLib.DDRPropertyFlagsEnum.ADDPROP_NONE);
newDDR.DDRAddStringArray("SMS Installed Sites",existingResource["SMSInstalledSites"].StringArrayValue, 3, SMSRSGENCTLLib.DDRPropertyFlagsEnum.ADDPROP_NONE);
newDDR.DDRAddString("SMS Unique Identifier",existingResource["SMSUniqueIdentifier"].StringValue, 64, SMSRSGENCTLLib.DDRPropertyFlagsEnum.ADDPROP_GUID | SMSRSGENCTLLib.DDRPropertyFlagsEnum.ADDPROP_KEY);
newDDR.DDRAddStringArray("System Roles",existingResource["SystemRoles"].StringArrayValue, 32, SMSRSGENCTLLib.DDRPropertyFlagsEnum.ADDPROP_NONE);
// The new property that is being added.
newDDR.DDRAddString("Organizational Unit", organizationalUnit, 64, SMSRSGENCTLLib.DDRPropertyFlagsEnum.ADDPROP_ARRAY | SMSRSGENCTLLib.DDRPropertyFlagsEnum.ADDPROP_NONE);
// Write new DDR to file.
newDDR.DDRWrite("NewDDR_AddToExistingResource.DDR");
Console.WriteLine("Created new DDR.");
}
catch (SmsException ex)
{
Console.WriteLine("Failed to create DDR. Error: " + ex.Message);
throw;
}
}
A példametódus nem rendelkezik paraméterekkel.
A kód fordítása
Fontos
Ehhez a VBScript- és C#-példához smsrsgen.dll és smsrsgenctl.dllszükséges. Mindkét fájl a letölthető Configuration Manager SDK része (az "Újraterjeszthető fájlok" mappában).
A smsrsgenctl.dll fájl egy 32 bites DLL, és regisztrálva kell lennie az alkalmazást futtató rendszeren. Emellett az smsrsgenctl.dll használó alkalmazást x86-alkalmazásként kell lefordítani.
Robusztus programozás
A hibakezeléssel kapcsolatos további információkért lásd: A Configuration Manager hibák ismertetése.
.NET-keretrendszer Security
A Configuration Manager alkalmazások biztonságossá tételével kapcsolatos további információkért lásd: Configuration Manager szerepköralapú felügyelet.