私はリモートPCからwin32_productを読み取るための簡単なスクリプトに取り組んできましたが、これは正常に機能しています。ただし、ドメイン上のいくつかの一般的なアプリケーションを無視するクエリが必要です。私はアプリとそのIdentificationNumberのリストを作成し、IdentificationNumberをtxtファイルに入れてきました。スクリプトを使用してテキストファイルを変数にロードし、変数内の各アイテムをフィルタリングするクエリを取得する方法を理解しようとしています...だから私はこれを持っています::
$PC = Read-Host "What is target workstation..."
$logfile = "d:\$PC.txt"
$ignore = [IO.File]::ReadAllText("D:\INCOMING\AppListing\ignore.txt")
get-wmiobject -class win32_product -computer $PC | where {$_.IdentifyingNumber -notlike $ignore} | Select Name, IdentifyingNumber | sort-object Name | export-csv $logfile -encoding "unicode"
ただし、これはフィルタリングではなく、txtファイルの最初または最後のアイテムでもありません。write-host $ ignoreを使用して、アイテムがロードされていることを確認しました...しかし、これを機能させる方法については迷っています。おそらくforeachループですか?foreachループをwhereフィルターに入れることについては何も見つかりません...
助けてくれてありがとう...