您好我正在尝试从powershell访问sharepoint列表。 powershell脚本是从c#应用程序执行的。
如果我运行c#应用程序,我会得到以下异常:
使用“1”参数调用“.ctor”的异常:“Web应用程序 无法找到
http://pc/websites/Test4/
。验证你有 正确键入URL。如果URL应该是现有的 内容,系统管理员可能需要添加新的请求URL 映射到预期的应用程序。“
我的代码:
C#
string cmdArg = "C:\\Scripts\\GroupChangeGroup.ps1 1";
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.ApartmentState = System.Threading.ApartmentState.STA;
runspace.ThreadOptions = PSThreadOptions.UseCurrentThread;
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
Command newcom = new Command("Add-PSSnapin");
newcom.Parameters.Add("Name", "microsoft.exchange.management.powershell.e2010");
pipeline.Commands.Add(newcom);
Command newcom2 = new Command("Add-PSSnapin");
newcom2.Parameters.Add("Name", "Microsoft.SharePOint.POwershell");
pipeline.Commands.Add(newcom2);
pipeline.Commands.AddScript(cmdArg);
pipeline.Commands[0].MergeMyResults(PipelineResultTypes.Error, PipelineResultTypes.Output);
Collection<PSObject> results = pipeline.Invoke();
var error = pipeline.Error.ReadToEnd();
runspace.Close();
Powershell的
$site = New-Object Microsoft.SharePoint.SPSite("http://pc/websites/Test4/")
$web = $site.OpenWeb()
$list = $web.Lists["GroupsList - ListInstance1"]
$listitem = $list.Items.GetItemByID(3)
如果我从PS执行应用程序没有问题。 (相同的用户上下文)
用户是WSS_ADMIN_WPG
答案 0 :(得分:1)
SharePoint不适用于.Net 4.0。 PowerShell运行.Net 3.5,这就是它与PS一起使用的原因。
您应该切换回.Net 3.5 SP1。
此外,请确保将项目设置为不使用X86编译设置运行。
将其设置为AnyCPU或x64。