gpt4 book ai didi

powershell - 输入带有掩码的密码

转载 作者:行者123 更新时间:2023-12-01 12:33:25 25 4
gpt4 key购买 nike

我从其他一些帖子中整理了一个简单的示例:

[CmdletBinding(
DefaultParameterSetName = 'Secret'
)]
Param (
[Parameter(Mandatory=$True)]
[string]$FileLocation,

[Parameter(
Mandatory = $True,
ParameterSetName = 'Secret'
)]
[Security.SecureString]${Type your secret password},
[Parameter(
Mandatory = $True,
ParameterSetName = 'Plain'
)]
[string]$Password
)

if ($Password) {
$SecretPassword = $Password | ConvertTo-SecureString -AsPlainText -Force
} else {
$SecretPassword = ${Type your secret password}
}

Write-Host $SecretPassword
$BSTR = `
[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecretPassword)
$PlainPassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)
Write-Host $PlainPassword

https://social.technet.microsoft.com/wiki/contents/articles/4546.working-with-passwords-secure-strings-and-credentials-in-windows-powershell.aspx

How can I use powershell's read-host function to accept a password for an external service?

运行脚本时,如何使输入的密码被屏蔽?

所以代替这个:
PS C:\temp> .\test.ps1 -FileLocation C:\Temp\file.csv  -Password secret

这个
PS C:\temp> .\test.ps1 -FileLocation C:\Temp\file.csv  -Password ******

最佳答案

首先,您的示例不会发生。建议您在脚本执行之前,希望他们从中执行脚本的任何shell都将其作为参数输入来屏蔽密码。没有发生。

现在,一种替代方法是不接受密码作为参数,而是每次都提示输入密码。在这种情况下,您可以将整个If($Password)语句减少为:

$SecretPassword = Read-Host 'Type your secret password' -AsSecureString

关于powershell - 输入带有掩码的密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42098521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com