Powershell 如何使用Get Credential将光标保持在用户名上?
运行Powershell 如何使用Get Credential将光标保持在用户名上?,powershell,passwords,Powershell,Passwords,运行$Cred=Get Credential'MyDomain.com\'时,它会自动将光标移动到密码输入。(见下图) 如何在已通过脚本提供的域中显示它,但光标仍在用户名输入上,如下所示: 这主要是为了方便在运行所述脚本期间减少点击。这样,我可以提供域名或只是机器名来指定本地主机,用户只需输入用户帐户名。我希望他们不必点击返回用户名输入。基本上没有直接处理的方法,因此您有一些选项(大多数选项有点粗糙) 第一个选项,不要指定用户名。这将使其留空,光标从那里开始。然而,这取决于进入他们所连接的域
$Cred=Get Credential'MyDomain.com\'
时,它会自动将光标移动到密码输入。(见下图)
如何在已通过脚本提供的域中显示它,但光标仍在用户名输入上,如下所示:
这主要是为了方便在运行所述脚本期间减少点击。这样,我可以提供域名或只是机器名来指定本地主机,用户只需输入用户帐户名。我希望他们不必点击返回用户名输入。基本上没有直接处理的方法,因此您有一些选项(大多数选项有点粗糙) 第一个选项,不要指定用户名。这将使其留空,光标从那里开始。然而,这取决于进入他们所连接的域的用户,如果他们不这样做,您将需要错误捕获它,或者从凭据中提取详细信息,并使用正确的域(如果已知)创建一个新的凭据 接下来,您可以在加载凭证提示后通过sendkeys发送Shift+选项卡。这有点棘手,因为它需要使用计时器启动作业,然后启动凭证提示符并希望他们排队。希望你有速度快的机器
start-job {
Add-Type -AssemblyName System.Windows.Forms
start-sleep -m 100
[system.windows.forms.sendkeys]::sendwait("+({TAB})")
[system.windows.forms.sendkeys]::sendwait("{RIGHT}")
}
$Cred = Get-Credential 'MyDomain.com\'
最后,您可以选择在Winforms中编写自己的对话,或者在控制台中处理对话(如果显示)。这是一个非常开放的行动过程,有数千个答案,因此最好自己研究。您还可以利用
获取凭证
的-Message
参数以预期格式传递消息。类似于“请以“域\用户名”格式输入您的凭据。”
例如:
$Cred = Get-Credential -Message "Please enter your credentials in format 'DOMAIN\USERNAME'."
我认为这不可能通过
获取凭证
。但是,您可以使用Read Host
和Read Host-AsSecureString
生成两个不同的提示,并使用这些输入创建PSCredential
对象。感谢您的回复。从未想过尝试将Shit+选项卡发送到凭证提示符。我会采取那种解决办法。现在我需要弄清楚如何抓取Get凭证的句柄。