PowerShell的安全密码在任何机器上运行(Powershell Secure password

2019-08-17 21:57发布

我需要写,我可以在任何机器上运行连接到服务器的PowerShell脚本。 不使用机器或用户即安全,加密字符串将任何机器上的域或安全密码的工作可以在只能上创建它的计算机上进行解密。 如果是后者有没有去加密密码,所以我可以在任何机器上运行脚本

Answer 1:

在其他机器上工作,你需要创建一个与的ConvertTo-SecureString的和ConvertFrom-SecureString的cmdlet的使用钥匙。

PS C:\> $Key = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43)
PS C:\>$StandardString = ConvertFrom-SecureString  $SecureString -Key $Key

http://www.leeholmes.com/blog/2006/06/01/securestrings-in-powershell/

默认情况下,SecureString的cmlets使用Windows的数据保护API时,他们转换您的SecureString的,并从一个纯文本表示。 加密密钥是基于您的Windows登录凭据,以便只有你才能解密你加密的数据。 如果你想导出数据到另一个系统或单独的用户帐户上工作,你可以使用参数集,让你提供一个明确的关键。



Answer 2:

这是一个很大的问题。 下面是如何保存的凭证链接 。 我得到这个成立了,我要去尝试我的另一台计算机上的证书串登录使用其他帐户。 我会让你知道我的结果。

更新

我不得不说,它并没有为我工作。 我去其他人的机器登录为他们。 我有我的凭据成立了一个名为脚本Get-MyCred

$username = 'Domain\MyName'
$password = cat '\\server\share\securestring.txt' | convertto-securestring
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $password

return $cred

当我运行它得到我的密码行,我得到了其他人的机器上的错误。

ConvertTo-SecureString : Key not valid for use in specified state.
At line:1 char:56
+ Get-Content O:\BCKUP\MyScripts\Cred\securestring.txt | ConvertTo-SecureString
+                                                        ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidArgument: (:) [ConvertTo-SecureString], CryptographicException
+ FullyQualifiedErrorId : ImportSecureString_InvalidArgument_CryptographicError,Microsoft.PowerShell.Commands.ConvertToSecureStringCommand

当我登录到其他电脑与我的凭据我甚至得到错误。



文章来源: Powershell Secure password to work on any machine