2016-06-06 5 views
2

я пытаюсь скопировать файл DLL с моего компьютера на другой и зарегистрировать его:PowerShell Copy-Item дает ошибку в Octopus

net use \\RemoteIp\C$\Dev 'pass'/USER:'user' 

copy-item "D:\test.dll" -Destination "\\RemoteIp\c$\Dev";

regsvr32 "\\RemoteIp\C$\Dev\test.dll" 

Проблема, что у меня есть, что, когда Я пытаюсь запустить этот скрипт из Octopus. Я получаю эту ошибку:

Копировальный номер: не удается найти путь «D: \ test.dll», потому что он не существует. В C: \ Octopus \ Work \ 20160606100457-74 \ Script.ps1: 3 char: 10 + копия < < < < "D: \ test.dll" -Destination "\ RemoteIp \ c $ \ Dev"; + CategoryInfo: ObjectNotFound: (D: \ test.dll : String) [Copy-Item], ItemNotFoundException + FullyQualifiedErrorId: PathNotFound, Microsoft.PowerShell.Commands.CopyI temCommand Удаленный сценарий потерпел неудачу с кодом выхода 1

Если я попытаюсь запустить эти строки кода в PowerShell, он работает правильно.

Любые предложения?

Спасибо

+1

Well либо DLL еще не создан, когда сценарии запускается или путь не доступен, откуда запускается скрипт. – marsze

+0

Например: D: сопоставленный диск, который недоступен для пользователя, использующего Octopus? – Matt

+0

Привет, на самом деле @marsze был прав, я не получил доступ к dll правильно, поэтому осьминог не знал, откуда взять его. Но здесь у меня другая проблема. Кажется, что Octopus застрял в команде regvsr32. Он правильно копировал мою dll, но, похоже, он не может ее зарегистрировать. Вы знаете, почему? – Sebastian

ответ

2

На самом деле это была моя ошибка. Когда вы запускаете сценарий в Octopus, который предназначен для запуска на цели развертывания: 1]

необходимо определить локальный компьютер с IP-адресом. Например, в моем случае мне пришлось написать адрес «D: \ test.dll» следующим образом: «\ 192.168.00.00 \ D $ \ test.dll».

Для проблемы regsvr32 я добавил файл bat на сервере, который запускает инструкцию regsvr32, и я просто вызываю этот файл, и он делает все остальное.

Надеется, что помогает другим :)

Смежные вопросы