Назад | Перейти на главную страницу

SSIS 2014 - карта NFS

Мы переносим SSIS с SQL 2008 на SQL2014.

Я использую Execute Process Task для сопоставления общего ресурса NFS с диском.

Когда я выполняю эту команду в обычном CMD (64 бит), она работает.

Когда я запускаю его из SSIS, он выходит из строя с кодом ошибки «2».

После некоторого покопания я обнаружил, что когда я запускаю команду "net use" из 32-битной CMD или 32-битной оболочки PowerShell, она также терпит неудачу.

Так что, похоже, работает только с 64-битной версией.

Я погуглил и проверил SSIS, и флаг «Run64BitRuntime» установлен на «True». Также на новой машине установлена ​​«Служба интеграции».

Разумеется, также установлен NFS-клиент.

Я не могу найти разницы между пакетом на старом сервере и пакетом на новом сервере, поскольку мы скопировали весь проект с одного сервера на другой.

Я надеюсь, что кто-нибудь поможет мне найти решение. в решении не требуется команда "net use".

Если есть другой, возможно, лучший способ получить доступ к общему ресурсу NFS, я попробую.

Я нашел обходной путь.

В SSIS «Выполнить задачу процесса»:

  • Исполняемый файл: C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe
  • Аргументы: C: \ path \ to \ script \ CreateMapping.ps1

В «CreateMapping.ps1»:

& (join-path ($pshome -replace "syswow64", "sysnative") powershell.exe) -Command { net use Q: <IP>:/vol/.... }

Что он на самом деле делает:

  1. Запустите сценарий из SSIS в среде PowerShell.
  2. Откройте новый сеанс Powershell, но сделайте новый 64-битным
  3. Выполните команду "Net use" из 64-битной версии.

Также я читал некоторые другие команды для выполнения 64-битной оболочки PowerShell из 32-битной оболочки PowerShell, но это была единственная, которая сработала для меня.