3

我正在尝试使用 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 中看不到构建输出。

4

0 回答 0