Вызов Powershell .NET Assembly, использующий App.config

У меня есть скрипт Powershell, который загружает сборку .NET (в моем случае - .EXE) и вызывает открытый метод, который использует app.config для извлечения зашифрованной строки подключения.

Сценарий динамически копирует exe.config сборки в папку Powershell ($ pshome) как powershell.exe.config и может нормально запускаться из моего окна разработки. Проблема в том, что он не запускается из стандартной установки Windows Server 2003.

Я проверил, что exe.config правильно копируется в каталог powershell. Я запустил SysInternals Process Explorer и убедился, что процесс обращался к файлам конфигурации (ни один файл не обнаружил сообщения). Я удаленно отладил экземпляр powershell.exe и вижу, что сборка загружается нормально, но не может получить доступ к значениям ConfigurationManager.AppSettings [...] (возвращает ноль).

У меня нет идей. Я читал, что могу использовать отдельный домен приложения, но не вижу примеров того, как сделать это с помощью Powershell.

Мой код делает что-то с эффектом:

$absolute_path = "c:\foo.exe"
$config_path = $absolute_path + ".config"
copy "$config_path" "$pshome\powershell.exe.config" -Force
[Reflection.Assembly]::LoadFrom($absolute_path)
$foo = new-object MyFooAssembly.FooClass
$foo.DoSomething()  

В Vista код работает, в Windows Server 2003 код не работает.

Ответы на вопрос(2)

Ваш ответ на вопрос