繁体   English   中英

如何一次远程更改多台服务器上的 IIS 应用程序池密码?

[英]How to change IIS app pool password on multiple servers at once remotely?

我们需要在每次过期时更改应用程序的 IIS 应用程序池密码。 目前,我们必须手动登录到每个服务器并运行一段 PowerShell 代码来更改密码。

下面是我们在 PS 上每台服务器上运行的代码:

Import-Module WebAdministration
 $applicationPools = Get-ChildItem IIS:AppPools | where { $_.processModel.userName -eq "Domain\XXXXX12345" }
  
 foreach($pool in $applicationPools)
 {
     $pool.processModel.userName = "Doma\XXXXX12345"
     $pool.processModel.password = "XXXXXXXXXXXXXXXXX"
     $pool | Set-Item
 }
  
 Write-Host "Application pool passwords updated..." -ForegroundColor Magenta 
 Write-Host "" 
 Read-Host -Prompt "Press Enter to exit"

但是有没有办法我们可以一次对服务器/虚拟机列表执行相同的操作,而不必登录到每台服务器,打开 PowerShell 或 IIS 并在每台服务器上手动更改它?

任何帮助将不胜感激!

您可以尝试为此创建一个 Azure DSC 配置。 这样,您可以在每次密码过期时提供新的配置 state。

https://docs.microsoft.com/en-us/azure/automation/quickstarts/dsc-configuration

https://writeabout.net/2015/04/15/use-the-dsc-script-resource-to-change-the-application-pool-identity/

你可以试试下面的脚本:

$computerName = 'MyServerName' $appPoolName = 'DefaultAppPool'

调用命令 -ComputerName $computerName -args $appPoolName -ScriptBlock { param($appPoolName) $appPoolName.Stop()

$appPoolName | Set-ItemProperty -Name "processModel.username" -Value "Doma\XXXXX12345" $appPoolName | Set-ItemProperty -Name "processModel.password" -Value "XXXXXXXXXXXXXXXXX"

$targetpool.Start()

}

写入主机“应用程序池密码已更新...”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM