加密密码或解决方法

时间:2018-02-22 09:30:50

标签: powershell

我有点懒惰,所以我创建了一个脚本,为我打开了很多应用程序。在使用管理员凭据打开ISE时工作正常,也会打开具有管理员信誉的应用程序,但是其中一些需要不同的凭据。

是否有可能,每次登录并打开密码时,都要记住输入密码? (我知道变量只存储到ps打开之前)

事情是 - 我无法在配置文件/文本文件或脚本中存储可见密码,因为这是许多人使用的跳转服务器。是否有可能输入一次密码,让PS加密它,每次我打开PS,它会解密并使用?或者围绕这个可行的解决方法?

使用代码进行编辑:

这是我想改变的唯一部分

$currentPW = "some password"
$credentials = New-Object System.Management.Automation.PSCredential ("domain\username",$CurrentPW)
start "c:\application.exe" -credential $credentials

它有点工作,但每次我登录设备时都需要输入密码,所以我可以选择以下选项:

$currentPW = read-host "Provide your password"
$credentials = New-Object System.Management.Automation.PSCredential ("domain\username",$CurrentPW)

start "c:\application.exe" -credential $credentials

但这需要我每次登录系统时输入密码并打开PS,因为它在重启后不记得变量。 那么......是否有可能使这项工作成功?^^

2 个答案:

答案 0 :(得分:0)

您可以使用ConvertTo-SecureString使用用户帐户密钥加密密码,然后将此安全字符串保存到文件中以便稍后加载。

这假设您是唯一可以访问登录帐户的人(不是具有共享凭据的帐户),因为任何可以以帐户身份登录的人都可以解密该文件。

$username = "domain\username"
$passwordFile = "C:\folder\EncryptedPassword.txt"

#if password file exists: populate $securePwd from file contents
If (Test-Path $passwordFile) {
    $pwdTxt = Get-Content $passwordFile
    $securePwd = $pwdTxt | ConvertTo-SecureString
}
#if no file: prompt for password, create file and populate $securePwd
Else {
    $password = Read-Host "Provide your password"
    $securePwd = $password | ConvertTo-SecureString -AsPlainText -Force 
    $securePwd | ConvertFrom-SecureString | Set-Content $passwordFile
}

$credentials = New-Object System.Management.Automation.PSCredential -ArgumentList $username, $securePwd

Start-Process "c:\application.exe" -Credential $credentials

答案 1 :(得分:0)

如果您有PowerShell 3.0或更高版本,您还可以将Get-CredentialExport-CliXml合并,将PSCredential对象导出为XML文件。例如:

Get-Credential | Export-CliXml "C:\XML Files\credential.xml"

然后,您可以使用Import-CliXml导入凭据。例如:

$credential = Import-CliXml "C:\Xml Files\credential.xml"

请注意,密码是使用DPAPI加密的,因此您只能使用Import-CliXml使用Export-CliXml导出凭据的同一用户帐户在同一台​​计算机上使用@media screen and (min-width: 320px) and (max-width: 767px) and (orientation: landscape) { html { transform: rotate(-90deg); transform-origin: left top; width: 100vh; overflow-x: hidden; position: absolute; top: 100%; left: 0; } } 导入凭据。