CMD/BAT - [решено] Как получить только значения реестра cmd

Ответить
Аватара пользователя
NeformalDron

CMD/BAT - [решено] Как получить только значения реестра cmd

Сообщение NeformalDron »

Приветствую. Есть необходимость из командной строки переменной присвоить ТОЛЬКО значение переменой по адресу HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon /v DefaultUserName
Аватара пользователя
NeformalDron

Re: CMD/BAT - [решено] Как получить только значения реестра cmd

Сообщение NeformalDron »

Ну, например:



Скрытый текст

[spoiler]Код:
[/spoiler]

Код: Выделить всё

@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

Re: CMD/BAT - [решено] Как получить только значения реестра cmd

Сообщение NeformalDron »

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

Re: CMD/BAT - [решено] Как получить только значения реестра cmd

Сообщение NeformalDron »

Цитата NeformalDron:



При попытке изменить имя пользователя, осуществляющего автоматический вход в систему командой "wmic useraccount where name=’%sDefaultUserName%’ call rename Olen" получаю ответ "Отсутствуют экземпляры класса. :-(
CMD/BAT - [решено] Как получить только значения реестра cmd




Покажите Ваш код.
Аватара пользователя
NeformalDron

Re: CMD/BAT - [решено] Как получить только значения реестра cmd

Сообщение NeformalDron »

Цитата:



@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

Re: CMD/BAT - [решено] Как получить только значения реестра cmd

Сообщение Iska »

NeformalDron, как минимум замените Ваши «неправильные» кавычки на обычные одинарные. А ещё лучше — обрамите и всё условие двойными:



Код:

Код: Выделить всё

wmic.exe UserAccount where "Name='%sDefaultUserName%'" call rename Olen
Аватара пользователя
NeformalDron

Re: CMD/BAT - [решено] Как получить только значения реестра cmd

Сообщение NeformalDron »

Да)))) Обрамить всё условие помогло. Спасибо огромное Изображение
Ответить

Вернуться в «Скриптовые языки администрирования Windows»