以编程方式创建具有多种内容类型的View

时间:2011-04-08 21:04:04

标签: sharepoint powershell sharepoint-2010

我有一个包含1种内容类型的自定义列表。该内容类型具有与其无关的父内容类型。

类型1有3个字段:

A场, B场, 字段C

类型2有2个字段并继承类型1:

D场, 领域E

我是以编程方式创建一些视图。当我通过SP UI执行此操作时,它工作得很好,而不是投诉,但是当我在PowerShell脚本中执行此操作时,就像这样:

$web = Get-SPWeb [Site URL]
$list = $web.Lists[ListName]

$list.Views.Add($viewName, $includeFieldsCollection, $query, 100, $true, $false)
$web.Dispose()

其中$ includeFieldsCollection是所有字段A-E。

我收到错误:

Exception calling "Add" with "6" argument(s): "Column 'Field A' does not exist. It may have been deleted by another user."

我如何在PowerShell中执行此操作?它不希望看到它从更高范围获得的列。如果我看一下SP用户界面,他们会很好地显示出来。

谢谢。

编辑:我必须纠正这个问题。

2 个答案:

答案 0 :(得分:0)

您确定要传递给powershell函数的列名是内部名称吗?

http://msdn.microsoft.com/en-us/library/ms480493.aspx

通常情况下,空格会替换为_x0200_

Field A would be Field_x0200_A

答案 1 :(得分:0)

我会确保我正在使用的列表实际上使用了正确的内容类型和字段。您可以使用以下方式检查它们:

$list.fields | format-table

$list.contenttypes | format-table