Мы переносим 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 «Выполнить задачу процесса»:
В «CreateMapping.ps1»:
& (join-path ($pshome -replace "syswow64", "sysnative") powershell.exe) -Command { net use Q: <IP>:/vol/.... }
Что он на самом деле делает:
Также я читал некоторые другие команды для выполнения 64-битной оболочки PowerShell из 32-битной оболочки PowerShell, но это была единственная, которая сработала для меня.