Thursday, July 18, 2019

Problem with Copy-PnPFile cmdlet and File Not Found error

Sharepoint PnP PowerShell library has many useful commands which simplify scripting against Sharepoint Online. One of them is Copy-PnPFile which allows to copy file from one document library to another. Source and target doclibs may be even located in different site collections in the same tenant.

One of example of Copy-PnPFile (basically 1st example) says that it is possible to copy single file like that:

Copy-PnPFile -SourceUrl Documents/company.docx -TargetUrl /sites/otherproject/Documents/company.docx

Unfortunately currently it gives File not found error. Looks like there is a bug in Copy-PnPFile which prevents it from working correctly – it is also described in this StackOverflow thread which was created couple of days ago: Copy-PnPFile returns File Not Found.

The only working way which I’ve found so far is to copy whole root folder:

Copy-PnPFile -SourceUrl Documents -TargetUrl /sites/otherproject/Documents -SkipSourceFolderName

It will copy all files from Documents doclib to Documents doclib on another site collection /sites/otherproject. However it will also try to copy OTB list view AllItems.aspx as last file and it will give error that AllItems.aspx already exists in target doclib. In order to ignore this error I used the following solution:

$error = $null
Copy-PnPFile -SourceUrl Documents -TargetUrl /sites/otherproject/Documents -SkipSourceFolderName -ErrorAction SilentlyContinue -ErrorVariable error
if ($error -and !$error.Exception.Message.ToLower().Contains("allitems.aspx")) {
    throw $error
}

I.e. it will throw error only if message doesn’t contain allitems.aspx occurrence. Hope that it will help someone.

2 comments:

  1. Совсем недавно я решил обновить свой спортивный гардероб и нашел потрясающий вариант - спортивный костюм мужской весна лето на маркетплейсе Озон. Я был приятно удивлен какой выгодной ценой предлагается этот костюм! К тому же, на данный момент идет акция со скидкой, так что я успел сэкономить не мало. Доставка была очень быстрой и без каких-либо проблем, все пришло в отличном состоянии. Костюм оказался идеального качества, материал очень приятный на ощупь и хорошо садится на фигуру. В общем, я очень доволен своей покупкой и рекомендую всем купить этот спортивный костюм на Озоне!

    ReplyDelete
  2. Хочу поделиться своим положительным опытом обращения в авто сервис EcoOff.by для удаления датчика ЕГР. Прекрасно знаю, как важно беспокоиться о состоянии экологии и стараться сделать все возможное для уменьшения выбросов вредных веществ в атмосферу. Именно поэтому я обратил внимание на предложение EcoOff.by об удалении датчика ЕГР для моей машины марки Audi A6. Уверенно могу сказать, что выбор EcoOff.by оказался для меня наилучшим. Цена на услугу была вполне приемлемой, что уже сразу заинтересовало меня. А качество работы превзошло все мои ожидания. Автосервис в Гомеле предоставил качественное удаление датчика ЕГР с моего автомобиля. Сервис имеет профессиональное оборудование, работает высококвалифицированный персонал, и был выполнен в срок. Я остался очень доволен результатом. Удаление датчика ЕГР позволило значительно улучшить экологию выхлопных газов, а также повысить показатели мощности моего автомобиля. Хочу порекомендовать всем владельцам автомобилей обратиться в авто сервис EcoOff.by для удаления датчика ЕГР. Посетив их сайт по ссылке удаление датчика егр, вы сможете ознакомиться с подробностями данной услуги и убедиться в их профессионализме. Они действительно заботятся о клиентах и предлагают высокое качество работы.

    ReplyDelete