ボタンのグリッドから 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 Request」のプロンプトが表示されます。-Credential $cred
最初のボタンをクリックしたかどうかに関係なく、通話を終了するgetAdmin
と、ログオン試行が失敗し、間違った情報を提供したと表示されるだけです。
理想的には、資格情報を保存したいのですが、どのサーバー ボタンを押しても、資格情報を 2 回入力する代わりにログインできます。