我想创建一个PS1脚本,将采取用户AD密码作为变量,然后传递给New-PSDrive来命令行。它们映射驱动器被共享,使得如果它们进入正确的凭证,将映射,而无需检查AD为正确的用户名/密码。
我希望能够给他们输入了正确的凭据,然后该脚本将退出的3次机会。
到目前为止,我有
$Credential = $host.ui.PromptForCredential("Need credentials", "Please enter your user name and password.", "", "NetBiosUserName")
New-PSDrive -Name "T" -PSProvider FileSystem -Root \\servername -Persist -Credential $Credential -ErrorAction Ignore
在叫我得到一个用户名/密码箱,如果凭据是正确的驱动器映射,但我想框弹出备份如果凭据不正确,并有可能如果那些错误的再次进入再次发生
我得到尽可能
<块引用>尝试{$凭证= $ host.ui.PromptForCredential( “极品资格证书”, “请输入您的用户名和密码。”, “”, “NetBiosUserName”) New-PSDrive -Name "T" -PSProvider FileSystem -Root \servername -Persist -Credential $Credential -ErrorAction Ignore} 捕获{写主机“不正确,再次尝试”}
然后重复此,但是当凭证是正确的,但它仍然弹出窗口凭证
感谢您的帮助!
答案 0 :(得分:1)
试试这个,我添加了一个测试,因为如果用户取消凭据对话框,将创建 PSDrive :
while ($true)
{
try
{
$Credential = $host.ui.PromptForCredential("Need credentials", "Please enter your user name and password.", "", "NetBiosUserName")
# Prevent cancel that maps PSDrive anyway
if ($Credential)
{
New-PSDrive -Name "T" -PSProvider FileSystem -Root \\servername\share -Persist -Credential $Credential -ErrorAction Stop
}
else
{
throw [System.ComponentModel.Win32Exception]::new(0x80004005) # Invalid login and/or password
}
"OK"
# PSSDrive created, exiting the infinite loop
break
}
catch
{
Write-Warning "Wrong Username and/or password, please retry..."
}
}
"Continue"