2012-08-02 94 views
1

我寫了一個PowerShell腳本來更新使用「webadministration」管理單元的apppool的用戶名和密碼。如何驗證應用程序池用戶名和密碼是否已更新?

Import-Or-Snapin -Module "Webadministration" 

Function Change-AppPoolIdentity { 

     Param ( 
      $AppPool, 
      $OldUserName, 
      $NewUserName, 
      $Password 
     ) 

    If (Test-Path $AppPool) 

    { 
     LogWrite "Function :Change-AppPoolIdentity" 
     $MyAppPool = Get-Item $AppPool 

     If ($($MyAppPool.processModel.userName) -eq $OldUserName) { 

      $MyAppPool.Stop() 
      LogWrite "Trying to change App pool user name and password" 
      $MyAppPool | Set-ItemProperty -Name "processModel.username" -Value $NewUserName 
      $MyAppPool | Set-ItemProperty -Name "processModel.password" -Value $Password 

      $MyAppPool.Start() 
     } 
     Else { 
      LogWrite "Apppool $AppPool does not run using $OldUserName" 
     } 
    } 
    Else { 

     LogWrite "Apppool $AppPool not available " 
    } 


} 

執行腳本後,我試圖訪問該網站,它沒有顯示出來。當我們手動設置它的工作密碼。我們懷疑密碼未正確更新。

如何確保應用程序池密碼已更改? Set-item之後,是否可以添加一個條件來驗證?

回答

1

我對IIS PowerShell提供程序比較陌生,但我相信您可能需要調用set-item以將配置更改保存到應用程序池。

要進行測試,得到的應用程序池項目,打印出中processModel密碼值一看,原來值(讓我感到驚訝,當我看到這一點),然後更新它,那麼一定要打電話設置項更新IIS 。

例如

$pool = IIS:\apppools\myapppool 

$pool.processModel.password 
$pool.processModel.password = $new_password 

# doens't take effect until this 
# 
$pool | set-item 

# should show updated value 
# 
$pool.processModel.password 
相關問題