none
Переменная не верно выдает значение RRS feed

  • Вопрос

  • $SiteServer = aqua
    $SiteCode = kei 
    $CollectionName = test1 
    $Collection = get-wmiobject -ComputerName $siteServer -NameSpace "ROOT\SMS\site_$SiteCode" -Class SMS_Collection | where {$_.Name -eq "$CollectionName"} 
    $SMSMemebers = Get-WmiObject -ComputerName $SiteServer -Namespace "ROOT\SMS\site_$SiteCode" -Query "SELECT * FROM SMS_FullCollectionMembership WHERE CollectionID='$($Collection.CollectionID)' order by name" | select Name
    foreach ($SMSMemebers in Get-WmiObject -ComputerName $SiteServer -Namespace "ROOT\SMS\site_$SiteCode" -Query "SELECT * FROM SMS_FullCollectionMembership WHERE CollectionID='$($Collection.CollectionID)' order by name" | select Name) 
    {
    $SMSCli = [wmiclass]"\\$SMSMemebers\root\ccm:SMS_Client"
    $SMSCli.TriggerSchedule("{00000000-0000-0000-0000-000000000021}")
    }

    Если сделать вывод переменная 

    $SMSMemebers

    PS KEI:\> $SMSMemebers

    Name                                                                                                                       
    ----                                                                                                                       
    VDA-W81-16                                                                                                                 
    VDA-W81-6                                                                                                                  
    WS3404     

    Но тут получается косяк ... при 

    $SMSCli = [wmiclass]"\\$SMSMemebers\root\ccm:SMS_Client"


    Не удается преобразовать значение "\\@{Name=WS3404}\root\ccm:SMS_Client" в тип "System.Management.ManagementClass". Ошибка:
     "Сервер RPC недоступен. (Исключение из HRESULT: 0x800706BA)"
    C:\Users\ii.ps1:10 знак:1
    + $SMSCli = [wmiclass]"\\$SMSMemebers\root\ccm:SMS_Client"
    по каким то причинам он поставляет мне "
    @{Name=
    "

    Как избавится от этого!????




    • Изменено butunin 22 сентября 2015 г. 14:28
    22 сентября 2015 г. 14:26

Ответы

  • Нашел в чем проблема это в работе select, поменяли на -Expand и добавил $($SMSMemebers)

    вот рабочий скрипт может кому пригодится. Для автоматизации

    $SiteServer = 'aqua'
    $SiteCode = 'kei' 
    $CollectionName = 'test1' 
    $Collection = get-wmiobject -ComputerName $siteServer -NameSpace "ROOT\SMS\site_$SiteCode" -Class SMS_Collection | where {$_.Name -eq "$CollectionName"} 
    foreach ($SMSMemebers in Get-WmiObject -ComputerName $SiteServer  -Namespace "ROOT\SMS\site_$SiteCode" -Query "SELECT * FROM SMS_FullCollectionMembership WHERE CollectionID='$($Collection.CollectionID)' order by name" | Select -Expand Name) 
    {
    $SMSCli = [wmiclass]"\\$($SMSMemebers)\root\ccm:SMS_Client"
    $SMSCli.TriggerSchedule("{00000000-0000-0000-0000-000000000021}")
    }

    • Помечено в качестве ответа butunin 23 сентября 2015 г. 6:02
    23 сентября 2015 г. 6:02