查询CheckedListBox返回未检查的元素

时间:2016-02-17 08:35:34

标签: powershell

我正在编写一个表单,它将对远程服务器执行iisreset。 我从需要从复选框列表中选择它们的用户获取的服务器名称。

我的问题是,即使用户选择了一台服务器,代码也会像选择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"
    }

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我认为您的问题来自这一行:[array]$chosenServers = $CBLUKSTG.Items。看TechNet for .Items你会看到它

  

获取此CheckedListBox中的项集合。

这将从列表中返回所有项。您需要做的只是返回[array]$chosenServers = $CBLUKSTG.CheckedItems。所以你应该检查CheckedItems

  

此CheckedListBox中已检查项目的集合。