You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何以已登录用户身份运行指定PowerShell脚本(无需凭据提示)

如何让PowerShell以user1身份运行特定脚本且无需重复输入凭据?

当然可以实现!根据你的场景——已以user1身份登录服务器,但默认PowerShell运行在user2上下文,我整理了两种实用的方案,都能避免重复输入凭据:

方案1:利用当前登录会话的凭据缓存直接启动脚本

既然你已经以user1身份登录到服务器(比如通过远程桌面),Windows通常会缓存你的登录凭据。你可以直接启动一个全新的PowerShell实例,它会自动继承当前登录会话的user1身份,完全不需要输入密码:

Start-Process powershell.exe -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File C:\Path\To\Your\TargetScript.ps1"

如果默认启动的PowerShell还是强制用user2(比如服务器有特殊组策略配置),那你可以明确指定user1的凭据——因为凭据已经缓存,Get-Credential会自动填充用户名,甚至不需要输入密码:

# 获取当前登录的user1凭据(系统会自动读取缓存,无需手动输入)
$user1Cred = Get-Credential -UserName $env:USERNAME -Message "Confirm user1 credentials (auto-filled)"
# 用该凭据启动目标脚本
Start-Process powershell.exe -ArgumentList "-File C:\Path\To\Your\TargetScript.ps1" -Credential $user1Cred

方案2:将user1凭据加密存储,后续随时调用

如果需要长期在user2的PowerShell会话中以user1身份运行脚本,最省心的方式是把user1的凭据加密存储到本地,之后每次运行脚本直接调用即可:

第一步:存储加密凭据(仅需执行一次)

在user1的PowerShell会话中运行以下命令,把凭据加密保存到安全路径(注意:这个加密文件只有user1能解密,保证安全性):

# 输入user1的凭据(仅这一次需要手动输入)
$user1Cred = Get-Credential -UserName "DOMAIN\user1" -Message "Enter user1 password to store"
# 加密存储到指定路径,比如C:\Secure\Credentials\User1ServerCred.xml
$user1Cred | Export-Clixml -Path "C:\Secure\Credentials\User1ServerCred.xml" -Force

第二步:调用存储的凭据运行脚本

之后不管你在哪个会话(包括user2的PowerShell),都可以直接导入凭据并启动脚本,全程无需输入密码:

# 导入加密存储的user1凭据
$user1Cred = Import-Clixml -Path "C:\Secure\Credentials\User1ServerCred.xml"
# 以user1身份启动目标脚本
Start-Process powershell.exe -ArgumentList "-File C:\Path\To\Your\TargetScript.ps1" -Credential $user1Cred

额外提示(长期解决方案)

如果这个需求是常态化的,你可以联系服务器管理员,修改组策略或PowerShell的默认启动配置,让你(user1)登录时默认启动的PowerShell进程直接以user1身份运行,从根源上解决问题。

内容的提问来源于stack exchange,提问作者Peta Eduard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:00:53