我正在编写一个脚本来从按钮网格中启动 MSTSC。这些按钮将分别打开不同的服务器连接。我有一个单独的按钮来获取和存储管理员凭据,这是我从另一个脚本中借来的。单击时,按钮调用getAdmin
函数:
function getAdmin {
$returnObject = $null; $credValid = $null;
$cred = Get-Credential #Read credentials
$username = $cred.username
$password = $cred.GetNetworkCredential().password
$CurrentDomain = "LDAP://" + ([ADSI]"").distinguishedName
$domain = New-Object System.DirectoryServices.DirectoryEntry($CurrentDomain,$UserName,$Password)
if ($domain.name -eq $null)
{
$credValid = $false
$cred = $null
} else {
$credValid = $true
}
$returnobject = new-object psobject -property @{ Valid = $credValid; Credentials = $cred }
return $returnObject }
然后我有我的“服务器按钮:”
$btnServ = new-object system.windows.forms.button
$btnServ.location = new-object system.drawing.point (10,200)
$btnServ.text = "Server Name (SERVER)"
$btnServ.width=250
$btnServ.height = 30
$btnServ.add_click({ Start-Process mstsc -ArgumentList "/v:SERVER" -Credential $cred })
现在,当我使用第一个按钮存储凭据时,然后单击该btnServ
按钮,它仍然提示我输入“Windows PowerShell 凭据请求”,而不是从上一个操作中获取存储的凭据。如果我-Credential $cred
从通话中删除,无论我是否单击第一个getAdmin
按钮,它都只是说我的登录尝试失败并且我提供了不正确的信息。
理想情况下,我想存储我的凭据,然后无论我按下哪个服务器按钮,它都会让我登录,而不是在我的凭据中输入两次。