所以基本上我想要写一个PowerShell脚本将出口价值为Windows服务器备份备份日志的最后1天,格式化信息成一个可爱的小桌子,然后SMTP发送它到客户本地Exchange外部的外部位置。我有一个可用于此目的的智能主机,以及凭证等。我如何避免保存用户名和密码在PowerShell脚本
但我不想以纯文本形式在Powershell中存储UN和密码,或让脚本以纯文本形式运行凭据。
有没有办法解决这个问题?
干杯!
所以基本上我想要写一个PowerShell脚本将出口价值为Windows服务器备份备份日志的最后1天,格式化信息成一个可爱的小桌子,然后SMTP发送它到客户本地Exchange外部的外部位置。我有一个可用于此目的的智能主机,以及凭证等。我如何避免保存用户名和密码在PowerShell脚本
但我不想以纯文本形式在Powershell中存储UN和密码,或让脚本以纯文本形式运行凭据。
有没有办法解决这个问题?
干杯!
我设法通过采取密码作为安全字符串,并将其保存,作为一个“加密的标准字符串”到一个文件名为类似避开类似的问题“帐户。用户 .pwd”,其中帐户是与密码关联的帐户的名称,并且用户是生成安全字符串的用户(只有该用户才能够解密该文件)。
这非常类似于@Keith使用,如果你按照上面的问题本身在他的评论的链接方式。下面的方法更容易遵循,因为它不直接与[System.Runtime.InteropServices.Marshal]
类相关。
从文件的内容转换的密码后面是更多地参与,但在这里是通过工艺步骤的例子:
# Create credential object by prompting user for data
$Credential = Get-Credential
# Encrypt the password to disk
$Credential.Password | ConvertFrom-SecureString | Out-File Account.User.pwd
# Now to read it back again...
$SecureString = Get-Content Account.User.pwd | ConvertTo-SecureString
# Create credential object programmatically
$NewCred = New-Object System.Management.Automation.PSCredential("Account",$SecureString)
# Reveal the password!
$NewCred.GetNetworkCredential().Password
思考这个办法:
的更多信息:
你打算如何运行它?手动,作为计划任务?有了手册,你可以要求输入(并使用'-assecurestring'来“隐藏”密码输入)。使用任务计划程序,您可以分配凭据来运行作业/任务,因此只需在配置时输入您的帐户信息即可。考虑创建一个非个人帐户,对这样的脚本拥有有限权限。 –
请参阅此SO问题的答案:http://stackoverflow.com/questions/13842611/how-to-pass-credentials-to-rename-command/13844113#13844113 –