Я использую поле поиска ilovesharepoint с помощью средства выбора, которое включено codeplex в стандартной среде Moss 2007. Я запустил проект установки, а затем в Powershell выполнил соответствующую команду, чтобы изменить поле «Поиск» на «Поиск с помощью средства выбора» (ConvertLookupToLookupFieldWithPicker.ps1), как показано ниже.
# http://www.iLoveSharePoint.com
# by Christian Glessner
param([string]$webUrl=$(throw 'Parameter -webUrl is missing!'),
[string]$listName=$(throw 'Parameter -listName is missing!'),
[string]$fieldTitle=$(throw 'Parameter -fieldTitle is missing!'))
$ErrorActionPreference = "Stop";
$env:12HivesDir = "$env:CommonProgramFiles\Microsoft Shared\web server extensions\12\";
$null = [System.Reflection.Assembly]::LoadFrom("$env:12HivesDir\ISAPI\Microsoft.SharePoint.dll");
$site = New-Object -TypeName "Microsoft.SharePoint.SPSite" -ArgumentList $webUrl;
$web = $site.OpenWeb();
$list = $web.Lists[$listName];
$field = $list.Fields[$fieldTitle];
$schema = [xml]$field.SchemaXml;
$schema.Field.Type = "LookupFieldWithPicker"
if($schema.SelectSingleNode("//@SearchFields") -eq $null)
{
$searchFields = $schema.CreateAttribute("SearchFields");
$searchFields.PSBase.Value = [Microsoft.SharePoint.SPBuiltInFieldId]::ID.ToString();
$schema.Field.PSBase.Attributes.Append($searchFields);
}
$field.SchemaXml = $schema.PSBase.OuterXml;
Write-Output "Done."
Я постоянно вижу эту ошибку
1d22ea11-1e32-424e-89ab-9fedbadb6ce1 Параметр исключения «SchemaXml»: «Изменение неподдерживаемого типа поля. Поле не может быть изменено на новый тип. Проверьте новый тип и повторите попытку». По адресу C: \ Documents and Settings \ xgrmmart \ Desktop \ icgpm \ deploy \ ConvertLookupToLookupFieldWithPicker.ps1: 29 символов: 8 + $ field.S ‹*** chemaXml = $ schema.PSBase.OuterXml;
Понятия не имею, почему он не работает .... отлично работал в тестовой среде. Я не эксперт по PowerShell, и любая помощь приветствуется. Спасибо.