SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Script zum kopieren von Dateien in Dokumenten Library

Geprüfte Antwort Dieser Beitrag hat 2 Antworten

Ohne Rang
61 Beiträge
Jonny erstellt 6 Juli 2016 11:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

 

Hallo Zusammen,

 

ich würde gerne Dateien die vom System erstellt werden automatisch jede Nacht in den SharePoint kopieren.

 

Dafür habe ich im Internet ein Script gefunden welches auch soweit funktioniert. Ich würde das Script gerne anpassen das die Dateien in einen bestimmten Ordner kopiert werden und auch in der Quelle gelöscht oder verschoben werden in einen anderen Ordner.

Für andere Lösungsansetzte bin ich offen.

Vielen Dank

Das Script:

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
if((Get-PSSnapin | Where {$_.Name -eq "Microsoft.SharePoint.PowerShell"}) -eq $null) {
     Add-PSSnapin Microsoft.SharePoint.PowerShell;
 }
#Site Collection where you want to upload files
$siteCollUrl = "https://projects.henkell-gruppe.intra/sites/MIS-Test/"
#Document Library where you want to upload files
$libraryName = "Document\Tagesfaktura"
#Physical/Network location of files
$reportFilesLocation  = "\\10.6.80.9\nwtrans\Copy\Bestdo\Neuer Ordner"
$overWriteExisting = $True
#or add new version if versioning enabled

$spSourceWeb = Get-SPWeb $siteCollUrl;
$spSourceList = $spSourceWeb.Lists[$libraryName];

if($spSourceList -eq $null)
{
 Write-Host "The Library $libraryName could not be found."
 return;
}

$files = ([System.IO.DirectoryInfo] (Get-Item $reportFilesLocation)).GetFiles()
foreach($file in $files)
{
 #Open file
 $fileStream = ([System.IO.FileInfo] (Get-Item $file.FullName)).OpenRead()

 #Add file
 $folder =  $spSourceWeb.getfolder($libraryName)

 Write-Host "Copying file $file to $libraryName..."
 $spFile = $folder.Files.Add($folder.Url + "/" + $file.Name, [System.IO.Stream]$fileStream, $true)

 #Close file stream
 $fileStream.Close();

}
$spSourceWeb.dispose();
Write-Host "Files have been uploaded to $libraryName."

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Juli 2016 12:01
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Jonny-ds"]Ich würde das Script gerne anpassen das die Dateien in einen bestimmten Ordner kopiert werden und auch in der Quelle gelöscht oder verschoben werden in einen anderen Ordner[/quote]

Und wo genau hast Du dabei ein Problem?

Man kann das Ganze allerdings auch viel einfacher machen, weil man nicht zwingend das SharePoint Objektmodell verwenden muß. Man kann auch ganz einfach per UNC-Pfad auf SharePoint zugreifen und mit simplem Copy oder Move die Dateien kopieren bzw. verschieben. Sehr wahrscheinlich könnte damit auch gleich das Quellsystem die Dateien in SharePoint ablegen und es braucht gar kein Script.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
61 Beiträge
Jonny Als Antwort am 6 Juli 2016 15:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

ich habe den passenden Parameter nicht gefunden um das Script anzupassen.

Aber vielen Danke für die Idee mit dem UNC-Pfad, habe es jetzt mit dem Copy-Befehl realisiert.

Manchmal denkt man vielleicht zu kompliziert :-).

Vielen Dank