簡體   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