Posts tagged ‘Sharepoint’

Powershell: Dateien finden, die die 256-Zeichen-Pfadlänge sprengen

Sharepoint-Server haben ein Maximum von 256 Zeichen für Pfadangaben, Leerzeichen in Datei- und Ordnernamen werden dabei als „%20“ dargestellt, sodass für jedes Leerzeichen drei Zeichen „draufgehen“. Mit dem folgenden Powershell-Skript kann man die Dateien in einem Verzeichnis identifizieren, die das Limit vermutlich sprengen.

Die erzeugte CSV-Datei hat drei Spalten: Pfadlänge, Pfadlänge wenn Leerzeichen als „%20“ dargestellt werden, Pfad.

gci "K:\inputpath" | Select @{N="Path Length";E={$_.FullName.Length}}, @{N="URL Length";E={$_.FullName.replace(' ','+++').Length}}, 
Fullname | Export-Csv -NoTypeInformation -Delimiter ";" -Path "t:\ABC\filelaengen.csv"

Datei vom Sharepoint laden mittels Powershell

Hier ein Code-Schnipsel, zusammenkopiert aus Stackexchange-Antworten, mit dem man eine Datei vom Sharepoint laden kann. Wichtig war hier, dass die eventuell bereits lokal vorhandene Datei nicht mehr genutzt wird. Dazu wird sie gelöscht (man könnte noch prüfen, ob sie überhaupt vorhanden ist…). Der Sharepoint-Pfad wird innerhalb der Powershell als Laufwerk gemountet, das erlaubt dann die Nutzung einfacher Kopier-Befehle.

[String]$Ziel = "somelocalfile.txt"
 
Write-Host "Loesche die alte Datei"
Remove-Item -Path $Ziel
 
$FileExists = Test-Path $Ziel
If ($FileExists -eq $True) {
    Write-Host "Fehler: Datei noch vorhanden!"}
Else {
    Write-Host "OK: Alte Datei geloescht!"
}
 
Write-Host "Mounte Sharepoint als virtuelles Laufwerk..."
[String]$WebDAVShare = '\\some\unc\path\'
New-PSDrive -Name S -PSProvider FileSystem -Root $WebDAVShare
 
Write-Host "Kopiere ..."
Copy-Item "S:/someremotefile.xlsx" $Ziel
 
$FileExists = Test-Path $Ziel
 
If ($FileExists -eq $True) {
    Write-Host "OK: Neue Datei vorhanden!"}
Else {
    Write-Host "Fehler: Datei wurde nicht heruntergeladen!"
}
 
Write-Host "Press any key to continue ..."
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")