我正在编写一个表单,它将对远程服务器执行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"
}
我做错了什么?
答案 0 :(得分:0)
我认为您的问题来自这一行:[array]$chosenServers = $CBLUKSTG.Items
。看TechNet for .Items
你会看到它
获取此CheckedListBox中的项集合。
这将从列表中返回所有项。您需要做的只是返回[array]$chosenServers = $CBLUKSTG.CheckedItems
。所以你应该检查CheckedItems。
此CheckedListBox中已检查项目的集合。