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

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

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

также см. аналогичный вопрос здесь: serverfault.com/q/43116/84502

Synox 16.04.2012 19:46
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
12
1
55 712
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

Да, ты можешь. Я предлагаю использовать такой инструмент, как 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, но ни один из стандартных провайдеров (а именно файловая система) не поддерживает его, поэтому его нельзя использовать на самом деле.

chills42 23.03.2011 20:09

Используя пакетный файл, вы можете как войти на ресурс, так и скопировать файл:

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

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

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