Windows RT中的Powershell命令

时间:2013-01-18 06:25:25

标签: windows powershell windows-runtime

我正在Windows RT中开发一个应用程序。我确实需要在Windows RT(C#)中运行/调用PowerShell或CMD命令。请帮我弄清楚。    提前致谢

1 个答案:

答案 0 :(得分:1)

虽然您无法直接针对Windows RT中的PowerShell .NET引擎进行编程,但您可以通过套接字访问桌面。但是,这假设您能够确保安装了桌面套接字侦听器。运行。然而,随着这一点,&运行你可以向它发出命令,让它调用cmd.exe(或通过EXE或进程内引擎的powershell)。在WinRT中有什么好处的是引擎件,可以让你连接到&使用PowerShell远程端点。考虑到最终只是一个套接字,可以由微软以外的人完成,但是你必须通过很多WS-MAN协议来弄清楚它是如何工作的。我认为通过套接字发送的简单字符串可能更容易,例如'powershell -command "& { Get-Process }"''cmd /c dir c:\'。 : - )

以下是一些代码片段作为概念证明:

WinRT代码段:

private async void _button_OnClick(object sender, RoutedEventArgs e)
{
    string content;
    try
    {
        var client = new HttpClient();
        client.DefaultRequestHeaders.Add("user-agent", 
            "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");
        var response = await client.GetAsync("http://localhost:54649/");
        if (response.StatusCode == HttpStatusCode.OK)
        {
            content = await response.Content.ReadAsStringAsync();
        }
        else
        {
            content = response.StatusCode.ToString();
        }

    }
    catch (Exception ex)
    {
        content = ex.Message;
    }

    await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        _textBlock.Text = content;
    });
}

在桌面方面,这是一个脑死MVC控制器的片段:

public class HomeController : Controller
{
    //
    // GET: /Home/
    public string Index()
    {
        return "Hello World. The time is " + DateTime.Now;
    }
}