簡體   English   中英

從C#應用程序從Powershell腳本訪問共享點

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM