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.




.aspx Upload in PowerShell

Geprüfte Antwort Dieser Beitrag hat 4 Antworten

Ohne Rang
282 Beiträge
MStel erstellt 8 Juli 2015 11:28
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo.
Ich habe ein großes Problem in SharePoint.
Ich muss wirklich zwingend eine .aspx für ein Uploadformular auf eine Website in unserer Serverfarm hochladen
(die Seite ist keine Wikipage oder sonstiges, sondern einfach die TopLevel Site einer erstellten SiteCollection mit dem Template "Blank Site")
Die URL der SiteCollection & Endseite entspricht also dem Domainname der Webanwendung.

Die einzige Einschränkung die mir gegeben ist, ist PowerShell dafür zu benutzen.
Ich habe mich dabei treu an das MSDN gehalten. Die Methode die ich verwendet habe ist folgende:
$spFileCollection.FIles.Add($Dateiname, $Dateistream, $true)

Nun zu meinem Problem:
Sobald der Dateiname ( $Dateiname ) die Endung .aspx besitzt erhalte ich die Fehlermeldung

Add : Ausnahme beim Aufrufen von "Add" mit 3 Argument(en):  "<nativehr>0x80070003</nativehr><native

stack></nativestack>Es gibt keine Datei mit URL " http://fs1/SitePages/customUpload.aspx " in d ieser Website."

Natürlich gibt es diese Datei nicht, sie soll ja auch erst angelegt werden.
Ändere ich die Dateiendung beispielsw eise in .txt oder .png wird tatsächlich problemlos eine Datei erstellt und hochgeladen. In der .txt wird logischerweise nichts interpretiert aber ich bekomme den richtigen Inhalt der .aspx Datei die ich als Quelle nehme (Filestream) angezeigt.(das bedeutet Verweis auf die Datei und Inhalt des Filestream s sind OK)
 http://fs1/SitePages/customUpload.aspx
.txt
beispielsweise funktioniert ..

Ich habe in der Zentraladministration überprüft ob .aspx in den "verbotenen" Dateitypen eingetragen ist, was nicht der Fall war. Zu Testzwecken habe ich aus dieser Liste sämtliche Blockierungen aufgehoben , auf Hoffnung mein Upload würde funktionieren.
Leider war auch dieser Test nicht erfolgreich .

Im SharePoint Designer lassen sich Problemlos .aspx Dateien innerhalb dieses Verzeichnisses erstellen. Mit PowerShell funktioniert es nicht, da ich die Lösung aber ausliefern muss und dies eine Anforderung ist kann ich leider nicht auf andere Möglichkeiten ausweichen.

Danke im voraus ...

 

Alle Antworten

Ohne Rang
77 Beiträge
Frank Als Antwort am 8 Juli 2015 12:03
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

hast Du es einmal mit einem anderen Ansatz probiert:

$web = Get-SPWeb http://sharepoint

$filestream = ([System.IO.FileInfo] (Get-item C:\Test\Homepage2.aspx)).OpenRead()

$folder = $web.GetFolder("SitePages")

$spfile = $folder.Files.Add($folder.Url + "/" + "Homepage2.aspx", [System.IO.Stream]$filestream, $true)

$filestream.Close()

$web.Dispose()

Funktioniert das bei Dir?

Viele Grüße
Frank

https://frankeisel.de

Ohne Rang
282 Beiträge
MStel Als Antwort am 8 Juli 2015 13:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Leider nicht.

PS P:\> $web = Get-SPWeb "http://fs1"
PS P:\> $filestream = ([System.IO.FileInfo] (Get-item "C:\local\temp\customUpload.aspx")).OpenRead()
PS P:\> $folder = $web.GetFolder("SitePages")
PS P:\> $spfile = $folder.Files.Add($folder.Url + "/" + "customUpload.aspx", [System.IO.Stream]$filestream, $true)
Add : Ausnahme beim Aufrufen von "Add" mit 3 Argument(en):  "<nativehr>0x80070003</nativehr><native
stack></nativestack>Es gibt keine Datei mit URL "
http://fs1/SitePages/customUpload . aspx " in
 dieser Website.
Bei Zeile:1 Zeichen:28
+ $spfile = $folder.Files.Add <<<< ($folder.Url + "/" + "customUpload.aspx", [System.IO.Stream]$filestream, $true)
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException

PS P:\> $filestream.Close()
PS P:\> $web.Dispose()

Ohne Rang
77 Beiträge
Frank Als Antwort am 8 Juli 2015 16:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Was sagt den das ULS Log zum Zeitpunkt des Fehlers? Vielleicht stehen dort mehr Informationen drin.

Viele Grüße
Frank

https://frankeisel.de

Ohne Rang
282 Beiträge
MStel Als Antwort am 9 Juli 2015 11:23
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Mein Problem hat sich zwar nicht geklärt, aber ich habe eine Antwort auf meine Frage gefunden, danke dafür!
Im Log steht, dass das hinzufügen nicht ausgeführt werden kann, da dort Webparts eingebunden sind, welche falsche Verweise beinhalten.

Hätte ich das zunächst mit einer leeren aspx Seite getestet wäre mir das sicher früher aufgefallen.

Dann muss ich nun doch gucken, wie ich den Webpart manuell hinzugefügt bekomme.

Vielen dank.