Я получаю следующую ошибку, когда запускаю команду как часть скрипта или во время отладки в терминале Powershell ISE и Powershell.Я работаю как администратор в обоих.
Rename-Item -Path IIS:\AppPools\webdba2 -NewName WEBDBA
Переименовать-Элемент: Индекс был вне диапазона.Должен быть неотрицательным и меньшим, чем размер коллекции.Имя параметра: index
Фактический код в powershell:
Rename-Item -Path "IIS:\Sites\$CurrentWebsiteName" -NewName $OrgUrl
Теперь выполняется с переменными или жестко запрограммированными работами вне скрипта.Я запускаю его в инструкции try catch.
Скрипт:
$MassSiteData = Import-Csv $strPath -Header url,apppool,shorturl
$intRowMax = $MassSiteData.count
$intRow = 0
ForEach($WebSite in $MassSiteData)
{
$intRow++
$OrgAppPool = $WebSite.apppool
$OrgUrl = $WebSite.url
$OrgShortUrl = $WebSite.shorturl
$AppPoolSearchVar = $WebSite.apppool + "*"
$ShortUrlSearchVar = $WebSite.shorturl + "*"
[Void][Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration")
$sm = New-Object Microsoft.Web.Administration.ServerManager
$site = Get-Website | Where-Object {$_.Name -like $ShortUrlSearchVar}
$CurrentWebsiteName = $site.Name
$CurrentWebPath = $site.PhysicalPath
$CurrentAppPool = ($sm.ApplicationPools | Where-Object {$_.Name -like $AppPoolSearchVar}).Name
$CurrentAppPath = split-path -parent $CurrentWebPath
try {
##Rename AppPool
Rename-Item -Path "IIS:\AppPools\$CurrentAppPool" -NewName $OrgAppPool
$logMsg = "Renamed App Pool to $OrgAppPool"
Write-Host "Renamed App Pool to $OrgAppPool"
$logMsg | Out-File $logfilelocation -Append
} catch {
$logMsg = "App Pool didnt need updated"
write-host "App Pool Errored out. Most likely didnt need updated"
$logMsg | Out-File $logfilelocation -Append
}
}