[英]Accessing sharepoint from Powershell-script from c# application
您好,我正在嘗試從Powershell訪問共享點列表。 Powershell腳本是從ac#應用程序執行的。
如果我從c#應用程序運行,則會收到以下異常:
異常調用帶有“ 1”參數的“ .ctor”:“找不到位於
http://pc/websites/Test4/
的Web應用程序。請驗證您是否正確鍵入了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();
電源外殼
$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
成員
SharePoint不適用於.Net 4.0。 PowerShell與.Net 3.5一起運行,因此它可與PS一起使用。
您應該切換回.Net 3.5 SP1。
另外,請確保將項目設置為不與X86編譯設置一起運行。
將其設置為AnyCPU或x64。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.