Powershell出现问题。包含字符串的函数

Powershell出现问题。包含字符串的函数,powershell,powershell-2.0,powershell-1.0,Powershell,Powershell 2.0,Powershell 1.0,好的,我正在努力让这个脚本正常工作,而不是不断地反复点击同一台计算机,我很难让它正常工作。我不认为这是最好的方法,如果你有任何建议,请和谢谢你。无论如何,第6行“IF(!$Succssful.Contains($Computer)){”似乎有问题。它不会向我射击错误,而是根据成熟度结束脚本。我已尝试删除“!”,但没有如我预期的那样幸运 $Computers = "TrinityTechCorp" $HotFixes = Get-Content HotFixes.csv While ($Succ

好的,我正在努力让这个脚本正常工作,而不是不断地反复点击同一台计算机,我很难让它正常工作。我不认为这是最好的方法,如果你有任何建议,请和谢谢你。无论如何,第6行“IF(!$Succssful.Contains($Computer)){”似乎有问题。它不会向我射击错误,而是根据成熟度结束脚本。我已尝试删除“!”,但没有如我预期的那样幸运

$Computers = "TrinityTechCorp"
$HotFixes = Get-Content HotFixes.csv

While ($Successful -AND $Successful.count -ne $Computers.count) {
    ForEach ($Computer in $Computers) {
        IF (!$Succssful.Contains($Computer)) {
            If (Test-Connection $Computer) {
                $Comparison = get-hotfix -ComputerName $Computer | Select -expand HotFixID
                ForEach ($HotFix in $HotFixes) {
                IF ($Comparison -NotLike "*$HotFix*") {
                    Write-Host "$Computer missing $HotFix"
                }
                $Successful += $Computer
                }
            }
        }
    }
}
这条线

While ($Successful -AND $Successful.count -ne $Computers.count) {
无法计算为$true。不存在变量($Successful)的
.count
-属性为$null,字符串也是如此(因为您只指定了一台计算机,它不是数组)

要强制Powershell返回“true”项数,请使用
@($Successful).count
@($Computers).count
。这将为您提供1,即使$Computers未定义为数组。因此,替换变量后,您的行将被解释为

While ($null -AND $null.count -ne $null) {

在Powershell 3中,正如您所读到的,情况已不再如此。

如果您有许多计算机要运行此功能,我建议包括Invoke命令,以便在所有计算机上并行运行它。请记住将hotfix.csv放在公用网络共享上。Invoke命令-Computername test1,test2-ScriptBlock{您的脚本}将在单个输出中返回所有写入主机消息,您可以将其保存在文件或其他任何文件中。顺便说一句,while($successful)不是..successful不是字符串[]?此外,由于successful是一个计算机列表,因此您希望将
$successful+=$computer
移动到热修复程序循环之外(退出时),因为现在computername被添加到每个修补程序测试中,
$successful
在哪里定义?我想我们缺少了一些脚本。您在第6行中的键入--“successful”应该是“successful”--可能是问题的一部分。Graimer-谢谢你的想法,但我需要先让当前脚本工作,然后再考虑添加它。此外!$Successful会检查$Successful是否已定义。这使得我不必在if语句中检查它之前声明它。KeithHill-$Successful稍后在sc中定义ipt,我将每台成功的计算机的计算机名添加到其中。msorens-谢谢你,修复了它,但仍然没有任何运气让脚本正常工作。>.>回到绘图板。