こんにちは、powershell から共有ポイント リストにアクセスしようとしています。powershell スクリプトは、ac# アプリケーションから実行されます。
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();
パワーシェル
$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