Войти

Показать полную графическую версию : [решено] Как получить только значения реестра cmd


NeformalDron
26-01-2016, 12:46
Приветствую. Есть необходимость из командной строки переменной присвоить ТОЛЬКО значение переменой по адресу HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon /v DefaultUserName

Iska
26-01-2016, 13:05
Ну, например:
@echo off
setlocal enableextensions enabledelayedexpansion

>nul chcp 1251
for /f "usebackq tokens=3" %%i in (
`reg.exe query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "DefaultUserName" ^| find.exe /i "DefaultUserName"`
) do set sDefaultUserName=%%i
>nul chcp 866

if defined sDefaultUserName (
echo [%sDefaultUserName%]
) else (
echo Not found [DefaultUserName] parameter in [HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon] subkey.
)

endlocal
exit /b 0

NeformalDron
26-01-2016, 13:23
Спасибо огромное)))

Ну, например:
Скрытый текст »

NeformalDron
28-01-2016, 07:50
Всё вроде отлично. Код работает. Но есть один нюанс. При попытке изменить имя пользователя, осуществляющего автоматический вход в систему командой "wmic useraccount where name=’%sDefaultUserName%’ call rename Olen" получаю ответ "Отсутствуют экземпляры класса. :-(

Iska
28-01-2016, 08:05
При попытке изменить имя пользователя, осуществляющего автоматический вход в систему командой "wmic useraccount where name=’%sDefaultUserName%’ call rename Olen" получаю ответ "Отсутствуют экземпляры класса. :-( »
Покажите Ваш код.

NeformalDron
28-01-2016, 09:43
@echo off
setlocal enableextensions enabledelayedexpansion

>nul chcp 1251
for /f "usebackq tokens=3" %%i in (
`reg.exe query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "DefaultUserName" ^| find.exe /i "DefaultUserName"`
) do set sDefaultUserName=%%i
>nul chcp 866

if defined sDefaultUserName (
echo [%sDefaultUserName%]
) else (
echo Not found [DefaultUserName] parameter in [HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon] subkey.
)
wmic useraccount where name=’%sDefaultUserName%’ call rename Olen
endlocal
exit /b 0

Если обрисовать суть задачи, то мне необходимо на ПК изменить имя пользователя, осуществляющего автоматический вход в систему. Имя пользователя заранее неизвестно и на разных ПК задано рэндомно. И необходимо массово "причесать" под единый стандарт.

Батник будет применяться локально.

Iska
28-01-2016, 11:41
NeformalDron, как минимум замените Ваши «неправильные» кавычки на обычные одинарные. А ещё лучше — обрамите и всё условие двойными:
wmic.exe UserAccount where "Name='%sDefaultUserName%'" call rename Olen

NeformalDron
28-01-2016, 11:52
Да)))) Обрамить всё условие помогло. Спасибо огромное :rupor:




© OSzone.net 2001-2012