将用户名和密码添加到Powershell脚本

时间:2018-03-10 02:11:45

标签: powershell passwords credentials username

我正在尝试创建一个powershell脚本,以便让我的孩子在需要时从他们的Windows计算机重启我的Raspberry Pi。我已经测试了所有内容并且已经开始工作,但唯一的问题是它提示输入用户名和密码。我意识到这样做的路线是:

New-SSHSession -ComputerName "myPi" -Credential (Get-Credential)

我已经做了一些搜索,但我似乎无法弄清楚是否可以替换“(Get-Credential)”部分以自动输入用户名/密码。

是的,我知道安全风险。他们可以对Windows机器造成的伤害比他们在Pi上做的更多,并且Pi上的设置很容易恢复,所以不用担心。

3 个答案:

答案 0 :(得分:3)

这样的事情应该有效:

@PreDestroy

答案 1 :(得分:2)

您还可以调用其中加密了密码的文件。请注意,这只能通过在其生成的计算机上生成的帐户进行解密。

$pass = "Password"
$Username = "Username"
$outfile = "c:\filelocation.xml"


$secureStringPwd = $pass | ConvertTo-SecureString -AsPlainText -Force
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList ($Username,$secureStringPwd)
$credential | Export-CliXml -Path $OutFile

解决比尔问题。

正确,在脚本中硬编码密码是不好的做法。以下是我将如何更改第一部分。

以上来自一个自定义脚本,其目的是在输入json上创建许多信用帐户,这就是为什么我这样写的。

 $outfile = "c:\filelocation.xml"
 Get-Credential | export-clixml -path $OutFile

然后您可以像这样调用脚本中的文件,但这必须在生成creds文件的同一用户和计算机上完成。

 $Creds = Import-Clixml -Path "c:\file.xml"
 New-SSHSession -ComputerName "myPi" -Credential $creds

好点编辑-argumentlist。

答案 2 :(得分:0)

另一种选择可能是使用$ sha256sum bobsbooks.com.public.key | openssl rsautl -inkey bobsbooks.com.private.key -sign | hexdump 0000000 574e 10f5 3a49 5784 25cc 7b06 c234 6ecf 0000010 adb2 9011 9332 e9e7 8dbf 7b10 c7d1 707e 0000020 aaf3 10b1 9497 32a6 d943 5b68 caba 8e5c 0000030 507d 24c7 76bb ab19 d5d7 e653 51e1 f54a 0000040 2a56 7f14 360d 15a9 767b 736a 16bc c3d8 0000050 8cb9 be7a 5ebe 701f 86ef ca5d cfd9 f035 0000060 0b5a 71ac fec4 c5cd 015e 643b 541e 6e5c 0000070 266b 5c33 98d6 db99 2431 d98e d591 04d1 0000080 4479 c85b e180 648b e71c b164 de14 6f33 0000090 fcb1 c2f6 3cc7 61ea 6f0f ab93 a1ad 5ba2 00000a0 af61 addd 4e5e 949e f38b e454 45f7 d12a 00000b0 5dfe 8bc3 b166 e4a0 8075 aa55 2089 49e4 00000c0 1a1d f137 d82b cb47 c0aa 0b14 a897 7879 00000d0 13e2 7c0a 6455 92a6 f9c7 b607 d52b ec07 00000e0 1c66 b9cb d055 ee0b 27b5 fabb 9191 8eb9 00000f0 104c 8ee2 cd81 02b9 d2a9 7502 99bd dbe1 0000100 进行一次设置,然后使用get-credential将密码转换为纯文本,然后在文件中您可以使用密码明文安全字符串,因此类似于其他答案:

convertfrom-securestring

这使您可以进行一次性设置,但避免在脚本中以可读方式显示多个文件或密码。

如果你这样做,你需要在将运行脚本的机器上运行脚本的帐户进行设置,因为据我所知,它使用那些加密。