我正在使用 Powershell (.ps1) 脚本来扫描物理应用程序和 Web 服务器,以识别与我们的应用程序相关的配置文件,这些文件中指定了硬编码的 IP 地址。
我正在执行脚本并出现错误的 Windows 服务器的 Powershell 版本 -1.0。
我收到“您不能在空值表达式上调用方法”
场景是:在我的本地物理机上运行脚本可以正常工作,但是,在我的应用程序服务器上运行它会给我上述错误。
$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)
我在本地运行良好的应用服务器上评估此表达式时出错。