2つの変数の値を比較しようとしていますが、これら2つの文字列の内容は順序が異なります。
例:
$Var1 = "item1"
$Var1 += "item2"
$Var2 = "item2"
$Var2 = "item1"
これらの2つの変数を比較して、両方が等しいかどうかを確認するにはどうすればよいですか?
=====例で更新=====例:オブジェクトを取得して並べ替えます。
$Computers = (Get-Content "$PWD\Computers.txt").GetEnumerator() | Sort-Object {"$_"}
例:結果を追加して並べ替えます。
$Successful += $Computer
$Successful = $Successful.GetEnumerator() | Sort-Object {"$_"}
スクリプトの例:上記の例を使用して、次のスクリプトを作成しました。この例では、カウントではなく結果を確認できましたが、内容によって、より正確な比較を行うことができました。「Successful.count-eqComputers.count」を使用する前は、コンピューターが2回入力されたかどうかをチェックしていませんでした。
$Computers = (Get-Content "$PWD\Computers.txt").GetEnumerator() | Sort-Object {"$_"}
$HotFixes = Get-Content "$PWD\HotFixes.csv"
CLS
While (!$Successful -OR $Successful -ne $Computers) {
foreach ($Computer in $Computers) {
$MissingCount = 0
IF (!$Successful -NotLike "*$Computer*") {
Write-Host "$Computer`: Connecting"
If (Test-Connection -ComputerName $Computer -Count 1 -quiet) {
Write-Host "$Computer`: Connected"
[string]$Comparison = get-hotfix -ComputerName $Computer | Select -expand HotFixID
ForEach ($HotFix in $HotFixes) {
IF ($Comparison -NotLike "*$HotFix*") {
$Results += "$Computer,$HotFix"
$MissingCount++
}
}
Write-Host "$Computer`: $MissingCount Patches Needed"
$Successful += $Computer
$Successful = $Successful.GetEnumerator() | Sort-Object {"$_"}
} ELSE {
Write-Host "$Computer`: Unable to connect"
}
} ELSE {
Write-Host "$Computer already completed"
}
Write-Host "$Computer`: Complete"
Write-Host
}
}
$Results