Скрипт Powershell для передачи данных между сервером sftp и Sharepoint - PullRequest
0 голосов
/ 20 апреля 2020

Доброе утро всем,

У меня есть проект на работе, где мне нужно загрузить / загрузить между сервером Sharepoint и сервером SFTP. Шаги выглядят примерно так:

  1. Периодически проверяйте данные на сервере sftp (2 разных сервера)
  2. загружайте на сервер Windows любые новые данные
  3. загружайте данные с Windows сервер на Sharepoint
  4. Периодически проверять сервер Sharepoint на наличие данных
  5. загрузка на Windows сервер любых новых данных
  6. загрузка данных с сервера Windows на сервер sftp

У меня есть сценарии для подключения к Sharepoint и для подключения к серверу sftp, и они будут ниже. У меня проблема с перечислением папок / файлов и их загрузкой / выгрузкой. Когда я пытаюсь перечислить определенные папки в Sharepoint, это дает мне все. Я не могу перечислить папки в SFTP.

Я хотел бы загрузить / загрузить папки и добавить к ним временную метку. Мы будем благодарны за любую помощь.

Спасибо

Сценарий подключения SFTP:

$Uname = "my username"
$Pass = Get-Content "C:\Temp\cred.txt" | ConvertTo-SecureString
$Cred = New-Object -typename System.Management.Automation.PSCredential -argumentlist $Uname, $Pass

New-SFTPSession 127.0.0.1 -Credential $Cred

Get-ChildItem 

Сценарий подключения Sharepoint:

$Uname = "email address"
$Pass = Get-Content "C:\Temp\cred.txt" | ConvertTo-SecureString
$Cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $Uname, $Pass


#Connect to SPO
Connect-PnPOnline -Url https://tenantname.sharepoint.com -Credentials $Cred
$web = Get-SPWeb https://tenantname.sharepoint.com
$list = $web.Lists["Style Library"]
$fields = $list.Fields.InternalName
$fields | Where-Object {
    $_ -like '*sitename*'
}

Sharepoint скачать один файл скрипт

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime") | Out-Null

$Uname = "email address"
$Pass = Get-Content "C:\Temp\cred.txt" | ConvertTo-SecureString
$Cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $Uname, $Pass
$SiteURL = "https://tenantname.sharepoint.com/sites/site_name"
$LibraryName = "Documents"
$FolderName = "2020"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials $Cred

#Config Variables
$FileRelativeURL = "/sites/site_name/Shared Documents/2020/file_name"
$DownloadPath ="C:\Temp"


Try {
    #Connect to PNP Online
    Connect-PnPOnline -Url $SiteURL -Credentials $Cred

    #powershell download file from sharepoint online
    Get-PnPFile -Url $FileRelativeURL -Path $DownloadPath -AsFile
}
catch {
    write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}

1 Ответ

0 голосов
/ 21 апреля 2020

Способ, которым я сделал это, состоял в том, чтобы фактически отобразить местоположения как буквы драйвера в Windows Explorer на сервере

Сценарий go будет выглядеть следующим образом:

  • Удалить старый список дисков
  • Карта диска, используя URL-адрес сайта SP / библиотеки документов (Ваши комментарии в коде предполагают, что вы используете SPO)
  • Запустите остальные ваши requiremnts
...