0

コードの背後にあるロジックを理解して正しく動作させるのに苦労しています。リモート システムからソフトウェア バージョンを取得し、出力を[PSCustomObject].

[System.Collections.ArrayList]$NetBIOSNames   = @('ComputerOne','ComputerTwo')
[System.Collections.ArrayList]$softwareNames  = @("ActivClient","Adobe Acrobat", "ATHOC", "DSET", "Firefox", "Google Chrome", "Java", "McAfee Agent")
[System.Collections.ArrayList]$VersionNumber  = @() 
[System.Collections.ArrayList]$CorrectVersion = @('7.2.1','21.001.20138','6.2.27.271','1.6.8','78.8.0','89.0.4389.72','8.0.2710.9','5.7.1.116')

foreach($Computer in $NetBIOSNames){
    foreach ($software in $softwareNames) {
        $Version = Invoke-Command -ComputerName $Computer -ScriptBlock { 
            Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*, HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | 
                Where-Object {$_.displayname -like "*$Using:software*" } 
        }

        $null    = $VersionNumber.Add($($Version.DisplayVersion))
    }

    For($i=0; $i -lt $softwareNames.Count; $i++){

        [PSCustomObject]@{
            "Computer Name"    = $NetBIOSNames[$i]
            "Software Name"    = $softwareNames[$i]
            "Current Version"  = $VersionNumber[$i]
            "Correct Version"  = $CorrectVersion[$i]
        }
    }
}

したがって、単一のコンピューターに対して実行すると、目的の出力である次のものが返されます。

Computer Name   Software Name Current Version          Correct Version
-------------   ------------- ---------------          ---------------
ComputerOne     ActivClient   7.2.1                    7.2.1          
                Adobe Acrobat 21.001.20138             21.001.20138   
                ATHOC         6.2.27.271               6.2.27.271     
                DSET          1.6.8                    1.6.8          
                Firefox       78.8.0                   78.8.0         
                Google Chrome 89.0.4389.72             89.0.4389.72   
                Java          {8.0.2710.9, 8.0.2710.9} 8.0.2710.9     
                McAfee Agent  {5.7.1.116, 5.7.1.116}   5.7.1.116      

….しかし、複数に対して実行すると、次のように返されます。

Computer Name   Software Name Current Version          Correct Version
-------------   ------------- ---------------          ---------------
ComputerOne     ActivClient   7.2.1                    7.2.1          
ComputerTwo     Adobe Acrobat 21.001.20138             21.001.20138   
                ATHOC         6.2.27.271               6.2.27.271     
                DSET          1.6.8                    1.6.8          
                Firefox       78.8.0                   78.8.0         
                Google Chrome 89.0.4389.72             89.0.4389.72   
                Java          {8.0.2710.9, 8.0.2710.9} 8.0.2710.9     
                McAfee Agent  {5.7.1.116, 5.7.1.116}   5.7.1.116      
ComputerOne     ActivClient   7.2.1                    7.2.1          
ComputerTwo     Adobe Acrobat 21.001.20138             21.001.20138   
                ATHOC         6.2.27.271               6.2.27.271     
                DSET          1.6.8                    1.6.8          
                Firefox       78.8.0                   78.8.0         
                Google Chrome 89.0.4389.72             89.0.4389.72   
                Java          {8.0.2710.9, 8.0.2710.9} 8.0.2710.9     
                McAfee Agent  {5.7.1.116, 5.7.1.116}   5.7.1.116      
   

返品したいのは以下です。

Computer Name   Software Name Current Version          Correct Version
-------------   ------------- ---------------          ---------------
ComputerOne     ActivClient   7.2.1                    7.2.1          
                Adobe Acrobat 21.001.20138             21.001.20138   
                ATHOC         6.2.27.271               6.2.27.271     
                DSET          1.6.8                    1.6.8          
                Firefox       78.8.0                   78.8.0         
                Google Chrome 89.0.4389.72             89.0.4389.72   
                Java          {8.0.2710.9, 8.0.2710.9} 8.0.2710.9     
                McAfee Agent  {5.7.1.116, 5.7.1.116}   5.7.1.116
      
ComputerTwo     ActivClient   7.2.1                    7.2.1          
                Adobe Acrobat 21.001.20138             21.001.20138   
                ATHOC         6.2.27.271               6.2.27.271     
                DSET          1.6.8                    1.6.8          
                Firefox       78.8.0                   78.8.0         
                Google Chrome 89.0.4389.72             89.0.4389.72   
                Java          {8.0.2710.9, 8.0.2710.9} 8.0.2710.9     
                McAfee Agent  {5.7.1.116, 5.7.1.116}   5.7.1.116      

これが長い投稿であることを許してください。私が正しくしていないことに固執しているだけです。私はそれが私[PSCustomObject]が列挙している方法だと思いましたが、どうやってそれを行うかについてはよくわかりません. これを行う方法について、アイデアやより良い提案をした人はいますか?

4

2 に答える 2