目前,我们的用户将拥有两个或两个域中的计算机。我正在写一个powershell脚本,我在其中收集用户名和机器名。我想通过ping $ computer.domain.com来执行测试连接来确定机器所在的域,然后ping ping computer.otherdo.com.com。
确定域名后,我会使用用户名并输入“domain \”+ $ username来预填域名。我对提供和存储的$ machinename执行相同的操作:$ machinename +“。domain.com”。
我不想存储用户的密码
我一直在尝试使用cmdkey将用户名与机器相关联并调用mstsc(参见下面的示例):
cmdkey / generic:TERMSRV / $ computername / user:“username” mstsc / v:$ computername
然而,当我运行这个时,我的登录尝试失败并不理想。
我想在mstsc / v:$ computername之后尝试使用/ prompt字段,所以: mstsc / v:$ computername / prompt
但是这不会使用存储的用户名,而是使用我当前正在运行命令的用户配置文件。
我只是希望我的脚本获取用户的用户名和计算机名称,测试并确认计算机所在的后台回合,然后使用域预填充用户名,并提示用户输入密码以继续。
对此有任何建议将不胜感激!
以下是我正在处理的代码:******
#Storing the provided username within variable $Username
$UserName = $UsernameTextbox.Text
Write-host "Username entered =" $UserName
#Storing the user's provided comuter name into $Machinename
$MachineName = $HostnameTextbox.Text
Write-host "Machinename entered =" $MachineName
#Deletes any previously stored cmdkeys that may interfere with the
cmdkey /list | ForEach-Object{if($_ -like "*Target:*"){cmdkey /del:($_ -
replace " ","" -replace "Target:","")}}
if (Test-Connection -ComputerName "$MachineName.domain.com" -Quiet ) {
$User = "domain\" + $UserName
$MachineName = $MachineName + ".domain.com"
Write-Host "Computer responded in domain"
}
else {
$User = "domain2\" + $UserName
$MachineName = $MachineName + ".domain2.com"
Write-Host "Computer is most likely in domain2"
}
cmdkey /add:$MachineName /user:$user
Write-host "Username with discovered domain name =" $User
Write-host "machine name after domain check =" $MachineName
$argumentslist = "/v:$MachineName " #took out /prompt
Start-Process -FilePath C:\Windows\System32\mstsc.exe -ArgumentList
"$argumentslist"