windows - Windows RT 中的 Powershell 命令

标签 windows powershell windows-runtime

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

最佳答案

虽然您不能直接针对 Windows RT 中的 PowerShell .NET 引擎进行编程,但您可以通过套接字访问桌面。然而,这假定您有能力确保桌面套接字监听器已安装并正在运行。但是,有了它并正在运行,您可以向它发出命令并让它调用 cmd.exe(或通过 EXE 或进程内引擎调用 powershell)。在 WinRT 中最好的是允许您连接和使用 PowerShell 远程处理端点的引擎部分。考虑到这最终只是一个套接字,它可以由 Microsoft 以外的人完成,但您必须费力研究大量 WS-MAN 协议(protocol)才能弄清楚它是如何工作的。我认为通过套接字发送的简单字符串可能更容易,例如'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 Controller 的片段:

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

关于windows - Windows RT 中的 Powershell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14393497/

相关文章:

windows - VMWare中的Docker错误

powershell - 具有Powershell问题的ConvertTo-HTML

powershell - 通过 '@' 提供输入文件会出现错误 : The splatting operator '@' cannot be used to reference variables in an expression

controls - Windows 8 Metro风格横向设计

windows - Windows 上的最大进程 ID 是多少?

c - 传递给函数的指针

c# - WinRT 中的 DataContractSerializer

sockets - 在 Metro 中处理套接字创建/销毁时的泄漏

javascript - DOMContentLoaded 事件不会触发

powershell - 反序列化对象类型问题 - 特别是 Powershell 5 类和 Import-CliXml