Как использовать надстройки Sharepoint с PowerShell без установки Sharepoint? - PullRequest
0 голосов
/ 20 ноября 2018

Я пишу сценарий powershell для копирования файлов с sharepoint на компьютер с Windows.Я не хочу устанавливать sharepoint на компьютере под управлением Windows для запуска этого сценария powershell.Нам это нужно только на сервере, на котором работает наша sharepoint.Цель моего сценария - скопировать файлы с sharepoint на компьютер с Windows в качестве резервной копии.

Я следую этому примеру .Однако, когда я запускаю его (с помощью add-psSnapin), я получаю:

«Add-PSSnapin: оснастка Windows PowerShell« Microsoft.SharePoint.PowerShell »не установлена ​​на этом компьютере. "

Я просматривал эту статью , и мне показалось, что она использует Enable-PSRemoting, который я добавил в свой скрипт.

Это мой сценарий, который похож на ссылку, которую я дал выше:

#run 64 bit powershell version as administrator (doing this): https://stackoverflow.com/questions/19055924/how-to-launch-64-bit-powershell-from-32-bit-cmd-exe 

Set-ExecutionPolicy RemoteSigned #permission to run scripts
Enable-PSRemoting
Get-PSSnapin -Registered | Add-PSSnapin -Passthru
#Add-PSSnapin Microsoft.SharePoint.PowerShell

$tempSource = "http://sharepoint.college.edu/sites/Disaster%20Plan/Forms/AllItems.aspx"
$ToLocation = "C:\Users\mcl8\Documents\2018\powershellFiles\toLoc\"

$web = Get-SPWeb -Identity "http://sharepoint.college.edu/sites/Disaster%20Plan/Forms/"
$list = $web.GetList("http://sharepoint.college.edu/sites/Disaster%20Plan/Forms/AllItems.aspx")


function ProcessFolder{
   param($SourceUrl)
   $folder = $web.GetFolder($SourceUrl)
   foreach ($file in $folder.Files) {
      #Ensure destination dir
      $destinationFolder = $destination + "/" + $folder.Url
      if (!(Test-Path -path $destinationFolder))
      {
         $dest = New-Item $destinationFolder -type directory
      }
      #Download file
      $binary = $file.OpenBinary()
      $stream = New-Object System.IO.FileStream($destinationFolder + "/" + $file.Name), Create
      $writer = New-Object System.IO.BinaryWriter($stream)
      $writer.Close()
   }

} #ProcessFolder

#################start here##################################

#run this as administrator

#Download root files
ProcessFolder($list.RootFolder.Url)
#Download files in folders
foreach ($folder in $list.Folders) {
   #ProcessFolder($folder.Url)
}

В Get-SPWeb происходит сбой следующим образом:

Get-SPWeb: термин «Get-SPWeb» не распознается как имя командлета, функции, файла сценария или работоспособной программы.Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку.

Я пытался раскомментировать строку Add-PSSnapin, но получил эту ошибку:

Add-PSSnapin: оснастка Windows PowerShell «Microsoft.SharePoint.PowerShell» не установлена ​​на этом компьютере.

Но, как я уже сказал, я не хочуустановить Sharepoint на мой компьютер.

Есть идеи, как использовать надстройки sharepoint?Спасибо!

1 Ответ

0 голосов
/ 21 ноября 2018

Если вам просто нужно скопировать файлы, на самом деле нет необходимости в каком-либо специальном скрипте или модуле.Обычно вы можете рассматривать библиотеки sharepoint как сетевые папки.Скопируйте его в проводник и посмотрите, сможете ли вы его открыть.

\\ sharepoint.college.edu \ DavWWWRoot \ sites \ Disaster% 20Plan \

Или вы также можете открыть папку своей библиотекив Internet Explorer должна быть кнопка типа «открыть как папка» или что-то в этом роде.Тогда все, что вам нужно, это Copy-Item

...