Benutzer mit den meisten Antworten
Neuen Ordner erstellen

Frage
-
Hallo zusammen,
ich möchte eine Ordnerstruktur in eine Dokumentenbibliothek auf eine Sharepoint Online Teamsite einbinden. Nachdem ich die Verbindung zu Office 365 aufgebaut habe, habe ich unter anderem mit folgendem Skript aus dem Internet versucht zumindest einen neuen Ordner zu erstellen. Vergeblich.
Kann mir da jemand weiterhelfen?
Vielen Dank im Voraus und viele Grüße
Andreas
Antworten
-
Da das Problem ab diesem Befehl auftritt $Context.Web.Lists.GetByTitle($DocLibName) musst du hier anzusetzen.
Es gibt mehrere mögliche Ursachen: z.b. das ClientContext-Objekt in $Context wird von der URL ($SiteURL) gar nicht geladen. Prüfe daher mal den Inhalt von $Context. Enthält es das entsprechende (ClientContext) Objekt?
Falls ja, prüfe $Context.Web.Lists, sind da Daten vorhanden? Welche? Gibt es überhaupt Daten mit dem Titel der in $DocLibName hinterlegt ist?Aber nach den Fehlern zu urteilen, wird wahrscheinlich schon kein ClientContext-Objekt vorhanden sein oder enthält zumindest keine Daten. Stimmt die URL? Ggfls mit einer anderen Methode überprüfen ob der Zugriff drauf möglich ist. Was ist mit den Credentials? Stimmen die? Auch hier ggfls mit einer anderen Methode prüfen um eine eindeutige Erfolgs/Fehlermeldung zu bekommen.
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.
- Bearbeitet Denniver ReiningMVP, Moderator Freitag, 24. Juni 2016 12:44
- Als Antwort markiert Denniver ReiningMVP, Moderator Montag, 4. Juli 2016 14:01
Alle Antworten
-
Hallo Andreas,
hast du es schon mit diesem Guide probiert?
Kind regards, Flo
-
Florian , ich nehme mal an es geht darum, das mit Powershell zu machen. ;-)
Andreas, du hast vergessen das erwähnte Skript zu posten, außerdem, was heißt "vergeblich". Was genau ist passiert? Fehlermeldung?Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.
-
Ja es geht natürlich um Powershell, sorry. Script:
#Add references to SharePoint client assemblies and authenticate to Office 365 site – required for CSOM
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
$Password = Read-Host -Prompt "Please enter your password" -AsSecureString#Bind to site collection
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Creds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($User,$Password)
$Context.Credentials = $Creds
$SiteURL = "URL..."
$Folder = "D:\Skripte\..."
$DocLibName = "Dokumente"
#Retrieve list
$List = $Context.Web.Lists.GetByTitle($DocLibName)
$Context.Load($List)
$Context.ExecuteQuery()
#Upload file
Foreach ($File in (dir $Folder -File))
{
$FileStream = New-Object IO.FileStream($File.FullName,[System.IO.FileMode]::Open)
$FileCreationInfo = New-Object Microsoft.SharePoint.Client.FileCreationInformation
$FileCreationInfo.Overwrite = $true
$FileCreationInfo.ContentStream = $FileStream
$FileCreationInfo.URL = $File
$Upload = $List.RootFolder.Files.Add($FileCreationInfo)
$Context.Load($Upload)
$Context.ExecuteQuery()
}Fehlermeldung:
Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.
In D:\Skripte\ps1:81 Zeichen:1
+ $List = $Context.Web.Lists.GetByTitle($DocLibName)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.
In D:\Skripte\ps1:82 Zeichen:1
+ $Context.Load($List)
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.
In D:\Skripte\ps1:83 Zeichen:1
+ $Context.ExecuteQuery()+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
Wie gesagt: Davor wird die Verbindung zu Office 365 mit einem funktionierendem Skript aufgebaut.
Viele Grüße
Andreas
-
Da das Problem ab diesem Befehl auftritt $Context.Web.Lists.GetByTitle($DocLibName) musst du hier anzusetzen.
Es gibt mehrere mögliche Ursachen: z.b. das ClientContext-Objekt in $Context wird von der URL ($SiteURL) gar nicht geladen. Prüfe daher mal den Inhalt von $Context. Enthält es das entsprechende (ClientContext) Objekt?
Falls ja, prüfe $Context.Web.Lists, sind da Daten vorhanden? Welche? Gibt es überhaupt Daten mit dem Titel der in $DocLibName hinterlegt ist?Aber nach den Fehlern zu urteilen, wird wahrscheinlich schon kein ClientContext-Objekt vorhanden sein oder enthält zumindest keine Daten. Stimmt die URL? Ggfls mit einer anderen Methode überprüfen ob der Zugriff drauf möglich ist. Was ist mit den Credentials? Stimmen die? Auch hier ggfls mit einer anderen Methode prüfen um eine eindeutige Erfolgs/Fehlermeldung zu bekommen.
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.
- Bearbeitet Denniver ReiningMVP, Moderator Freitag, 24. Juni 2016 12:44
- Als Antwort markiert Denniver ReiningMVP, Moderator Montag, 4. Juli 2016 14:01
-
Brauchst du hier noch Hilfe oder hast du damit den Fehler finden können?
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Neu: Powershell Code Manager v5 ! (Link)
(u.a.: erstellt interaktive Grafiken aus Script Funktionen, z.b. für Dokumentation)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.
- Bearbeitet Denniver ReiningMVP, Moderator Donnerstag, 30. Juni 2016 14:30