![]() |
Подмена строки из выполненной команды в текстовый файл
Имеется команда
Код:
wmic useraccount where name='username' get sid | find /i "S-" Текст в файлике примерно такой: Код:
HKEY_CURRENT_USER\... Код:
"HKEY_CURRENT_USER" Код:
"HKEY_USERS\%результат выполнения комманды%\" |
Цитата:
|
Так и есть, reg-файл с ключами реестра, в нём прописан путь до ветки куда нужно добавить ключ, ветка на каждом ПК разная, путь до ветки можно узнать выполняя комманду
Код:
wmic useraccount where name='username' get sid | find /i "S-" Код:
wmic useraccount where name='username' get sid | find /i "S-" |
Цитата:
2. Его содержимое заранее известно? 3. Устроит ли Вас WSH-скрипт? |
1. UTF-8
2. Содержание известно, единственно что изменяется это путь до ветки реестра, на каждом ПК он разный. В файлике он представлен в виде "HKEY_CURRENT_USER\software\microsoft\windows...", а необходимо чтобы выглядел "HKEY_USERS\%результат_выполнения_команды%\software\microsoft\windows..." 3. Устроит любое элегантное решение в котором будут сведены к минимуму вмешательства пользователя. |
Цитата:
Как-то так: 1. Откуда Вы будете брать «Domain\UserName»? 2. Какова Ваша конечная цель всего действа? |
Насчет кодировки мог и ошибиться, прошу прощения.
1. UserName можно подставить один раз вручную, он на всех машинах одинаковый. Есть ли возможность обойтись без DomainOrMachineName, так как машины не в домене и имя ПК абсолютно уникально, менять каждый раз ручками не получится. 2. На N-количестве машин с одинаковыми именами пользователя %username%, но с ограниченными правами необходимо поменять определенные ключи реестра. Если точнее, то это настройки безопасности в IE7-8. Естественно reg-файл будет запускаться с правами администратора, но у администратора HKEY_CURRENT_USER отличается от такой же ветки у %username%. Следовательно необходимо сделать записи в зеркало ветки %username% в HKEY_USERS, но пользователи там имеют идентификатор SID(security ID), который уникален на каждой машине. Я выяснил, что SID на любой машине у пользователя %username% можно узнать используя Код:
wmic useraccount where name='username' get sid | find /i "S-" |
Jeander,
Так может вообще обойтись без reg-файла? Как пример: Код:
@echo off |
То что нужно, спасибо!
|
Если скрипт выполнять из под УЗ администратора на Вин7, то он выходит с ошибкой "Параметр задан неверно", а если из под пользователя которому надо произвести изменения, но через runas /u:Администратор, то нормально. В чем может быть дело?
|
Цитата:
|
Последний.
Код:
@echo off |
Время: 08:26. |
Время: 08:26.
© OSzone.net 2001-