Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Как получить только значения реестра cmd (http://forum.oszone.net/showthread.php?t=310797)

NeformalDron 26-01-2016 12:46 2599244

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

Iska 26-01-2016 13:05 2599260

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

@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 2599271

Спасибо огромное)))

Цитата:

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


NeformalDron 28-01-2016 07:50 2599916

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

Iska 28-01-2016 08:05 2599922

Цитата:

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

Покажите Ваш код.

NeformalDron 28-01-2016 09:43 2599944

Цитата:

@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 2599990

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

wmic.exe UserAccount where "Name='%sDefaultUserName%'" call rename Olen

NeformalDron 28-01-2016 11:52 2599997

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


Время: 19:58.

Время: 19:58.
© OSzone.net 2001-