将凭据添加到与本地系统帐户不同的帐户

Posted

技术标签:

【中文标题】将凭据添加到与本地系统帐户不同的帐户【英文标题】:Adding Credentials to diffrent account from local system account 【发布时间】:2019-10-24 10:35:20 【问题描述】:

使用章鱼进行部署,触手作为“本地系统帐户”运行我希望触手为不同的帐户添加凭据。但是我没有运气这样做。

到目前为止,我尝试创建一个 c# 程序,它以其他用户身份启动一个新进程,并调用 cmdkey.exe

    private static void CallCmdKey(string runAsDomain, string runsAsUser, string runAsPass, string target, string user, string pass)
    

        System.Diagnostics.Process proc = new System.Diagnostics.Process();

        proc.StartInfo.Arguments = $"/generic:target /user:user /pass:pass";
        proc.StartInfo.FileName = Environment.GetEnvironmentVariable("WINDIR") + "\\system32\\cmdkey.exe";
        Console.Out.WriteLine(proc.StartInfo.Arguments);
        proc.StartInfo.Domain = runAsDomain;
        proc.StartInfo.UserName = runsAsUser;
        proc.StartInfo.LoadUserProfile = true;


        SecureString sec = new SecureString();
        runAsPass.ToCharArray().ToList().ForEach(sec.AppendChar);
        proc.StartInfo.Password = sec;
        proc.StartInfo.WorkingDirectory = ".";

        proc.StartInfo.UseShellExecute = false;

        proc.Start();
        proc.WaitForExit();
        Console.Out.WriteLine("done");
    

但由于访问被拒绝而失败。

然后我像这样尝试了 power shell 和 psexec:

$psexec = "C:\temp\psexec.exe"
Invoke-Command -ScriptBlock&$psexec -accepteula -u $WEB02AP2User -p $GISWEB02AP2Pass cmd /c cmdkey /generic:ffff /user:mufasa /pass:yoyo

但它失败了

访问被拒绝。 PsExec 无法启动 cmd: 远程脚本失败,退出代码为 5

出于安全原因,我不允许更改触手服务的帐户

我该如何解决这个问题

【问题讨论】:

Running Tentacle Under a Specific User Account 不会解决您的问题吗? @fredrik 可以,但我不允许更改帐户 尝试设置proc.CreateNoWindow = true。不允许系统服务与桌面交互。 作为一般说明:(a) 您在 PS 示例中有您的用户名和密码(希望只是示例)。 (b) 如果您以这种方式执行,用户/密码将使用任务管理器等工具在相关系统上可见,该工具可以显示正在运行的进程的命令行。这可能对您或您的情况无关紧要,但无论如何您都应该意识到这一点。您最好直接使用“Credential Manager API”(搜索“windows credential manager api c#”)。 @fredrik proc.StartInfo.CreateNoWindow = true;遗憾的是没有完成这项工作。 【参考方案1】:

我无法找到此问题的解决方案。唯一的解决方法是让 octopusservice 作为特定用户帐户运行

【讨论】:

以上是关于将凭据添加到与本地系统帐户不同的帐户的主要内容,如果未能解决你的问题,请参考以下文章

如何使用本地计算机帐户作为 PSExec 的凭据

如何为 API 凭据设置/取消设置多个帐户

如何使用不同的帐户将存储容器添加到 Azure?

清除 Visual Studio 2017 中存储的 TFS 凭据

需要让用户使用多个凭据登录,与使用 Gmail 服务中的其他帐户功能登录相同 - Laravel

安装sqlserver2008r2 服务器配置,服务帐户配置出错,提示Sql server服务指定的凭据无效