我有一个非常奇怪的问题:
我有一个Azure Cloud Service,其中包含一个辅助角色。在这个工作者角色中,我想以管理员的身份启动一个命令行,其中包含一些参数,我将这些参数存储在'命令中。变量。它可能是e.x. ipconfig也是。
using (var p = new Process())
{
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.CreateNoWindow = false;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.Arguments = "cmd /K " + command;
p.Start();
}
这种情况一直运行到今年年初,但现在我必须为应用程序实现一些新功能,所以我克隆了存储库并打开了解决方案。
我最近将Azure SDK升级到2.6,因此我也更新了我的Cloud Service。一切都在本地工作正常,所以我将它部署到登台环境。
但命令行客户端并没有像我预期的那样打开。我无法看到cmd的任务栏按钮/图标,无法在任务管理器的进程窗口中看到它。但是,它出现在细节窗口。发生了什么,为什么我看不到cmd窗口及其内部的结果?
我知道Guest OS version也会更新,这可能是个问题吗?我想使用最新的Azure SDK,当然还有最新的Guest OS。
我认为它与一些UAC权限相关,但我不确定。那么为什么我现在看不到rdp上打开的cmd窗口呢?哪个可能会改变工人角色的架构?
修改
最新版本的Windows Server 2012 R2是4.19。我可以在Family 4中使用的最旧版本是4.17版本,但使用旧版本并不能解决我的问题。
当一个给定的消息从队列传递到工作人员时,我想让Pageant在启动时自动加载密钥:http://the.earth.li/~sgtatham/putty/0.60/htmldoc/Chapter9.html#pageant-cmdline
是的,我之前已经问过这个问题并且在你的帮助下我可以解决问题,但是这个解决方案现在还没有工作:Add private key file to Pageant from Azure local storage resource
我认为用Startup Scripts可以解决这个问题吗?