Запуск сценария IIS Powershell для списка удаленных серверов? - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь получить все сайты и привязки со 100+ серверов, которые находятся в одном домене и на которых запущен IIS (уже есть список этих серверов в текстовом файле, поэтому поиск AD не требуется).Это код, который успешно извлекает его с одного сервера при удаленном входе в систему и запуске кода на самом сервере:

$myObject = @()
{
Foreach ($Site in get-website) 
{ 
   Foreach ($Bind in $Site.bindings.collection) 
   { 
      $myObject+=[pscustomobject]@{serverName = $vm;name=$Site.name;Protocol=$Bind.Protocol;Bindings=$Bind.BindingInformation; path=$Site.physicalPath}
   }
}
} $myObject | export-csv -Path C:\results.csv -NoTypeInformation

Проблема, с которой я столкнулся, заключается в том, что при создании цикла foreach, указанного ниже

$servers = (Get-Content results.txt)
foreach ($vm in $servers)

и запустите его в верхней части приведенного выше сценария, лист csv просто показывает дубликаты сайтов / привязок с сервера, с которого я его запускаю, вместо извлечения результатов с каждого уникального сервера, указанного в файле txt.

Каков наилучший способ получения результатов с каждого сервера?У меня есть полные права администратора через мои учетные данные и когда я вошел в систему на серверах, и почти все работают под управлением Windows 2012.

1 Ответ

0 голосов
/ 24 мая 2018

Get-Website не поддерживает удаленные подключения сама по себе, поэтому вам потребуется использовать PowerShell Remoting, чтобы запустить его на всех ваших серверах.Как то так:

Invoke-Command -Computer (Get-Content results.txt) `
               -ScriptBlock {
                    Get-Website |
                        ForEach-Object {
                         $site = $_
                         $_.bindings.collection |
                            ForEach-Object {                           
                                [pscustomobject]@{
                                    serverName = $env:COMPUTERNAME
                                    name=$site.Name
                                    Protocol=$_.Protocol
                                    Bindings=$_.BindingInformation
                                    path=$site.PhysicalPath
                                }
                            }
                        }
               } | Export-Csv -Path C:\results.csv -NoTypeInformation
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...