在PowerShell中以不同的凭据运行特定命令?

时间:2015-09-02 16:19:50

标签: powershell cmd credentials

我正在尝试在PowerShell脚本中运行特定的命令行功能。 catch是命令需要提升权限才能执行。

这是一个简洁的例子:

query

Invoke-Command -ScriptBlock { query session /server:"SERVERNAME" } -Credential get-credential 命令需要在提升的权限下运行。

我尝试了以下内容:

-ComputerName

但这不起作用,因为在使用-Credential参数时需要存在std::to_string参数。我希望能够在不使用远程服务器的情况下运行它。

我知道我可以通过让用户在提升的帐户凭据下启动PowerShell来解决这个问题,但我宁愿在脚本运行时提示输入凭据,只需在管理员帐户凭据下运行该单个命令。在正常凭据下,脚本所做的其他所有操作都很好。

1 个答案:

答案 0 :(得分:0)

PowerShell有一些加载项,但实际上我发现最简单的方法是:

  1. 常规命令行中的Sysinternals
  2. 使用PSexec进程,您可以传递IP地址,用户界面和密码
  3. 摆弄它,让你感到高兴
  4. 创建批处理文件,然后从PowerShell运行,如果这是所需的环境部署
  5. 创建方法时,如果您希望调出是动态的,并使用不同的用户名/密码/ IP地址登录,则让它使用参数
  6. 如果exec将始终在" computerA"使用" loginA"和" pwA"那么显然没有必要参数化
  7. * Sysinternals不能用于彻底破解终端。远程执行程序的用户必须首先将相同的Sysinternals工具安装到要接受远程可执行文件的系统上,该工具必须打开一次,并且必须先对基于GUI的批准才允许在所述系统上运行。
  8. 注意:任何使用凭据的远程PSexec都将以与在该系统上授予提供的用户名/密码相同的权限级别执行。

    这是链接:(PsExec v2.2)。虽然我建议升级或下载整个工具箱。