1
你好我試圖從powershell訪問一個共享點列表。 powershell腳本從c#應用程序執行。從c#應用程序從Powershell腳本訪問sharepoint
如果我運行從C#應用程序,我得到以下異常:
異常調用 「.ctor」 與 「1」 的說法(S):「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執行應用程序沒有proble米(同一用戶上下文)
用戶WSS_ADMIN_WPG
我將Framework更改爲3.5,並將Target CPU設置爲x64,但未成功。我不認爲這是造成麻煩的框架,因爲共享點操作在powershell中? ... – HW90
嘗試添加腳本'$ farm = Get-Farm'並檢查它是否正確加載。 –
我是你的意思是$ farm = Get-SPFarm?如果我只是在ps腳本中執行它,它就可以工作。如果我從c#啓動腳本,我會遇到以下故障:術語'Get-SPFarm'不被識別爲cmdlet,函數,腳本文件或可操作程序的名稱。檢查名稱的拼寫,或者如果包含路徑,請驗證路徑是否正確,然後重試。 – HW90