2016-02-17 3 views
0

Я пишу форму, которая будет выполнять iisreset для удаленных серверов. Имя сервера, которое я получаю от пользователя, которому необходимо выбрать их из списка флажков.Querying CheckedListBox возвращает элементы, которые не были проверены

Моя проблема заключается в том, что даже если пользователь выбирает один сервер, код обрабатывает его, как он выбрал 2.

if ($CBLUKSTG.Visible -Match $true) 
{ 
    [array]$chosenServers = $CBLUKSTG.Items 
    foreach ($item in $chosenServers) 
    { 
     Invoke-Command –ComputerName $chosenServers –ScriptBlock { iisreset /noforce } 
     Invoke-Command –ComputerName $chosenServers –ScriptBlock { iisreset /status } 
     Write-Host "IIS restarted succefully on $item" 
    } 

Что я делаю неправильно?

+0

Кажется, что вы дважды вызываете команду 'Invoke-Command'. Разве это нельзя назвать только один раз? –

+2

Просьба вставить свой код дизайна флажка. Также, если возможно, покажите $ CBLUKSTG коды. – Ironic

ответ

0

Я думаю, что ваша проблема исходит из этой строки: [array]$chosenServers = $CBLUKSTG.Items. Глядя на TechNet for .Items, вы увидите, что он

Получает коллекцию предметов в этом CheckedListBox.

Это вернет все элементов из списка. То, что вам нужно делать, это только возврат [array]$chosenServers = $CBLUKSTG.CheckedItems. Поэтому вы должны проверить CheckedItems.

0Количество проверено товаров в этом ПровереноListBox.

+0

большое спасибо! как-то я пропустил этот вариант. Последний вопрос - как я могу проверить статус iis после перезапуска? – sarit

Смежные вопросы