使用PowerShell远程处理,调用命令和模块Web管理从许多Web服务器获取IIS绑定

时间:2014-06-25 12:52:21

标签: powershell iis powershell-v3.0 powershell-v4.0 powershell-remoting

现在我制作了一个小脚本,以便在服务器上查看我的实际webbinding。

Import-Module WebAdministration;

$today = Get-Date -format M.d.yyyy
$machine = hostname
function IISRport

{
Get-ChildItem -path IIS:\Sites | out-file "\\server01\d$\_utils\PowerShell Scripts\IISexport\IISExport$machine$today.txt"
}

IISReport 

这将wil outfile我的IIS绑定到txt,这很棒。 我现在需要将该命令调用到其他几个服务器并将输出文件保存在一台服务器上。由于机器名称不同,我希望输出与服务器一样多。

我尝试了以下示例:

icm -comp server02 {get-childitem -path IIS:\Sites}

但是导入的模块webadministration不能正常工作,因为我只在一台服务器上加载。所以我尝试使用以下方法远程加载:

icm -comp server02 {import-module webadministration}

没有成功。

如何实现?

1 个答案:

答案 0 :(得分:1)

这将从$machines中定义的所有计算机获取数据并输出到 \\ server01 \ d $ _utils \ PowerShell Scripts \ IISexport \

$today = Get-Date -format M.d.yyyy
$machines = @("server01","server02")
foreach($machine in $machines) {
    icm -comp $machine { param($machine,$today)
        import-module webadministration;
        Get-ChildItem -path IIS:\Sites | 
        out-file "\\server01\d$\_utils\PowerShell Scripts\IISexport\IISExport$machine$today.txt"
    } -ArgumentList $machine,$today 
}

您当然可以更改输出路径(并从文件,AD或其他来源导入计算机列表)。