[Quote]

    sergeysvirid
  • 104
  • Longevity: 10 years
  • Posts: 2615
  • REPUTATION:127

    [+] [-]
  • Location: 65 регион (GMT+11)
В чате камрады bighead и goga8686 задались таким вопросом: "Как можно изменить имя компьютера в заливке на этапе разворачивания образа"?-Меня этот вопрос тоже заинтересовал, вот решил попробовать выложить своё решение. ab
Наваял батник _RenamePC.cmd для интеграции скрипта изменения имени компьютера в образ zalivka.wim
Идея такая.
Кладём свой образ заливки (zalivka.wim) рядом с _RenamePC.cmd и запускаем последний.
Монтируется образ и добавляется в реестр запись (в RunOnce) на запуск скрипта RPC.cmd, который копируется в образ.
При первом входе пользователя в систему отрабатывается из RunOnce скрипт "\Windows\RPC.cmd" и генерируется рандомное имя компьютера вида: VEQJWEK25860-PC
Значения при каждой "заливке" генерируются новые, из переменной %NewPCNAME%
setlocal EnableDelayedExpansion
for /l %%i in (1,1,7) do (
set /a d=!random!*26/32768+65
cmd /c exit !d!
set name=!name!!=exitcodeAscii!
)
set "NewPCNAME=%name%%random%-PC"
wmic computersystem where name="%computername%" call rename name="%NewPCNAME%"
После отработки скрипта запись из RunOnce соответственно удаляется и также удаляется и сам скрипт "\Windows\RPC.cmd"
Ну в общем идея как то такая... af
Проверил разворачивание образа с помощью WInst от Ander_73 (через wimlib), работает.


Last edited by sergeysvirid on 2023-10-08 10:04; edited 5 times in total

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 11 months
  • Posts: 3944
  • REPUTATION:127

    [+] [-]
