У меня есть этот код, который отлично работает только для одного элемента, если я добавляю новый элемент, он просто удаляет старый

Я пробовал много способов, но я не могу найти, как это сделать, можете ли вы мне помочь?

Import-Module WebAdministration
$HostName = $env:computername
$DateNow = Get-Date -format d

$WebServerEngine_MajorVersion = get-itemproperty HKLM:\SOFTWARE\Microsoft\InetStp\  | foreach >{$_.MajorVersion}
$WebServerEngine_MinorVersion = get-itemproperty HKLM:\SOFTWARE\Microsoft\InetStp\  | foreach {$_.MinorVersion}
$IIS_Version = [string]$WebServerEngine_MajorVersion + "." + [string]$WebServerEngine_MinorVersion

$Webs = Get-Website | select name

if ($Webs) {
    ForEach ($Web in $Webs) {
    $InfoServer = new-object psobject
    $InfoServer | add-member noteproperty HostName $HostName
    $InfoServer | add-member noteproperty Date_report $DateNow
    $InfoServer | add-member noteproperty IIS_Version $IIS_Version
    $InfoServer | add-member noteproperty SiteName $Web.name
    }
}

1 ответ1

0

Вы перезаписываете объект $ InfoServer на каждой итерации цикла. Попробуйте добавить команду Write-Output $ InfoServer в конце цикла. Это отправит данные обратно в конвейер. Попробуй это:

if ($Webs) {
    ForEach ($Web in $Webs) {
        $InfoServer = new-object psobject
        $InfoServer | add-member noteproperty HostName $HostName
        $InfoServer | add-member noteproperty Date_report $DateNow
        $InfoServer | add-member noteproperty IIS_Version $IIS_Version$InfoServer | add-member noteproperty SiteName $Web.name
        Write-Output $InfoServer
    }
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .