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





Да, ты можешь. Я предлагаю использовать такой инструмент, как robocopy.
вы можете использовать команды net для аутентификации, а затем скопировать файлы.
copy src \dest-machine\shared-library-name\dest
Я не уверен, В самом деле точно, как обрабатывать аутентификацию, если это необходимо.
Если вам нужно что-то написать, вам следует подумать о NAnt.
Он в основном используется для сценариев сборки, но он очень мощный и достаточно простой в использовании.
Также есть NAntContrib и nant ftp задача, которые должны вам помочь.
Я могу ошибаться в этом, но я думаю, что ни решение Ника robocopy, ни решение команды копирования Натана не будут работать. Похоже, что Robocopy нужен подключенный диск, что я не могу сделать, потому что он не работает на порте 80 или 443, а Windows не может обработать путь, который включает порт в имени в стиле UNC:
copy src \dest-machine:45000\shared-library-name\dest
Я также не видел задачи NAnt, которая могла бы справиться с этой ситуацией.
Я также знаю, что есть инструменты, которые позволят мне сопоставить диски WebDAV. Меня больше интересовало, есть ли способ использовать сетевое окружение, которое было настроено без использования графического интерфейса.
Powershell использует абстракцию поставщиков, чтобы предоставить общий интерфейс для хранилищ данных. Кажется, что они придерживаются нарицательного существительного «Предмет», поэтому вы можете получить полный список с помощью man *item*. Если вы знаете другой способ копирования и другой работы с данными из хранилища, вы также можете использовать его, но использование командлетов обеспечивает лучший подход «учиться один раз, использовать часто». В вашем случае вы могли:
Copy-Item test.txt -Destination \dest-machine\share
Copy-item также поддерживает параметр -Credential, если он вам нужен.
Copy-Item имеет параметр -Credential, но ни один из стандартных провайдеров (а именно файловая система) не поддерживает его, поэтому его нельзя использовать на самом деле.
Используя пакетный файл, вы можете как войти на ресурс, так и скопировать файл:
Пакетный файл будет содержать следующее:
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
Из того, что я вижу, кажется, что невозможно напрямую получить доступ / управлять сетевым пространством из командной строки, будь то в PowerShell или простой командной строке ol '.
@slipsec (# 13899):
Спасибо за предложение, но PowerShell не поддерживает номер порта в пути назначения больше, чем команда net use.
Поэтому лучшее, что я могу сделать в моей конкретной ситуации, - это укусить пулю и купить что-то вроде WebDrive, чтобы включить отображение дисков через WebDAV на нестандартных портах, или выполнить другую конфигурацию (например, отдельное веб-приложение с другим IP-адресом и заголовки хоста) в SharePoint, чтобы открыть сайт через NTLM через стандартный порт.
«Сетевое окружение» на самом деле не имеет API, это просто набор ярлыков, а общий ресурс SharePoint использует расширение оболочки, если я правильно помню.
Все это говорит о том, что для доступа к Sharepoint как файловой системе из PowerShell также требуется расширение Поставщик SharePoint.
Если вы имеете в виду windows box, просто используйте xcopy. Наличие xcopy является довольно стандартным.
xcopy src \dest-machine\shared-library-name\dest
xcopy \src-machine\shared-library-name\dest src
также см. аналогичный вопрос здесь: serverfault.com/q/43116/84502