远程通过一系列Web服务器来部署代码

问题描述 投票:0回答:1

我希望通过一些Web服务器和导入模块WebAdministration来改变一些回收属性。

问题是,似乎foreach不喜欢用于远程会话。我猜这是因为单个代码块只能在1个远程会话中执行?有没有办法通过多个会话,或者我必须手动执行此操作?

只是寻找一些关于如何编写代码以部署到我所有服务器上的所有apppool的输入。

我已经测试了appcool目录的通配符,这似乎有效。

IIS10 Powershell 5.1.14393.2189

$servers = @("MyEnvironment-web01","MyEnvironment-web02","MyEnvironment-web03")
foreach ($server in $servers) {
    enter-Pssession -ComputerName $server
    Write-Host $server
    Read-Host -Prompt "Press Enter to continue" #This was added because I thought maybe it just needed time to connect? Doesn't need to be in here.
    import-module WebAdministration
        Get-ItemProperty -Path IIS:\AppPools\*
        exit-PSSession
        }

很多:import-module:未加载指定的模块'WebAdministration',因为在任何模块目录中都找不到有效的模块文件。在行:1个字符:1

这很奇怪,因为如果我手动运行for-each循环,那就可以了。除了大约20%的时间它没有....

我愿意打赌我这一切都错了。

powershell iis remote-server iis-10
1个回答
0
投票
$Cred = Get-Credential -UserName <domain\user> -Message 'Enter Password'
$servers = @("myserver1"."myserver2","etc")
foreach ($server in $servers) {
    Invoke-Command -ComputerName $server -Credential $cred {
    import-module WebAdministration
    Get-ItemProperty -Path IIS:\AppPools\*
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.