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

Add username and password to Powershell script

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

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

我进行了一些搜索,但我似乎无法弄清楚是否可以替换“(Get-Credential)”部分以自动输入 username/password。

是的,我知道安全风险。他们对 Windows 机器造成的损害比对 Pi 造成的损害要大得多,而且 Pi 上的设置很容易恢复,所以我不用担心。

像这样的东西应该可以工作:

$user = "someuser"
$pass = ConvertTo-SecureString -String "somepassword" -AsPlainText -Force
$creds = new-object -typename System.Management.Automation.PSCredential -argumentlist $user,$pass
New-SSHSession -ComputerName "myPi" -Credential $creds

您也可以调用其中加密了密码的文件。请注意,这只能由生成它的计算机上生成它的帐户解密。

$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。

另一种选择是使用 get-credential 进行 1 次设置,然后使用 convertfrom-securestring 将密码转换为明文,然后在文件中您可以使用密码明文安全字符串等类似内容其他答案:

$user = "someuser"
$pass = "YOUR LONG PASSWORD GUID FROM ABOVE" | convertTO-securestring
$creds = new-object -typename System.Management.Automation.PSCredential -argumentlist $user,$pass
New-SSHSession -ComputerName "myPi" -Credential $creds

这让您可以进行一次性设置,但可以避免拥有多个文件或让您的密码以可读的方式出现在脚本中。

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