Dağıtım Noktasına Paket Atama
Aşağıdaki örnekte, Configuration Manager'deki ve SMS_SystemResourceList
sınıflarını kullanarak bir dağıtım noktasının bir pakete SMS_DistributionPoint
nasıl atandığı gösterilmektedir. Pakette yalnızca kaynak dosyalar (PkgSourcePath) varsa bir pakete dağıtım noktası atamanız gerekir. Program kaynak dosyaları bir dağıtım noktası paylaşımına yayılana kadar paket tanıtılmaz. Varsayılan dağıtım noktası paylaşımını kullanabilir veya kullanılacak paylaşımı belirtebilirsiniz. Ayrıca, paket kaynak dosyalarınızı dağıtmak için kullanılacak birden fazla dağıtım noktası da belirtebilirsiniz, ancak bu örnek bunu göstermez.
Dağıtım noktasına paket atamak için
SMS Sağlayıcısı ile bağlantı kurun.
Yeni bir dağıtım noktası nesnesi oluşturun (bu gerçek bir dağıtım noktası değildir).
Mevcut paketi yeni dağıtım noktası nesnesiyle ilişkilendirin.
Sağlanan site koduna ve sunucu adına göre tek bir dağıtım noktası için sorgu oluşturun.
Dağıtım noktası nesnesinin
ServerNALPath
özelliğini doldurmak için sorgu sonuçlarını kullanın.Dağıtım noktası nesnesini ve özelliklerini kaydedin.
Örnek
Aşağıdaki örnek yöntem bir dağıtım noktasına paket atar.
Örnek kodu çağırma hakkında bilgi için bkz. Configuration Manager Kod Parçacıklarını Çağırma.
Sub SWDAssignPackageToDistributionPoint(connection, existingPackageID, siteCode, serverName)
Const wbemFlagReturnImmediately = 16
Const wbemFlagForwardOnly = 32
Dim distributionPoint
Dim query
Dim listOfResources
Dim resource
' Create distribution point object (this is not an actual distribution point).
Set distributionPoint = connection.Get("SMS_DistributionPoint").SpawnInstance_
' Associate the existing package with the new distribution point object.
distributionPoint.PackageID = existingPackageID
' This query selects a single distribution point based on the provided SiteCode and ServerName.
query = "SELECT * FROM SMS_SystemResourceList WHERE RoleName='SMS Distribution Point' AND SiteCode='" & siteCode & "' AND ServerName='" & serverName & "'"
Set listOfResources = connection.ExecQuery(query, , wbemFlagForwardOnly Or wbemFlagReturnImmediately)
' The query returns a collection that needs to be enumerated (although we should only get one instance back).
For Each resource In ListOfResources
distributionPoint.ServerNALPath = Resource.NALPath
distributionPoint.SiteCode = Resource.SiteCode
Next
' Save the distribution point instance for the package.
distributionPoint.Put_
' Display notification text.
Wscript.Echo "Assigned package: " & distributionPoint.PackageID
End Sub
public void AssignPackageToDistributionPoint(WqlConnectionManager connection, string existingPackageID, string siteCode, string serverName)
{
try
{
// Create the distribution point object (this is not an actual distribution point).
IResultObject distributionPoint = connection.CreateInstance("SMS_DistributionPoint");
// Associate the package with the new distribution point object.
distributionPoint["PackageID"].StringValue = existingPackageID;
// This query selects a single distribution point based on the provided siteCode and serverName.
string query = "SELECT * FROM SMS_SystemResourceList WHERE RoleName='SMS Distribution Point' AND SiteCode='" + siteCode + "' AND ServerName='" + serverName + "'";
//
IResultObject listOfResources = connection.QueryProcessor.ExecuteQuery(query);
foreach (IResultObject resource in listOfResources)
{
Console.WriteLine(resource["SiteCode"].StringValue);
distributionPoint["ServerNALPath"].StringValue = resource["NALPath"].StringValue;
distributionPoint["SiteCode"].StringValue = resource["SiteCode"].StringValue;
}
// Save the distribution point object and properties.
distributionPoint.Put();
// Output package ID of assigned package.
Console.WriteLine("Assigned package: " + distributionPoint["PackageID"].StringValue);
}
catch (SmsException ex)
{
Console.WriteLine("Failed to create package. Error: " + ex.Message);
throw;
}
}
Örnek yöntem aşağıdaki parametrelere sahiptir:
Parametre | Tür | Açıklama |
---|---|---|
connection swbemServices |
-Yönetilen: WqlConnectionManager - VBScript: SWbemServices |
SMS Sağlayıcısına geçerli bir bağlantı. |
existingPackageID |
-Yönetilen: String -Vbscript: String |
Mevcut paketin kimliği. |
siteCode |
-Yönetilen: String -Vbscript: String |
Site kodu. |
serverName |
-Yönetilen: String -Vbscript: String |
Sunucunun adı. |
Kodu Derleme
C# örneği şunları gerektirir:
Ad alanları
Sistem
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Derleme
adminui.wqlqueryengine
microsoft.configurationmanagement.managementprovider
Mscorlib
Sağlam Programlama
Hata işleme hakkında daha fazla bilgi için bkz. Configuration Manager Hataları Hakkında.
Ayrıca Bkz
Yazılım dağıtımına genel bakışSunucu WMI Sınıfı SMS_SCI_Componentsite denetim dosyası hakkında
SMS_SystemResourceList Sunucusu WMI Sınıfı
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin