Не копируются по сети большие файлы
Уважаемы специалисты. Столкнулся с одной неразрешимой пока проблемой. У меня DSL модем,подключенный к интернету.На него зацеплен маршрутизатор D-Link DIR-100(4 порта),на него навешано 4 компа.Все работает отлично. За исключением недавно подключенного 4-го компа.Инет у него идеально пашет.Сеть работает.А вот при копировании этим компом с любого из других больших файлов прогрессбар достигает 25-30% и благополучно виснет.После чего мне сообщается,что "сетевое имя более недоступно".Если копировать по сети файлы с другого компьютера на этот,все работает.Но не наоборот.Юзал инет на эту тему. Ошибок,похожих на мою,немного,но есть. Но лишь похожих.Одни предлагают с политиками безопасности поработать. Поработал. Согласно списку и даже сверх..Не помогает.Другие отключить некоторые параметры в настройках карты.Но у меня таких параметров не обнаружилось.Третьи DCHP отключить и настроить вручную.Пробовал.Не помогает.Да и в основном речь идет о 2000-м сервере и его проблемах с ХР SP1.А у меня везде XP стоит,да и сервера как такового нет.Сеть одноранговая.Единственно,на том самом компе SP3,а на остальных SP2.Но нулевый. Винт после форматирования,антивирус стоял,все проверил,потом удалил. Я в тупике.Помогите,люди добрые.
Ошибок на проблемном компе в логе нет.
Драйвера на видеокарту переустанавливал с официального сайта.
Эта цепочка заблокирована. Вы можете просмотреть вопрос или оставить свой голос, если сведения окажутся полезными, но вы не можете написать ответ в этой цепочке.
Оскорбление — это любое поведение, которое беспокоит или расстраивает человека или группу лиц. К угрозам относятся любые угрозы самоубийством, насилием, нанесением ущерба и др. Любое содержимое для взрослых или недопустимое на веб-сайте сообщества. Любое изображение, обсуждение наготы или ссылка на подобные материалы. Оскорбительное, грубое или вульгарное поведение и другие проявления неуважения. Любое поведение, нарушающее лицензионные соглашения, в том числе предоставление ключей продуктов или ссылок на пиратское ПО. Незатребованная массовая рассылка или реклама. Любые ссылки или пропаганда сайтов с вирусным, шпионским, вредоносным или фишинговым ПО. Любое другое неуместное содержимое или поведение в соответствии с правилами использования и кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другими вариантами оскорбления или эксплуатации детей.
27.04.2020
itpro
PowerShell, Windows 10, Windows Server 2012 R2
комментария 24
Используем BITS для асинхронного копирования больших файлов по сети
Процесс загрузки файлов через BITS можно запустить и в асинхронном режиме, для этого к рассмотренной выше команде нужно добавить параметр –asynchronous. В этом режиме, если что-то случится в процессе загрузки файла (перезагрузка сервера, клиента, обрыв канала связи и пр.), задание автоматически продолжится после восстановления доступности источника и загрузка файла продолжится с момента прерывания связи.
Важно. По умолчанию Start-BitsTransfer работает с приоритетом Foreground (наивысший из возможных). Предполагается, что загрузка файла, запущенная в этом режиме будет соревноваться с другими процессами за полосу пропускания канала. Чтобы избежать этого, нужно явно указать в качестве аргумента команды любой другой приоритет, например, -Priority low:
Асинхронное задание BITS выполняется в фоновом режиме, а на экран не выводится процесс выполнения команды загрузки файла. Статус задания BITS можно получить из консоли PowerShell с помощью команды Get-BitsTransfer:
Get-BitsTransfer | fl
Команда возвращает статус передачи (в данном случае видно, что передача окончена -Transferred), информацию о количестве переданных байт, общем размере файла, времени создания и завершения задания BITS.
Вы можете просмотреть статус всех заданий BITS, запущенных на компьютере, в табличной форме:
Get-BitsTransfer | select DisplayName, BytesTotal, BytesTransferred, JobState | Format-Table -AutoSize
При использовании асинхронного режима передачи, в целевом каталоге создается временный файл с расширением TMP (по умолчанию скрыт в проводнике). Чтобы конвертировать его в исходный тип файла (который хранится на сервере-источнике), нужно выполнить команду Complete-BitsTransfer:
Задание загрузки BITS после этого считается завершенным и пропадает из списка заданий.
Вы можете загрузить локальный файл в общую сетевую папку на удаленном сервере. Для этого используется следующая команда (для удобства можно указать имя задания копирования):
Start-BitsTransfer -Source C:\iso\w101809.iso -Destination \\ekt-fs1\iso -Asynchronous -DisplayName CopyISOtoEKT
Чтобы временно приостановить задание BITS, выполните:
Get-BitsTransfer -Name CopyISOtoEKT | Suspend-BitsTransfer
Для продолжения задания используется командлет Resume-BitsTransfer:
Get-BitsTransfer -Name CopyISOtoEKT | Resume-BitsTransfer -Asynchronous
Вы можете добавить в задание BITS дополнительные файлы с помощью командлета Add-BitsFile:
Get-BitsTransfer -Name CopyISOtoEKT | Add-BitsFile -Source C:\iso\w10msu\* -Destination \\ekt-fs1\iso -Asynchronous
Чтобы удалить все задания загрузки BITS на компьютере (в том числе запущенные другими пользователями), выполните команду:
Вы не сможете отменить задания BITS, запущенные из-под System (ошибка 0x80070005 Unable to cancel job). Для отмены такого задания нужно выполнить команду Remove-BitsTransfer из-под SYSTEM.
Если сервер, на котором хранится файл, требует аутентификации пользователя, вы можете вызвать окно, в котором нужно указаны учетные данные для доступа к ресурсу:
Чтобы было удобнее отслеживать результаты выполнения задания BITS, можно воспользоваться простым скриптом, который отслеживает выполнение задания и раз в несколько секунд выводит процент выполнения загрузки на экран. По окончании загрузки файла, скрипт автоматически преобразует TMP файл в исходный формат:
Протокол BITS
BITS или Background Intelligent Transfer service — (Фоновая интеллектуальная служба передачи) – это служба Windows, которая используется для передачи файлов между системами. С помощью протокола BITS можно передавать как скачивать, так и закачивать файлы. Именно по этому протоколу компьютеры скачивают файлы с серверов при выполнении автоматического обновлении Windows (в т.ч. при скачивании обновлений со WSUS сервера), при получении программ с SCCM точек распространения и т.д.
Преимущества протокола BITS:
- BITS — интеллектуальный протокол, который при работе способен регулировать используемую полосу канала связи, чтобы не оказывать влияния на другие сетевые приложения и сервисы. BITS может использовать только незанятую полосу пропускания канала и динамически изменять скорость передачи данных в процессе работы (если другие приложения увеличат нагрузку на сеть, BITS может уменьшить скорость передачи данных по сети);
- Загрузка файла может идти в фоновом режиме, незаметно для пользователя;
- Задание BITS в режиме докачки будет автоматически продолжено даже в случае обрыва канали связи между компьютером и клиентом, или после перезагрузки компьютера;
- В любой момент вы можете приостановить или возобновить загрузку по BITS без потери данных;
На заметку. Возможность перезапуска процедуры копирования файлов по сети имеется также и в утилите robocopy.exe, позволяющей возобновить закачку файла в случае обрыва соединения.
Таким образом, BITS является оптимальным протоколом для передачи больших файлов по медленным и нестабильным сетям (спутниковый канал, GPRS соединение и т.д.).
Копирование всего содержимого общей сетевой папки через BITS
Как мы уже говорили, для работы BITS не нужен Web сервер, это означает, что вы можем скопировать файлы непосредственно с других Windows-компьютеров или общих сетевых папок:
Start-BitsTransfer -Source \\msk-rep01\os\rhel-server-7.0-x86_64-dvd.iso -Destination c:\temp -Asynchronous
Командлеты модуля BitsTransfer не умеют рекурсивно копировать все файлы и папки из определённой директории, или файлы, которые используются другими программами. Чтобы из указанной сетевой папки скопировать все файлы с подкаталогами, воспользуемся такой функцией (можно предварительно проверить, существует ли целевой каталог и создать его):
Import-Module BitsTransfer
$Source="\\msk-rep01\os\"
$Destination="c:\tmp\"
if ( -Not (Test-Path $Destination))
$null = New-Item -Path $Destination -ItemType Directory
>
$folders = Get-ChildItem -Name -Path $source -Directory -Recurse
$job = Start-BitsTransfer -Source $Source\*.* -Destination $Destination -asynchronous -Priority low
while( ($job.JobState.ToString() -eq 'Transferring') -or ($job.JobState.ToString() -eq 'Connecting') )
Sleep 3
>
Complete-BitsTransfer -BitsJob $job
foreach ($i in $folders)
$exists = Test-Path $Destination\$i
if ($exists -eq $false)
$job = Start-BitsTransfer -Source $Source\$i\*.* -Destination $Destination\$i -asynchronous -Priority low
while( ($job.JobState.ToString() -eq 'Transferring') -or ($job.JobState.ToString() -eq 'Connecting') )
Sleep 3
>
Complete-BitsTransfer -BitsJob $job
>
Если вы используете анонимную авторизацию, необходимо разрешить анонимным пользователям запись в каталог на уровне NTFS. Если загрузка файлов выполняется под авторизованными пользователями, им необходимо предоставить RW разрешения на папку загрузки.
Обратите внимание, что по-умолчанию IIS позволяет загружать файлы до 30 Мб. Чтобы разрешить загружать большие файлы, нужно в файле web.config изменить значение в параметре maxAllowContentLength.
Таким образом, использование возможностей BITS представляет собой отличную альтернативу традиционному копированию файлов по сети по протоколу SMB. В отличии от последнего, задание копирования файлов BITS выполняется несмотря на разрывы связи и перезагрузки компьютеров, и не так загружает канал связи, не мешая работе других сетевых приложений и пользователей. Протокол BITS может быть оптимальным решением для передачи по WAN сети больших файлов ISO образов и файлов виртуальных машин (vmdk, vhdx).
Два компьютера соединены напрямую кроссовым кабелем, на одном две сетевухи realtec, на другом одна realtec. Пингуют друг друга исправно, ресурсы шарятся исправно. С первого компьютера на второй файлы качаются нормально, но при скачивании со второго возникает проблема: большой файл копируется секунд 5 - 8 (50 -100мб, каждый раз по-разному) и останавливается, ждет секунд 10-15 и пишет что мол нельзя, снимите защиту от записи. Копирование мелких файлов тоже встает, когда суммарный вес превышает эти 50-100мб. Такое чувство, что проблемы с каким-то буфером, который по мере переполнения не очищается. Подскажите, в чем дело
IP на компах
192.168.10.1 и
192.168.10.2
PPS: Проблема на обоих сетевых платах.
Найти вероятность того, что герб выпадет: 2 раза; не менее 2 раз; не более 2 раз; не менее одного и не более трех раз
Монету бросают 6 раз. Найти вероятность того, что герб выпадет: а) 2 раза; б) не менее 2 раз; в)не.
Найти вероятность того, что событие А происходит: а)точно 220; б) менее чем 240 и более чем 100 раз.
В каждом из 500 независимых испытаний событие А происходит с постоянной вероятностью 0,4.Найти.
При копировании папок копируется только 1 за раз
Здравствуйте господа. Программа копирует папки и файлы, с указанным расширением, из указанной.
Копируется ли DLL, если вызывается много раз одновременно
Я пишу DLL, в которую вынесена простая функция, но для её расчёта нужен большой массив.
Один и тот же файл, допустим видео avi тоже всегда с разным объемом не докачивается?
Я сам еще такого не встречал, но если бы такое случилось, то проверился бы для начала на вирусы, потом сетевой стек почистил утилиткой WinsockxpFix.exe, после этого драйвера обновил, заменил сетевой кабель между компьютерами, снизил скорость на сетевых до 10 мегабит, ну и на худой конец заменил сетевые адаптеры, в последнем случае переустановил систему.
допустим ставлю копировать 700mb фильм, он встает на 7-8%.
если ставлю копировать папку музыки, первые несколько mp3-файлов успешно копируются, но на каком-то очередном встает.
тут же снова копирую, снова копируется столько же, и встает
систему переставлял. вирусов нет, это однозначно. вот сетевой стек сейчас буду чистить, как ты говоришь.
кабель переобжимал с обоих концов пару раз. с другими компами он работает.
С вами канал " Techno-Geek " и в этой статье хочу поделится с вами информацией о том, как, скопировать большие файлы в неустойчивой сети. И начать хочется с того, что на днях столкнулся с такой проблемой - нужно передать файл в 6 гигабайт внутри одной сети на устройство доступ к которому есть только через беспроводное сетевое подключение и ни как иначе.
Синхронная передача файлов между компьютерами с помощью BITS
В данном примере командлет выполняет загрузку файла в синхронном режиме. Закачка файла напоминает обычную процедуру копирования через проводник или с помощью PowerShell командлета Copy-Item. При это на экран выводится прогресс бар, отображающий статус выполнения закачки. При перезагрузке компьютера, закачка возобновлена не будет (вам заново скачивать весь файл).
Что дальше?
Итак я создал торрент файл, после чего он автоматически добавился в программу uTorrent, которая является моим торрент-клиентом, и стал на раздачу, но мне это не нужно, так как я не раздаю файл кому-то, а просто хочу копировать его с поддержкой докачки, поэтому мне нужно было удалить файл из торрент-клиента. Для этого нужно нажать по нему правой кнопкой мышки и выбрать "Удалить выборочно" - "Только торрент файл"
Теперь, осталось только пойти туда, где создан торрент-файл, в моём случае я поместил его на рабочий стол, и два раза нажать на него левой кнопкой мыши, для того, чтобы запустить процесс скачивания. После - выбрать путь куда будет скачиваться файл, в моём случае это устройство в сети, и начать загрузку. Так, даже когда сеть будет обрываться, то будет возможность продолжить копирование с того места в котором оно прервалось, а если в процессе копирования вдруг будет скачок напряжения и компьютер перезагрузится, то при открытии торрент-клиента будет произведена проверка файла и копирование продолжится.
Здравствуйте. Проблема в следующем: При копировании больших файлов (фильмов и.т.д. 3Gb и более), копирование "замораживается". Пишет, что скорость 0 байт/c. И так может стоять часами, пока я не закрою окно копирования.
Windows Pro 64x
От типа файлов не зависит.
От включения-отключения антивируса (Drweb) - тоже;
От замены свитча(роутера) в локальной сети - также;
Изменил модель жёсткого диска (заменил системный диск на новый с копированием образа) - копирование также "подвисает";
Проблема существует уже несколько месяцев.
Ошибки не возникает (через несколько часов я таки нажму крестик отмены копирования).
По колёсам стучал, за антенну дёргал - не помогает.
Порылся по сходным вопросам - нашёл только "проблемы с копированием"( на телефон) с очень похожим симптомом. Но за год, кроме стандартного списка вопросов, никто ничего не ответил пользователю. Вот и создал новый вопрос.
Эта цепочка заблокирована. Вы можете просмотреть вопрос или оставить свой голос, если сведения окажутся полезными, но вы не можете написать ответ в этой цепочке.
Оскорбление — это любое поведение, которое беспокоит или расстраивает человека или группу лиц. К угрозам относятся любые угрозы самоубийством, насилием, нанесением ущерба и др. Любое содержимое для взрослых или недопустимое на веб-сайте сообщества. Любое изображение, обсуждение наготы или ссылка на подобные материалы. Оскорбительное, грубое или вульгарное поведение и другие проявления неуважения. Любое поведение, нарушающее лицензионные соглашения, в том числе предоставление ключей продуктов или ссылок на пиратское ПО. Незатребованная массовая рассылка или реклама. Любые ссылки или пропаганда сайтов с вирусным, шпионским, вредоносным или фишинговым ПО. Любое другое неуместное содержимое или поведение в соответствии с правилами использования и кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другими вариантами оскорбления или эксплуатации детей.
Как скачать файл по протоколу BITS с помощью PowerShell
Предполагается, что к данному URL адресу разрешен анонимный доступ (в дальнейшем мы рассмотрим доступ к URL адресу с аутентификацией).
В первую очередь загрузите в сессию PowerShell модуль поддержки BITS:
После загрузки модуля, вы можете вывести список всех доступных команд модуля BitsTransfer:
Как вы видите, доступно всего 8 командлетов:
- Add-BitsFile
- Complete-BitsTransfer
- Get-BitsTransfer
- Remove-BitsTransfer
- Resume-BitsTransfer
- Set-BitsTransfer
- Start-BitsTransfer
- Suspend-BitsTransfer
Выход из ситуации
Поскольку я не являюсь сетевым экспертом, и не знаю всех тонкостей работы с консолью и серверами мне нужно было найти максимально простое и удобное решение, которое я как пользователь мог бы применить не вдаваясь в различные SSH протоколы и консольные программы, мне просто нужно было передать файл имея функцию докачки фала при разрыве сети или если произойдёт физическое отключение питания в процессе копирования, чтобы я не повторял копирование всего файла, а просто и без каких либо проблем продолжил копирование с точки разрыва.
И тут ко мне пришла простая, но в то же время рабочая идея - использовать для передачи файла Торрент-клиент. Всё что мне нужно сделать - это создать торрент файл, для этого нужно зайти в меню "Файл" - "Создать новый торрент. ", выбрать файл и создать для него торрент файл.
Таким образом я буду сам для себя отдающим и принимающим. Напомню, что физического доступа к устройству, на которое нужно передать файл нет, соответственно установить на нём торрент клиент я не могу, а значит я должен отдавать файл со своего персонального компьютера и принимать его к себе же в сетевое пространство но на диск к которому у меня открыт доступ.
Для того, чтобы осуществить такую операцию мне нужно было, чтобы мой торрент файл передавался внутри сети без использования торрент-трекера, а только по средствам сети через торрент-клиент. Для этого нужно задействовать технологию DHT (Distributed Hash Table), которая включается в настройках торрент-клиента и обеспечивает передачу файлов внутри сети и в обход торрент-трекеров.
BITS: требования к ОС и версии PowerShell
Протокол BITS впервые был представлен еще в Windows XP, для управления заданиями BITS в которой можно было использовать утилиту bitsadmin.exe. Утилита все еще поддерживается, однако считается устаревшей. Для управления заданиями BITS предпочтительно использовать специальные командлеты PowerShell.
Для работы по рассматриваемому сценарию нам потребуется ОС не ниже Windows Vista или Windows Server 2008, и PowerShell не ниже версии 2.0. Современные версии Windows 10 и Windows Server 2016 / 2012 R2 протокол BITS полностью поддерживают.
Совет. Возможно использовать и Windows Server 2003. В этом случае придется установить специальное обновлений KB 923845 и PowerShell V2.0.
Поддержка BITS требуется как на стороне клиента, так и сервера.
Суть проблемы:
При обычном копировании через CTRL+C - CTRL+V копирование файла доходило до пределов в 38% - 96%, сеть разрывалась и файл полностью не передавался, а стандартные методы Windows не позволяют делать блочное копирование и не поддерживают докачку файла, соответственно файл всегда получался повреждённым и был не пригоден для его открытия на другом устройстве.
Проблема усугублялась тем, что второе устройство находится в физически недоступном месте и к нему нет возможности подключить сетевой кабель напрямую или записать данные на переносной носитель информации и подключить его к устройству. Так нужно было найти способ передать большой объём данных внутри беспроводной сети не имея физического доступа к другому устройству.
Поиск путей решения
Естественно первым делом я пошёл в поисковик и начал искать программы которые поддерживают процесс копирования файлов с докачкой и удивился тому, как часто у пользователей возникает такой вопрос (скриншот приложу ниже), но ответа я так и не нашел, все решения на которые я натыкался это советы программ для копирования по типу "TeraCopy" или "KillCopy", но они мне не помогли, так как по сути эти программы ни чем не отличаются от стандартных средств Windows и при разрыве сети они также выдают ошибку передачи файла.
Читайте также: