Я пытаюсь написать сценарий, который будет проходить через весь локальный веб-сайт IIS и обновлять их учетные записи физического пути всякий раз, когда я вынужден обновлять свой пароль домена.Обновление учетных данных WebSite IIS 6 через powershell
следующие работы ... первый раз, когда вы запустите его ...
function Set-Site-Credentials(
$SiteElement,
$Credentials
){
$SiteElement.virtualDirectoryDefaults.userName = "$($Credentials.Domain)\$($Credentials.UserName)"
$SiteElement.virtualDirectoryDefaults.password = $Credentials.Password
$SiteElement | Set-Item -Force
}
После запуска этого я заметил, что следующие свойства также получить набор
$SiteElement.userName #Same as was set earlier on .virtualDirectoryDefaults
$SiteElement.password #Same as was set earlier on .virtualDirectoryDefaults
Впоследствии, в любое время я попробуйте обновить учетные данные, используя приведенный выше код, эти два свойства остаются неизменными, и эти изменения не влияют на работу в IIS.
Так результат:
$SiteElement.userName #Unchanged
$SiteElement.password #Unchanged
$SiteElement.virtualDirectoryDefaults.userName #New value
$SiteElement.virtualDirectoryDefaults.password #New value
А сайт IIS по-прежнему показывает старое имя пользователя в интерфейсе пользователя и учетные данные не в состоянии.
Поэтому, естественно, я попытался установить эти дополнительные 2 свойства в моей функции обновления:
function Set-Site-Credentials(
$SiteElement,
$Credentials
){
$SiteElement.userName = "$($Credentials.Domain)\$($Credentials.UserName)"
$SiteElement.password = $Credentials.Password
$SiteElement.virtualDirectoryDefaults.userName = "$($Credentials.Domain)\$($Credentials.UserName)"
$SiteElement.virtualDirectoryDefaults.password = $Credentials.Password
$SiteElement | Set-Item -Force
}
код не приводит к возникновению ошибок и предупреждений, но конечный результат один и тот же, эти 2 дополнительные свойства остаются неизменными.
Я использую следующий код, чтобы получить «$ SiteElement»
$sites = Get-ChildItem IIS:\Sites
$sites | Foreach-Object { Set-Site-Credentials -SiteElement $_ -Credentials $newCredentials }
Кроме того, в конце сценария я перезапустить IIS с помощью этой команды:
Restart-Service W3SVC