|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Рандомный VolumeID |
|
CMD/BAT - [решено] Рандомный VolumeID
|
Старожил Сообщения: 353 |
Здравствуйте
Для тестирования ПО возникла необходимость генерации новых VolumeID диска. Подскажите пожалуйста пример батника, который бы использовал утилиту Марка Руссиновича и ее синтаксис? То есть, при запуске батника должна выполнятся команда: volumeid.exe C: xxxx-xxxx где, xxxx-xxxx - рандомный набор букв и цифр. |
|
Отправлено: 01:18, 05-01-2016 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать @Echo Off SetLocal EnableDelayedExpansion :: Набор символов, из которых будет генерироваться ID Set Charset=0123456789ABCDEF Set CharsetSize=16 :: инициализируем для получения более качественного рандома Call :RandomStringGen 12 init :: Получаем новый ID и устанавливаем его Call :RandomStringGen 4 IDPart1 && Call :RandomStringGen 4 IDPart2 Echo New Volume ID is [%IDPart1%-%IDPart2%] volumeid C: %IDPart1%-%IDPart2% Pause&Exit :RandomStringGen (length, name) Set "RndStringLength=%~1" & Set "RndString=%~2" :loop Echo !Random!!Random!>nul Set /A Offset=%CharsetSize%*!Random!/32768 Set %RndString%=!Charset:~%Offset%,1!!%RndString%! Set /A RndStringLength-=1 If %RndStringLength% GTR 0 GoTo :loop Exit /B |
Отправлено: 02:06, 05-01-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать |
Отправлено: 02:47, 05-01-2016 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать vbscript:
Скрытый текст
Option Explicit Dim strNewVolumeID strNewVolumeID = GetVolumeIDPart() & "-" & GetVolumeIDPart() WScript.Echo strNewVolumeID WScript.CreateObject("WScript.Shell").Run """C:\Program Files (x86)\Sysinternals.com\Sysinternals Suite\Volumeid.exe"" C: " & strNewVolumeID & "", 0, True WScript.Quit 0 Function GetVolumeIDPart() Randomize Timer GetVolumeIDPart = Right("0000" & Hex(Int(Rnd() * 2^16)), 4) End Function Кстати, про «C:» — проще использовать для этих целей присоединённый виртуальный диск, поскольку ему можно сделать detach/attach сценарием (хоть в том же скрипте/файле, что и генерация и задание VolumeID) без перезагрузки. |
Отправлено: 03:27, 05-01-2016 | #4 |
Забанен Сообщения: 793
|
Альтернативные решения (до кучи) без использования Sysinternal'овской утилиты для генерации случайного volume id:
или
К слову, в случае с PowerShell можно вообще обойтись без volumeid Руссиновича.
|
|
Отправлено: 10:19, 05-01-2016 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать greg zakharov, утилита его не генерирует.
Цитата greg zakharov:
|
|
Отправлено: 12:52, 05-01-2016 | #6 |
Забанен Сообщения: 793
|
Цитата Iska:
Цитата Iska:
И если у пользователя достаточно прав, поменять id особой проблемы не составит. |
||
Отправлено: 15:28, 05-01-2016 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата greg zakharov:
|
|
Отправлено: 15:46, 05-01-2016 | #8 |
Забанен Сообщения: 793
|
Цитата Iska:
|
|
Отправлено: 16:26, 05-01-2016 | #9 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Рандомный запуск на CMD | AlexPebody | Скриптовые языки администрирования Windows | 3 | 30-08-2013 10:25 | |
Разное - Как вернуть оригинальный VolumeId тома | DartVanya | Microsoft Windows 7 | 8 | 20-09-2012 01:09 | |
CMD/BAT - [решено] Не получается сменить VolumeID | Sat_Kelman | Скриптовые языки администрирования Windows | 2 | 27-12-2011 12:32 |
|