【问题标题】:Add Windows Credentials using PowerShell & cmdkey使用 PowerShell 和 cmdkey 添加 Windows 凭据
【发布时间】:2021-04-28 09:49:27
【问题描述】:

我正在尝试使用来自 ui 的凭据,提示使用 cmdkey 添加 Windows 凭据

$sessionCredential = $host.ui.PromptForCredential("Need credentials", "Please enter your user name and password.", "", "Server Crdentials")
$ps = ConvertFrom-SecureString -SecureString $sessionCredential.password
cmdkey.exe /add:server1 /user:$($sessionCredential.UserName) /pass:$($ps)

凭据已正确添加,但密码未正确添加

请指教

【问题讨论】:

  • 您确定密码不正确吗?凭据管理器 GUI 从不在那里显示正确的位数,因此它可能看起来好像这是错误的..
  • 是的,我在凭据 UI 上手动编辑密码以检查密码是否错误

标签: windows powershell command-line-tool


【解决方案1】:

使用CredentialManager powershell 模块。它将密码保存在cmdkey的同一位置,但可以直接取[PSCredential]对象,无需转换为文本。

Import-Module CredentialManager

# Get the credential from the user with a windows credentials prompt:
$SessionCredential = Get-Credential -Message 'Please enter your server credentials'

# Save the credential object directly without unwrapping it:
New-StoredCredential -Credentials $SessionCredential -Target ServerCredentials -Persist Enterprise `
  -Comment "Server Credentials for $($SessionCredential.UserName)" > $null

# Open the credential later
$SavedCred = Get-StoredCredential -Target ServerCredentials

# Delete if needed
Remove-StoredCredential -Target ServerCredentials

cmdkey /pass:$($ps)由于powershell乱码密码字符容易出错。

【讨论】:

  • 我无法将模块添加到运行此脚本的客户端计算机,抱歉
【解决方案2】:

显然问题是 ConvertFrom-SecureString 正在返回 加密标准字符串 ConvertFrom-SecureString

获取纯文本的选项在 PowerShell 5.1 上不可用 找到正确的转换here

我知道它不安全,它在安全客户端中使用

查看下面的固定代码

$sessionCredential = $host.ui.PromptForCredential("Need credentials", "Please enter your user name and password.", "", "Server Crdentials")
$mpass = [System.Net.NetworkCredential]::new("",$sessionCredential.password).Password
cmdkey.exe /add:server1 /user:$($sessionCredential.UserName) /pass:$($mpass)

【讨论】:

    【解决方案3】:

    @Cpt.Whale 的回答就像一个魅力。唯一需要注意的是在使用之前需要复制/分发 CredentialManager 模块。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    • 2019-05-22
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    相关资源
    最近更新 更多