Ошибка при запуске команды как части скрипта, но не при индивидуальном запуске - PullRequest
2 голосов
/ 15 мая 2019

Я получаю следующую ошибку, когда запускаю команду как часть скрипта или во время отладки в терминале 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
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...