繁体   English   中英

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

[英]Run specific commands in PowerShell under different credentials?

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

这是一个简洁的示例:

# PowerShell code...
query session /server:"SERVERNAME" #NEEDS ELEVATED PERMISSIONS
# More PowerShell code

query命令需要在提升的权限下运行。

我尝试了以下方法:

Invoke-Command -ScriptBlock {
    query session /server:"SERVERNAME"
} -Credential get-credential

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

我知道我可以通过让用户在其提升的帐户凭据下启动PowerShell来解决此问题,但是我只想在脚本运行时提示输入凭据,并在其管理员帐户凭据下运行该命令即可。 在普通凭据下,脚本所做的所有其他操作都很好。

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

  1. Sysinternals在常规命令行中
  2. 通过PSexec进程,您可以传递IP地址,用户名和密码
  3. 摆弄到你很开心的地步
  4. 创建一个批处理文件,然后在所需的环境中部署,然后从PowerShell运行
  5. 创建方法时,如果您希望动态调用并让其使用其他用户名/密码/ IP地址登录,请让其使用参数
  6. 如果执行程序将始终使用“ loginA”和“ pwA”在“ computerA”上运行,那么显然不需要参数化
  7. * Sysinternals不能用于彻底破解终端。 远程执行程序的用户必须首先安装与接受远程可执行文件的系统相同的Sysinternals工具,该工具必须打开一次并获得基于GUI的允许才能在该系统上运行,并且必须得到物理解决。

注意:任何远程PSexec的使用凭据都将以与在该系统上授予的用户名/密码相同的权限级别执行。

这里是链接:( PsExec v2.2 )。 尽管我建议上一两个级别并下载整个工具箱。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM