Как узнать предыдущее имя компьютера с Windows
Добрый день! Уважаемые посетители и гости блога. Очень давно я вам в статье приводил методы позволяющие изменить имя компьютера в Windows, тогда это была еще десятка, но сути это не меняет. Обычно это делают кто для красоты, кто-то для удобства поиска в сети, а кого-то обязывают корпоративные стандарты именования. А задумывались ли когда-то, а прежнее имя компьютера остается, где-то как исторические данные? Сразу отвечу, что да и в рамках данной статьи я покажу вам методы его определения. Данные знания вам будут полезны и еще более раскроют секреты данной операционной системы.
Где хранится предыдущее имя компьютера
После процедуры смены имени в системе, все ваши исторические данные фиксируются в двух местах:
- Первое, это лог файл NetSetup.LOG в системной папке
- Второе место это непосредственно в реестре Windows
Узнаем старое имя компьютера с Windows через NetSetup.LOG
Windows, как и любая нормальная операционная система, логирует любой чих пользователя, вся загвоздка в том, что многие люди просто не знают об этом, либо не знают, где можно найти эти логи и какие журналы, файлы за это отвечают. Нас будет интересовать файл с именем NetSetup.LOG, найти его вы можете по такому пути:
%SYSTEMDRIVE%\WINDOWS\Debug\NetSetup.LOG
Обратите внимание, что я использую переменную %SYSTEMDRIVE%, которая вас по сути отправляет в папку C:\Windows\
Если хотите больше узнать про переменные Windows и управление ими, прочитайте статью
Открыв файл вы увидите приблизительно вот такое содержимое, где вам нужно поискать строки с NetpMachineValidToJoin
09/16/2022 11:24:52:877 -----------------------------------------------------------------
09/16/2022 11:24:52:877 NetpDoDomainJoin: NetpGetNewMachineName returned 0x0
09/16/2022 11:24:52:877 NetpMachineValidToJoin: 'WIN-SI6SP2B5APL' - СТАРОЕ ИМЯ
09/16/2022 11:24:52:877 OS Version: 10.0
09/16/2022 11:24:52:877 Build number: 22000 (22000.co_release.210604-1628)
09/16/2022 11:24:52:893 SKU: Windows 11 Pro
09/16/2022 11:24:52:893 Architecture: 64-bit (AMD64)
09/16/2022 11:24:52:893 NetpMachineValidToJoin: status: 0x0
09/16/2022 11:24:52:893 NetpJoinWorkgroup: joining computer 'WIN-SI6SP2B5APL' to workgroup 'WORKGROUP'
08/03/2024 16:19:19:540 NetpJoinWorkgroup: joining computer 'WIN-TE805CKB4A9' to workgroup 'WORKGROUP' - СТАРОЕ ИМЯ
08/03/2024 16:19:19:540 NetpValidateName: checking to see if 'WORKGROUP' is valid as type 2 name
08/03/2024 16:19:19:540 NetpCheckNetBiosNameNotInUse for 'WORKGROUP' [ Workgroup as MACHINE] returned 0x0
05/30/2025 22:08:39:408 -----------------------------------------------------------------
05/30/2025 22:08:39:408 NetpValidateName: checking to see if 'DESKTOP-040685' is valid as type 1 name - НОВОЕ ИМЯ
05/30/2025 22:08:42:423 NetpCheckNetBiosNameNotInUse for 'DESKTOP-040685' [MACHINE] returned 0x0
05/30/2025 22:08:42:423 NetpValidateName: name 'DESKTOP-040685' is valid for type 1
Тут я отметил старое имя компьютера, и новое после процедуры переименовывания.
Выясняем старое значение имени компьютера в реестре Windows
Реестр это энциклопедия всех настроек Windows. Запустите его из окна "Выполнить" введя regedit.
Перейдите в раздел:
Компьютер\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SchedulingAgent
Тут вы обнаружите ключ реестра с именем "OldName", именно в нем будет содержаться старое имя компьютера.
Как найти предыдущее имя компьютера Windows с помощью PowerShell
Выше мы с вами выяснили какой ключ реестра отвечает за хранение нужной нам информации и в какой ветке он располагается. Гораздо быстрее получить его значение можно через PowerShell. В окне консоли введите:
( Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\SchedulingAgent' ).OldName
В скриншоте ниже, я произвел запрос в реестр системы, а так же потом вывел значения CsCaption, CsDNSHostName, CsName, чтобы получить текущее имя компьютера.
Get-ComputerInfo | fT -Property CsCaption, CsDNSHostName, CsName
Массовое определение предыдущего имени компьютеров с Windows
Запустите PowerShell ISE в режиме администратора, и главное чтобы у вас были права на удаленных системах, в противном случае вы будите получать отрицательный результат в виде различных ошибок.
# Задаем полный путь, где лежит текстовый файл с именами серверов
$serverListPath = "C:\Temp\RDS\servers-test.txt"# Производим импорт имен из текстового файла
$servers = Get-Content -Path $serverListPath# Создаем массив для хранения результатов
$results = @()# Начинаем обрабатывать каждый сервер
foreach ($server in $servers) {
try {
# Получаем значение OldName из реестра на удаленном сервере
$oldName = Invoke-Command -ComputerName $server -ScriptBlock {
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\SchedulingAgent' | Select-Object -ExpandProperty OldName
}# Добавляем результат в массив
$results += [PSCustomObject]@{
ServerName = $server
OldName = $oldName
}
} catch {
# Обрабатываем ошибки (например, если сервер недоступен)
$results += [PSCustomObject]@{
ServerName = $server
OldName = "Error: $_"
}
}
}# Выводим результаты в виде таблицы
$results | Format-Table -AutoSize
Обратите внимание, мои компьютеры являются доменными, но изготавливались они все из одного шаблона ESXI, о чем свидетельствует одинаковое старое имя.
Как видите получить информацию, об истории имени компьютера с Windows весь просто, есть и локальные команды и методы, так и для удаленных систем. Тут вы уже сами вольны выбирать нужный вам. С вами был Иван Сёмин, автор и создатель IT портала Pyatilistnik.org.