Powershell (.ps1) スクリプトを使用して、物理アプリケーションと Web サーバーをスキャンし、アプリケーションに関連する構成ファイルを特定します。この構成ファイルには、指定された IP アドレスがハードコーディングされています。
スクリプトを実行してエラーが発生している Windows サーバーの Powershell バージョン -1.0。
「 null 値の式でメソッドを呼び出すことはできません」というメッセージが表示されます
シナリオは次のとおりです。ローカルの物理マシンでスクリプトを実行すると問題なく動作しますが、アプリケーション サーバーで実行すると上記のエラーが発生します。
$itemsFromFolder = Get-ChildItem -path $drive -include *.txt, *web.config, *.htm, *.html, *.asp, *.ascx, *.aspx, *.xml, *.js, *.css, *.sql -recurse -errorAction SilentlyContinue
Write-host -message "initializing object"
$itemsToScan = New-Object System.Collections.Generic.List[string]
Write-host -message "initializing object $itemsToScan
foreach($item in $itemsFromFolder)
{
$itemsToScan.Add($item.FullName)
#Write-host -message "itemstoscan loop $itemsToScan"
}
System.Collections.Generic.List[string] のオブジェクトをインスタンス化しています。これは変数 $itemstoscan に含まれ、提供している IP パターンをスキャンする項目があります。
質問:
$itemsToScan = New-Object System.Collections.Generic.List[string]
これは、異なる構成のマシンで同じスクリプトを実行することを制限しているpowershell 1.0でオブジェクトをインスタンス化する正しい方法ですか?$itemsToScan.Add($item.FullName)
ローカルで正常に動作しているアプリ サーバーでこの式を評価するとエラーが発生します。