任意のCPUをターゲットとして3.5フレームワークでC#Webアプリケーションを実行しています。My Machine Config:64ビットOSを搭載したWindows 7 Visual Studio 2010 SharePoint 2010
WebアプリケーションからSharePointPowerShellスクリプトを呼び出そうとしています。しかし失敗しました。以下は私のコードです。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
using System.IO;
using System.Collections.ObjectModel;
using System.Text;
namespace WebApplication3
{
public partial class test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
try
{
string scriptText = ReadPowerShellScript("D:\\SiteHierarchy_project\\scriptSC.ps1");
RunspaceConfiguration rsConfig = RunspaceConfiguration.Create();
PSSnapInException snapInException = null;
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
PSSnapInInfo info = rsConfig.AddPSSnapIn("Microsoft.SharePoint.Powershell", out snapInException);
Pipeline pipeline = runspace.CreatePipeline();
string scriptSnapIn = "Get-PsSnapin -Registered";
pipeline.Commands.AddScript(scriptSnapIn);
Runspace RunSpace = RunspaceFactory.CreateRunspace(rsConfig);
RunSpace.Open();
Pipeline pipeLine = RunSpace.CreatePipeline();
Command scriptCommand = new Command(scriptText);
pipeLine.Commands.AddScript(scriptText);
// execute the script
// Collection<PSObject> commandResults = pipeLine.Invoke();
pipeLine.Invoke();
// close the runspace
RunSpace.Close();
}
catch (Exception ex)
{ }
}
public string ReadPowerShellScript(string Script)
{
//Read script
//StreamReader objReader = new StreamReader(Server.MapPath(Script));
StreamReader objReader = new StreamReader(Script);
string strContent = objReader.ReadToEnd();
objReader.Close();
return strContent;
}
}
}
以下のエラーが発生します。
「WindowsPowerShellスナップイン「Microsoft.SharePoint.Powershell」がこのマシンにインストールされていません。」
私が間違っているところを教えてください
ありがとう、Sandeep