Я таки нашёл свою мессагу (формирование случайного имени ПК) - https://usbtor.ru/viewtopic.php?p=96548#96548
( вот сам вопрос - https://usbtor.ru/viewtopic.php?p=96547#96547 )

[Quote]

    bighead
  • 29484
  • Longevity: 3 years 2 months
  • Posts: 423
  • REPUTATION:24

    [+] [-]
Вариант "красивого имени ag " со стандартным %random% :
set "manu="&for /f "skip=1 tokens=1" %%m in ('wmic path Win32_BaseBoard get Manufacturer') do if not defined manu set "manu=%%m"
set "NewPCNAME=%manu%%RANDOM%-PC"
wmic computersystem where name="%computername%" call rename name="%NewPCNAME%"
И получится, например, Asus9145-PC

[Quote]

    sergeysvirid
  • 104
  • Longevity: 10 years
  • Posts: 2615
  • REPUTATION:127

    [+] [-]
  • Location: 65 регион (GMT+11)
101216Я таки нашёл свою мессагу (формирование случайного имени ПК) - https://usbtor.ru/viewtopic.php?p=96548#96548
Ander_73,
Спасибо! Отлично, попробую! ay-Подправил батник (RPC.cmd) с учётом рекомендаций. Перезалил.


Last edited by sergeysvirid on 2023-10-08 18:49; edited 3 times in total

[Quote]

    goga8686
  • 15240
  • Longevity: 8 years
  • Posts: 897
  • REPUTATION:73

    [+] [-]
sergeysvirid, Спасибо за работу aa А что если в сам Winst добавить код, что бы при разворачивании заливки он в конце изменил имя?

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 11 months
  • Posts: 3944
  • REPUTATION:127

    [+] [-]
goga8686, зачем? Ты всё равно снимаешь галку перезагрузки, вот и напиши батник:
1. запуск Винст
2. код переименования
И не надо ничего ломать! ah

[Quote]

    goga8686
  • 15240
  • Longevity: 8 years
  • Posts: 897
  • REPUTATION:73

    [+] [-]
sergeysvirid, Приветствую aa А можно ваш RPC.cmd запустить вручную из под самой Windows?(лучше заранее спрошу, а то чёго то сыкотно ag )
На виртуалке у меня после применения к заливке , при первом старте выскочили две ошибки и после система не могла сама перезагрузиться. после принудительной перезагрузки, выпал bsod.
Запустить систему удалось только загрузившись в winpe и применив батник камрада bighead
@echo off
set sys=Windows\System32\config\SYSTEM
set /p var="New PC NAME?:"
echo/
set _drvs=& for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do ^
if exist %%i:\%sys% if %%i: neq %SystemDrive% call set _drvs=%%_drvs%% %%i
if not defined _drvs echo Windows not found!& goto quit
echo List of Windows:
echo -------------------------------------------
for %%i in (%_drvs%) do echo %%i:\Windows
echo -------------------------------------------
set drv=& set /p "drv=Enter drive letter: "
echo/
if not exist %drv%:\%sys% echo Windows not found!& goto quit
reg load HKLM\TMP %drv%:\%sys%|| goto quit
reg add "HKLM\TMP\ControlSet001\Control\ComputerName\ComputerName" /v ComputerName /t REG_SZ /d "%var%" /f
reg add "HKLM\TMP\ControlSet001\Control\ComputerName\ActiveComputerName" /v ComputerName /t REG_SZ /d "%var%" /f
reg add "HKLM\TMP\ControlSet001\Services\Tcpip\Parameters" /v Hostname /t REG_SZ /d "%var%" /f
reg add "HKLM\TMP\ControlSet001\Services\Tcpip\Parameters" /v "NV Hostname" /t REG_SZ /d "%var%" /f
reg unload HKLM\TMP
goto quit
:quit
echo/
pause
P.S применение батника RPC.cmd из под самой Windows, без интеграции так же приводит к ошибкам ac

[Quote]

    bighead
  • 29484
  • Longevity: 3 years 2 months
  • Posts: 423
  • REPUTATION:24

    [+] [-]
goga8686, мне кажется, что из-под самой системы лучше применять батники, которые меняют имя через wmic, я выше выкладывал вариант. Там уже можно и под ручной ввод сделать и под рандом или powershell.
Так как я у себя ввожу в домен компы, то мне использую au3 скрипт ув. Paravis.
До того как его скрипт попался делал через связку powershell + cmd.

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 11 months
  • Posts: 3944
  • REPUTATION:127

    [+] [-]
Я просто осторожно выскажусь, что штатный метод через wmic выглядит таки более кошерно. Извините.

[Quote]

    sergeysvirid
  • 104
  • Longevity: 10 years
  • Posts: 2615
  • REPUTATION:127

    [+] [-]
  • Location: 65 регион (GMT+11)
goga8686,
Да, что-то с батником RPC.cmd не то... Доисправлялся. Было же всё нормалёк. aq-UPD:
Переделал батник RPC.cmd. Изменение имени компьютера выполняется через wmic
goga8686, Будет время, попробуйте.-Ссылка на архив (RenamePC.7z) в первом сообщении темы.

[Quote]

    goga8686
  • 15240
  • Longevity: 8 years
  • Posts: 897
  • REPUTATION:73

    [+] [-]
sergeysvirid, Спасибо. Проверил на Windows 7,10,11 . Отрабатывает нормально. Единственное что не меняет, так это имя NetBios, но я не знаю насколько это критично.

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 11 months
  • Posts: 3944
  • REPUTATION:127

    [+] [-]
sergeysvirid, кстати, в батнике в "шапке" пропущено критично-важное начало:
setlocal EnableDelayedExpansion
иначе переменные вида !random! просто мусор.
Добавлено через 2 минуты 9 секунд:
goga8686, ты менял имя через реестр или через wmic?

[Quote]

    goga8686
  • 15240
  • Longevity: 8 years
  • Posts: 897
  • REPUTATION:73

    [+] [-]
Ander_73, aa там где однёрки это из под винпе батником bighead
а остальное это последний батник RPC.cmd от sergeysvirid
p.s там где никогда ничем не менял имя, там отрабатывает нормально. странно... ))

[Quote]

    sergeysvirid
  • 104
  • Longevity: 10 years
  • Posts: 2615
  • REPUTATION:127

    [+] [-]
  • Location: 65 регион (GMT+11)
101356
кстати, в батнике в "шапке" пропущено критично-важное начало:
setlocal EnableDelayedExpansion
Ander_73,
Это в шапке просто не указано. В самом батнике (в RPC.cmd) эта строка прописана. bs
P.S.
Подправил и в шапке. bs-
101355Отрабатывает нормально. Единственное что не меняет, так это имя NetBios
goga8686,
А после перезагрузки картина не меняется?


Last edited by sergeysvirid on 2023-10-08 09:22; edited 1 time in total

[Quote]

    goga8686
  • 15240
  • Longevity: 8 years
  • Posts: 897
  • REPUTATION:73

    [+] [-]
sergeysvirid, нет

Page 1 of 3


Display posts:    

Current time is: 20-Jan 11:17

All times are UTC + 3


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum