none
Neuen Ordner erstellen RRS feed

  • 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

    Mittwoch, 22. Juni 2016 12:19

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.


    Freitag, 24. Juni 2016 12:36
    Moderator

Alle Antworten

  • 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.

    Mittwoch, 22. Juni 2016 12:30
    Moderator
  • 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

    Mittwoch, 22. Juni 2016 15:42
  • 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.


    Freitag, 24. Juni 2016 12:36
    Moderator
  • 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.




    Donnerstag, 30. Juni 2016 14:29
    Moderator