Могу ли я скопировать файлы в сетевое пространство из сценария или командной строки?[закрыто]

StackOverflow https://stackoverflow.com/questions/10313

Вопрос

Возможно ли в Windows XP скопировать файлы в сетевое пространство из командной строки, пакетного файла или, что еще лучше, сценария PowerShell?

На этот путь исследований меня направила попытка опубликовать файлы в библиотеке документов WSS 3.0 с компьютера пользователя.Я не могу сопоставить диск с рассматриваемой библиотекой, поскольку сайт WSS доступен для аутентификации только через NTLM на порту, отличном от 80 или 443.Полагаю, я мог бы поочередно использовать веб-службы WSS для отправки файлов, но сейчас мне действительно интересно получить ответ на этот вопрос.

Это было полезно?

Решение 6

Судя по тому, что я вижу, кажется, что невозможно напрямую получить доступ к сетевому пространству или манипулировать им из командной строки, будь то в PowerShell или в простой командной строке.

@slipsec (#13899):Спасибо за предложение, но PowerShell не поддерживает номер порта в пути назначения, кроме net use команда делает.

Поэтому лучшее, что я могу сделать в моей конкретной ситуации, — это стиснуть зубы и купить что-нибудь вроде WebDrive, чтобы включить отображение дисков через WebDAV на нестандартных портах, или выполнить какую-то другую настройку (например,отдельное веб-приложение с другим IP-адресом и заголовками хостов) в SharePoint, чтобы предоставить доступ к сайту через NTLM через стандартный порт.

Другие советы

С помощью батника можно как зайти на ресурс, так и скопировать файл:

Пакетный файл будет содержать следующее:

net use \\{dest-machine}\{destfolder} {password} /user:{username}
copy {file} \\{dest-machine}\{destfolder}

например

net use \\Development\myfolder mypassword /user:Administrator
copy newfile.c \\development\myfolder

Если вы имеете в виду windows box, просто используйте xcopy.Это довольно стандартно иметь xcopy доступный.

xcopy src \\dest-machine\shared-library-name\dest
xcopy \\src-machine\shared-library-name\dest src

Powershell использует абстракцию провайдеров для предоставления общего интерфейса к хранилищам данных.Кажется, они соответствуют нарицательному существительному «Предмет», поэтому вы можете получить полный список с помощью man *item*.Если вы знаете другой способ копирования и иной работы с данными из хранилища, вы можете использовать его, но использование командлетов обеспечивает лучший подход «один раз изучить, использовать часто».В вашем случае вы можете:

Copy-Item test.txt -Destination \\dest-machine\share

Copy-item также поддерживает параметр -Credential, если он вам нужен.

У «Сетевого окружения» на самом деле нет API, это просто набор ярлыков, а общий ресурс SharePoint использует расширение оболочки, если я правильно помню.

Все это, чтобы сказать:доступ к Sharepoint как к файловой системе из PowerShell также требует расширения, т. Поставщик SharePoint.

вы можете использовать команды «net» для аутентификации, а затем скопировать файлы.

copy src \\dest-machine\shared-library-name\dest

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

Если вам нужно написать сценарий, вам следует подумать НАнт.

В основном он используется для сценариев сборки, но он очень мощный и с ним достаточно легко начать работу.

Есть также NAntContrib и Nant FTP-задача что должно вам помочь.

Я могу ошибаться на этот счет, но я думаю, что ни решение Ника для копирования, ни решение для команды копирования Натана не будут работать.Кажется, что Robocopy нужен подключенный диск, но я не могу этого сделать, поскольку он не работает на порте 80 или 443, а Windows не может обработать путь, включающий порт в имя в стиле UNC:

copy src \\dest-machine:45000\shared-library-name\dest

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

Я также знаю, что существуют инструменты, которые позволят мне сопоставить диски WebDAV.Мне было больше интересно, есть ли какой-нибудь способ использовать настроенные сетевые окружения без использования графического интерфейса.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top