我正在尝试使用Team City使用puppet for windows配置Windows 2008 R2计算机。有一个TC代理应该远程连接并调用目标服务器内的puppet客户端。我们尝试使用Powershell,但我们在尝试以管理员身份执行puppet时遇到了问题,因此我们创建了一个C#代码实用程序来重定向输出,但它似乎不适用于TC,但它在本地工作。
namespace RunAsAdmin
{
class Program
{
static void Main(string[] args)
{
Process proc = new Process();
Process p = new Process();
p.StartInfo.FileName = @"psexec.exe";
p.StartInfo.Arguments = "/accepteula \\\\" + args[0] + " -s \"C:\\Program Files (x86)\\Puppet Labs\\Puppet\\bin\\puppet.bat\" agent --test --no-daemonize --verbose --logdest console ";
p.StartInfo.Verb = "runas";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
p.Start();
while (p.HasExited == false) {
Console.WriteLine(p.StandardOutput.ReadLine());
}
Console.ReadLine();
p.WaitForExit();
p.Close();
}
}
}
代码在本地完成并且与TC一起工作,并且作为管理员执行没有问题,但我们无法在TC中看到构建输出。