Запуск aspnet_regiis для шифрования в цикле существует после первой неудачной / успешной операции - PullRequest
0 голосов
/ 04 января 2019

Я пишу сценарий powershell, который читает CSV-файл, в котором указан путь, по которому Web.config / App.config находится в приложениях.Скрипт просто пытается зашифровать файлы конфигурации.Фрагмент кода выглядит так:

foreach ($config in $configs) {
  $rootPath = Get-Location
  $directory = Join-Path -Path $rootPath -ChildPath $config.GetPath()  

  if (Test-Path -Path $directory) {
     $configPath = Join-Path $directory -ChildPath $config.GetOriginalConfig()
     if (![System.IO.File]::Exists($configPath)) {
      Write-Host "$configPath was not found."
      return
    }
    # A set of helper codes

    Try {
      cd $directory
      # Invoke-Command $moveToDirectory
      aspnet_regiis -pef connectionStrings . -prov CustomProvider
    }
    Catch {
      Write-Host $$_.Exception.Message
    }
  }
}

Проблема здесь в том, что у меня есть 5 конфигурационных путей, но только первый из них запускается, и приложение существует.Кажется, что aspnet_regiis существует программа как в случае успеха, так и в случае неудачи.Что я могу сделать, чтобы запустить его в цикле?

1 Ответ

0 голосов
/ 07 января 2019

Ну, благодаря некоторым ударам и испытаниям, я смог решить проблему.Цикл был остановлен из-за команды: cd $directory.Я предполагаю, что, поскольку проблема задана для изменения каталога, сценарий не находится в текущей области видимости.Я новичок, так что это только мое предположение.Поэтому я изменил строку кода на:

aspnet_regiis -pef connectionStrings "$directory" -prov CustomProvider

...