Могу ли я скопировать файлы в сетевое пространство из сценария или командной строки?[закрыто]
-
08-06-2019 - |
Вопрос
Возможно ли в 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.