我正在尝试编写一个PowerShell脚本,以便在给定网站集的所有子网站上启用一项功能,一切都在顺利进行,直到我尝试启用实际功能。我成功地在任何地方使用SharePoint API,但是当我到达这个时:
$activatedFeature = $web.Features.Add($Feature.Id, $true)
我得到一个荒谬的例外,我似乎无法弄明白。
System.Management.Automation.MethodException: Cannot find an overload for "Add" and the argument count: "2".
at System.Management.Automation.Adapter.FindBestMethod(String methodName, MethodInformation[] methods, Object[] arguments, Boolean& expandParamsOnBest)
at System.Management.Automation.DotNetAdapter.MethodInvokeDotNet(String methodName, Object target, MethodInformation[] methodInformation, Object[] arguments)
at System.Management.Automation.Adapter.BaseMethodInvoke(PSMethod method, Object[] arguments)
at System.Management.Automation.ParserOps.CallMethod(Token token, Object target, String methodName, Object[] paramArray, Boolean callStatic, Object valueToSet)
at System.Management.Automation.MethodCallNode.InvokeMethod(Object target, Object[] arguments, Object value)
at System.Management.Automation.MethodCallNode.Execute(Array input, Pipe outputPipe, ExecutionContext context)
at System.Management.Automation.AssignmentStatementNode.Execute(Array input, Pipe outputPipe, ExecutionContext context)
at System.Management.Automation.StatementListNode.ExecuteStatement(ParseTreeNode statement, Array input, Pipe outputPipe, ArrayList& resultList, ExecutionContext context)
我不能说这个例外对我来说很有意义,我也无法从这里找到任何有用的资源或搜索关键术语。
之前有没有人经历过这样的事情?如果是这样,我该如何纠正呢。
答案 0 :(得分:0)
我编写了一个函数来返回正在激活的功能的SPFeatureDefinition,显然它返回了两个项目的数组。数组中的第二项是SPFeatureDefinition,我不知道这一点。所以,在调用该函数之后我做了这个:
$Feature = $Feature[1]
在此之后,一切正常。