我正在 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/