I have a sharepoint list and I want to set some value inside it. The multi-choice field is already defined and it is already pointing on data. I just want to pick one of the choices and set it in the field. I don't want to create new values and adding them inside.

    $weburl = "http://sdfsdfsdf"
    $web = Get-SPWeb $webUrl

    $choice = # what do i have to put here ?

    $newItem = $list.AddItem()
    $newItem["multiChoiceField"] = $choice
  • have you had any luck on this, currently trying to figure out the same Mar 19, 2015 at 18:27

3 Answers 3


from msdn:

$choicevalues = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue;
$i["multiplechoicefield"] = $l.Fields["multiplechoicefield"].ParseAndSetValue($i,$choicevalues);            
$i["multiplechoicefield"] = $choicevalues;            
  • 1
    Thank you for your answer. I already have seen this piece of code and it didn't fixed my problem. Plus, as I said I don't want to create new values because they already exist.
    – ameliapond
    Feb 26, 2015 at 16:30

May have stumbled upon it, in Powershell, I have an actual array variable of values

$languages = Eng,Fr,Sp

I set my field to equal this array:

$NewItem["TestLanguages"] = $languages

Spent forever trying to do what was listed above as well, but this is working for me (and so simple too)


This worked just fine for me in SP2016 (the field already had some values selected and they were overwritten):

$valuesArr = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue; 
$valuesArr.Add("Choice Value 1");
$valuesArr.Add("Choice Value 3");
$item["SomeSPInternalFieldName"] = $valuesArr;

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.