重新启动主机后重新连接远程桌面连接

我经常发现自己用远程桌面连接到工作站或服务器来执行需要重启的任务。 在这些情况下,我通常需要在主机重新联机后重新连接,以确保一切按计划进行或继续我的工作。 在这种情况下,我通常会在命令提示符下启动“ping -t”,让我知道什么时候可以重新连接。

但是,在等待主机回到在线状态时,我会偶尔分心别的东西,忘记回来。 如果主机恢复在线状态并允许我重新连接(理想情况下只需点击一次),将会非常高兴。

有谁知道一个简单的方法来完成这个? 我认为必须有一个免费的实用程序可用,或者可以使用PowerShell脚本来完成。

我每天使用的快速和肮脏的PowerShell脚本:

 <# .Synopsis Checks for and connects to RDP on a given server. .Description This script tests for an open port 3389 (standard Windows RDP), and if it finds it, passes the IP to mstsc.exe. Otherwise it retries indefinitely. Ctrl+C will halt the script. .Parameter ip IP or FQDN of a Windows machine to test. Only takes one argument. .Parameter wait Will assume that the machine is still up, wait until it stops responding (even once), and then try to connect. Good for machines that are about to reboot. .Parameter Verbose Will print a line each time it tries unsuccessfully. .Example rdpupyet.ps1 ITG-SRV-INF01 -Verbose #> [CmdletBinding()] param($ip, [switch]$wait) function Get-DownYet ($ip) { Write-Verbose "Waiting for $IP to shut down." do { try {$up = New-Object System.Net.Sockets.TCPClient -ArgumentList $ip,3389} catch {$up = $false} } until ($up -eq $false) Write-Verbose "$IP no longer responding." } Write-Verbose "Testing RDP Connection... Ctrl+C to quit." if ($wait) {Get-DownYet $ip} do { try {$success = New-Object System.Net.Sockets.TCPClient -ArgumentList $ip,3389} catch {Write-Verbose "RDP not active. Retrying."} } while (!$success) mstsc.exe /v:$ip /admin 

恐怕不会超时。 但是,这可以很容易地加上,并成功的响应快速蜂鸣。
我比较满意的一点是(从互联网上的一个当前未被logging的源代码获得的)是,当服务器响应ping时,它不会尝试连接,而是只有当标准RDP端口可以访问时。

在便笺上写上“不要忘记$ ServerName”,并将其放在显示器上。

看看这个启动RDP会话的函数,以及PowerShell的这段脚本。

看看这段脚本代码:

#This piece waits for the Server to come back online . do{$result = $ping.send("ServerName");write-host "." -NoNewLine -ForegroundColor "Red"} until ($result.status -eq "Success")

您可以轻松地在等待主机回到线路上的循环之后添加启动RDP呼叫。 用这两个脚本来实现你想要的东西可能并不困难。

好吧,我不知道任何会打电话给你的手机,但是如果你打开一个命令框,并执行“ping -t”减去引号,它将继续ping …不只是4次。 当你回来的时候很难忽略你的屏幕。

另外,我强烈build议你每天使用胆碱,因为你的头脑在相对年轻的时候正在煎炸。

我的每台服务器上都有一个简单的脚本,在服务器重新启动时向我发送电子邮件。 这是一个在Windows上使用blat的batch file,在Mac和Linux上使用perl脚本。 它们是通过适当的操作系统触发的。 例如Window上的Machine启动脚本。

你可以创build一个循环的脚本

 QWINSTA /SERVER:myserver "RDP-TCP" 

这是查看用户连接到服务器的一种快速方法,这个特定的语法将专门用于该服务器上的RDP监听会话,一旦可见,它应该可以login,我在脚本中使用稍微不同的命令实际上可以search60台服务器,并确定用户loginnetworking的位置。

现在有几个脚本可用,请参阅: