在Start-Process cmdlet中传递凭据遇「用户名或密码错误」求助
问题排查:Start-Process 凭据验证失败(用户名/密码错误)
以下是针对该问题的排查和解决步骤:
1. 修正本地管理员账户格式
本地管理员账户不能使用admin@domain.com这种域账户格式,系统会无法识别。正确格式应为:
- 相对格式:
.\本地管理员用户名 - 绝对格式:
$env:COMPUTERNAME\本地管理员用户名
示例修正代码:
$User = ".\Administrator" # 替换为你的本地管理员账户名
2. 确保加密凭据的生成环境匹配
AES加密的密钥与生成时的当前用户、当前机器绑定,跨环境生成的密钥无法解密密码。请重新生成凭据文件:
# 创建存储目录(如果不存在) $credPath = "C:\temp\Cred" if (-not (Test-Path $credPath)) { New-Item -Path $credPath -ItemType Directory | Out-Null } # 生成32位AES密钥 $Key = New-Object Byte[] 32 [Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($Key) $Key | Out-File "$credPath\AES.key" # 生成加密的密码文件(输入本地管理员密码) Read-Host "输入本地管理员密码" -AsSecureString | ConvertFrom-SecureString -Key $Key | Out-File "$credPath\Password.txt"
3. 检查文件读取权限
确认当前登录用户对C:\temp\Cred目录下的Password.txt和AES.key拥有读取权限,否则无法正确加载密钥和加密密码,导致凭据构建失败。
4. 先验证凭据有效性
在启动安装程序前,先测试凭据是否可用:
Invoke-Command -ComputerName localhost -Credential $MyCredential -ScriptBlock { whoami }
- 如果命令返回管理员用户名,说明凭据有效;
- 如果仍报错,说明凭据生成存在问题,重新执行步骤2。
5. 添加安装程序的静默参数(可选)
部分安装程序需要指定静默安装参数才能在后台执行,以7-Zip为例,添加/S参数:
Start-Process -FilePath C:\Temp\7z2301-x64.exe -ArgumentList "/S" -Credential $MyCredential -Wait
内容的提问来源于stack exchange,提问作者Arpit Kandhari
相关产品推荐
相关产品推荐

