gpt4 book ai didi

batch-file - 如何从 Windows 命令提示符以特定用户身份调用 PowerShell 脚本?

转载 作者:行者123 更新时间:2023-12-03 13:00:59 25 4
gpt4 key购买 nike

当我以名为“abc”的用户身份登录到计算机时运行 PowerShell 脚本时,该脚本以用户“abc”的身份运行。

我在 cmd 中运行的命令是:

powershell pshell.ps1

如何使用特定域用户而不是当前登录用户运行 PowerShell 脚本?

我的目的是通过 Windows 命令行运行 PowerShell 脚本。

最佳答案

有几种方法可以从脚本中以其他用户身份运行程序或脚本:

内置命令行应用程序 RUNAS
Windows 命令行 RUNAS如果您能够指定凭据, command 看起来是您问题的一个很好的解决方案。

RUNAS  /user:user@domain.microsoft.com "powershell pshell.ps1"

但是,正如您所说,您需要从 CONTROL-M 运行此任务,因此这是不可能的。然后也不可能像我在评论和另一个答案中建议的那样从任务计划程序运行任务。

因此,我的下一个建议是使用 PowerShell 脚本来执行此操作:

PowerShell 脚本 Invoke-Command
首先,您需要启用 Win-RM 以允许它工作。为此,请在提升的(即以管理员身份运行)命令提示符中键入以下内容:
winrm /quickconfig

接下来,使用所需的存储凭据编写脚本。请注意,这将存储为纯文本,因此如果您不愿意这样做,则需要查看使用安全凭证文件。
$username = "DOMAIN\User"
$password = "Password"
$secstr = New-Object -TypeName System.Security.SecureString
$password.ToCharArray() | ForEach-Object {$secstr.AppendChar($_)}
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $secstr
Invoke-Command -FilePath "C:\Script\To\Execute.ps1" -Credential $cred -Computer localhost

自然需要更换 C:\Script\To\Execute.ps1使用要运行的 PowerShell 脚本的文件路径,并替换 DOMAIN\UserPassword分别与您要运行的用户及其密码。

该脚本现在将以上面指定的用户身份运行。

但是,您可能不愿意或无法使用 PowerShell 脚本,因此您的最后一个解决方案依赖于第三方应用程序,例如:

SysInternals PsExec

PsExec是一个完全免费的工具,可在 TechNet 上下载,专为在远程计算机上运行命令、应用程序等而设计。有效 很好不管你信不信,在本地机器上,允许您指定希望应用程序运行的特定用户(和密码!)。
  • Download and extract the application
  • 将应用程序放在您的 PATH 中的某个位置属性( SET PATH=C:\PsExec;%PATH% 有效,如果您将其安装到 C:\PsExec)
  • 运行命令 psexec -u DOMAIN\user -p password script.ps1进行适当的更改。
  • 关于batch-file - 如何从 Windows 命令提示符以特定用户身份调用 PowerShell 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25247550/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com