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.




Dropdown Eintrag auswählen via Powershell

Geprüfte Antwort Dieser Beitrag hat 6 Antworten

Ohne Rang
7 Beiträge
Thomas L. erstellt 6 Juli 2015 13:15
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo, bin ein echter Sharepoint Anfänger.

Meine Aufgabe ist es einen Eintrag in eine Seite von Sharepoint via Powershell zu machen und dann in den restlichen Spalten vorgegebene Auswahlmöglichkeiten aus einem Dropdownfeld auszuwählen.

Spalte 1              Spalte 2              Spalte 3 ...

(Eintrag)             (Dropdown)        (Dropdown) ....

Einen Eintrag zu machen bekam ich hin, aber wie wählt man in den Spalten einen Wert aus?

Das ganze soll (Client) über COM sein, also ohne SP-Cmdlet. Mein bisher spärlicher Code:

# Modul einbinden

$OutNull= [System.Reflection.Assembly]::LoadFile($installpath + "\dll\Microsoft.SharePoint.Client.dll")

$OutNull= [System.Reflection.Assembly]::LoadFile($installpath + "\dll\Microsoft.SharePoint.Client.Runtime.dll")

$OutNull= [System.Reflection.Assembly]::LoadFrom($installpath + "\dll\Microsoft.SharePoint.dll")

#Variablen**********************************************************************#

$siteUrl = "https://....(meine_Seite)...."

$site1 = "Seite_mit_Vorgabewerten"

$site2 = "Seite_mit_Vorgabewerten"

#Eintrag machen*****************************************************************#

$ClientContext=New-Object Microsoft.SharePoint.Client.ClientContext($siteUrl)

$SPListe = $ClientContext.Web.Lists.GetByTitle($site1)

$ListItemList = New-Object Microsoft.SharePoint.Client.ListItemCreationInformation

$Share = $SPListe.addItem($ListItemList)

$Share["Title"] = "Neu"

$Share.update()

$ClientContext.ExecuteQuery()

Fand bisher nur diese Seite   http://social.technet.microsoft.com/wiki/contents/articles/20831.sharepoint-a-complete-guide-to-getting-and-setting-fields-using-powershell.aspx#Set_and_Get_a_Lookup_Field

, die mir aber nicht weitergeholfen hat. Dachte via lookup evtl, aber verzweifelte daran.

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Juli 2015 13:18
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Die DropDowns sind unter der Haube auch nur ganz normale Textfelder. D.h. Du brauchst Dich um die Auswahlmöglichkeiten gar nicht zu kümmern und kannst einfach Text hineinschreiben - genau wie beim Title.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
7 Beiträge
Thomas L. Als Antwort am 6 Juli 2015 13:25
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

...

$Share["Title"] = "Neu10"

$Share["Name_Spalte2"] = "Eintrag"

$Share

 

 

.update()

...

Hatte es auch schon so (grün) versucht, aber bekomme dann Fehlermeldung bei ExecuteQuerry, dass das Feld möglicher schreibgeschützt sei.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Juli 2015 14:18
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Dann ist es wahrscheinlich wirklich ein Lookup-(Nachschlage)-Feld. Bei dem mußt Du die ID des nachgeschlagenen Elements angeben, völlig unabhängig vom angezeigten Text.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
7 Beiträge
Thomas L. Als Antwort am 6 Juli 2015 15:10
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ok, aber wie ginge das im oberen Fall, oder in einem Beispiel?

Denn das habe ich aus der Seite im Link verzweifelt versucht.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Juli 2015 15:45
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Den Link habe ich nicht durchgelesen. Wenn Du das auf einen ganz bestimmten Wert setzen möchtest, dann suche Dir dessen ID und schreibe dann sowas:

$share["Spalte"] = 17

Falls Du das in irgendeiner Weise dynamisch haben möchtest, wird es sehr viel komplizierter. Du mußt dann ein CAML-Query auf die Nachschlageliste machen, um Dir die ID zu einem bestimmten Text zu holen. Das CAML dazu kann ungefähr so aussehen:

<Where>
<Eq>
<FieldRef Name="Title"/>
<Value Type="Text">gesuchter Text</Value>
</Eq>
</Where>

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
7 Beiträge
Thomas L. Als Antwort am 6 Juli 2015 15:59
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Oh , eigentlich einfach. Schrieb den Wert rein, was nicht ging.

 

Vielen vielen Dank Andi :)