SCCM 2007: создание новой рекламы с использованием WMI

Я пытаюсь создать новую рекламу с помощью Powershell. Я посмотрел вокруг и нашел кучу скриптов, которые используют WMI. Использование Set-WMIInance для класса SMS_Advertise. Я могу сделать это!

Моя проблема в том, что, кажется, есть еще один класс SMS_AdtactInfo. Когда я использую Консоль SCCM 2007 и создаю новое объявление, оба класса обновляются и имеют все необходимое для нового объявления.

Мне нужна помощь в понимании процесса. Кажется, что нет никакой документации для класса SMS_AdvertisingInfo, и все просто ссылаются на добавление экземпляров в класс SMS_Advertise.

Что я делаю неправильно? Приведенный ниже код создает новую рекламу из существующей.

# Get all the advertisements for the specific package
$adv = Get-WmiObject -Namespace "root\SMS\$SMSSite" -Query "Select * from SMS_Advertisement WHERE PackageID = '$($pkg.PackageID)'" -ComputerName $SMSServer

# Get SMS Parts for creating the new Advertisement: CollectionID, PackageID, Program
$collectionID = (Get-WmiObject -Namespace "root\SMS\$SMSSite" -ComputerName $SMSServer -Query "Select * from SMS_Collection WHERE Name = '$AdvCollectionName'").CollectionID
$packageID = (Get-WmiObject -Namespace "root\SMS\$SMSSite" -ComputerName $SMSServer -Query "Select PackageID from SMS_Package WHERE Name = '$PkgName'").PackageID
$prg = Get-WmiObject -Namespace "root\SMS\$SMSSite" -ComputerName $SMSServer -Query "Select * from SMS_Program WHERE PackageID = '$($_.packageID)'"


$adv[2] | ForEach-Object {

    # Build hashtable of arguments for the creation
    $arguments =  @{
        AdvertFlags = $_.AdvertFlags;
        AdvertisementName = "WIN7x64TEST - $($_.AdvertisementName)";
        CollectionID = $collectionID;
        PackageID = $_.packageID;
        DeviceFlags = $_.DeviceFlags;
        ProgramName = "WIN7x64TEST - $($_.ProgramName)";
        RemoteClientFlags = $_.RemoteClientFlags;
        SourceSite = $_.SourceSite;
        TimeFlags = $_.TimeFlags
    }

}

# Create the advertisement using the SMS_Advertisement WMI Class
Set-WmiInstance -class SMS_Advertisement -arguments $arguments -namespace "root\SMS\$SMSSite" -ComputerName $SMSServer

0 ответов

Другие вопросы по тегам