PDA

Показать полную графическую версию : [решено] не корректный вывод переменной


Спаситель
22-09-2015, 22:41
$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}")
}

Короче такая вот хрень которая лезет в коллекцию sccm берет от туда значение name компутеров и присваивает его, далее в цикле просто по wmi запускает тригер клиента для связи с sccm

Для проверки до цикла запускаю "выведи мол чего там в коллеции то" $SMSMemebers

Он мне отдает значение
PS KEI:\> $SMSMemebers

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

далее я радуюсь и запускаю в цикле подключение по строкам и получаю болт причем странный

Не удается преобразовать значение "\\@{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=WS3404} и как избавится от этой фигни? ... мне надо чтобы он мне вывел только имена машин и засунул их в переменную .


По итогу
$SiteServer = 'aqua'
$SiteCode = 'kei'
$CollectionName = 'test1'
$cred = Get-credential
$Collection = get-wmiobject -ComputerName $siteServer -NameSpace "ROOT\SMS\site_$SiteCode" -Class SMS_Collection -Credential $cred | where {$_.Name -eq "$CollectionName"}
foreach ($SMSMemebers in Get-WmiObject -ComputerName $SiteServer -Credential $cred -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}")
}

corbis
22-09-2015, 22:51
Так работает оператор Select. Просто надо его убрать и использовать $SMSMemebers.name

Kazun
22-09-2015, 22:52
1) $SMSMemebers.Name
[wmiclass]"\\$($SMSMemebers.Name)\root\ccm:SMS_Client"

2) Select -Expand Name

.....order by name" | select -Expand Name




© OSzone.net 2001-2012