Я часто подключаюсь к рабочей станции или серверу с помощью удаленного рабочего стола для выполнения задачи, требующей перезагрузки. В этих случаях мне обычно нужно повторно подключиться после того, как хост вернется в сеть, чтобы убедиться, что все прошло по плану, или для продолжения моей работы. В этих случаях я обычно запускаю «ping -t» в командной строке, чтобы сообщить мне, когда я могу восстановить соединение.
Тем не менее, я иногда отвлекаюсь на что-то другое, ожидая, пока хозяин вернется в сеть, и забываю вернуться к нему. Было бы неплохо получить предупреждение, когда хост снова в сети и позволит мне повторно подключиться (в идеале - одним щелчком мыши).
Кто-нибудь знает простой способ сделать это? Я думаю, должна быть доступна бесплатная утилита или, возможно, это можно сделать с помощью сценария PowerShell.
Напишите на стикере «Не забывайте о $ 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-вызова после цикла, ожидающего возвращения хоста в сеть. С этими двумя сценариями может быть не так уж сложно добиться желаемого.
Быстрый и грязный скрипт 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
Боюсь, время не истекает. Но это может быть легко добавлено вместе с быстрым звуковым сигналом при успешном ответе.
То, что меня больше устраивает (взято из источника в Интернете, о котором в настоящее время не вспоминают), заключается в том, что он не будет пытаться подключиться, когда сервер отвечает на ping - вместо этого, только когда доступен стандартный порт RDP.
Хорошо, я не знаю ничего, что могло бы позвонить на ваш мобильный телефон, но если вы откроете командное окно и сделаете «ping -t» минус кавычки, он будет продолжать пинговать ... не только 4 раза. Когда вы вернетесь, это будет сложно игнорировать в середине экрана.
В качестве альтернативы я настоятельно рекомендую вам употреблять холин ежедневно, так как ваш разум горит в относительно молодом возрасте.
У меня есть простой скрипт на каждом из моих серверов, который отправляет мне электронное письмо, когда сервер перезагружается. Это командный файл, использующий blat в Windows, скрипты Perl в Mac и Linux. Они запускаются любыми способами, подходящими для ОС. например сценарий запуска машины в Windows.
вы можете создать скрипт, который зацикливает
QWINSTA /SERVER:myserver "RDP-TCP"
это быстрый способ узнать, какие пользователи подключены к серверу, этот конкретный синтаксис будет искать специально для сеанса прослушивания RDP на этом сервере, как только он станет видимым, можно будет войти в систему, я использую команду немного иначе в сценарии, который фактически сканирует около 60 серверов и определяет, где в сети зарегистрирован пользователь.
Для этого есть несколько сценариев, см.