我希望通过一些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%的时间它没有....
我愿意打赌我这一切都错了。
$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\*
}
}