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

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

Kn9z 06-10-2018 21:13 2834768

Изменение пути в INI файле по имени папки верхнего
 
Друзья, помогите разобраться вот с какой задачей.
Существует каталог D:\Users\%username%\Lotus\Data\
с файлами names.nsf и notes.ini
%username% более 500 (папки пользователей)

Задача:
1. Переименовать файл names.nsf и notes.ini в old_names.nsf и old_notes.ini соответственно (делаем бэкап)
2. Создать новый файл notes.ini (копируем из папки D:\Temp обязательно )
3. В файл notes.ini находим строчку Directory=D:\Users\NNN\Lotus\Data и меняем "NNN" на имя папки %username%
4. Файл notes.ini должен иметь атрибут "все" - полный доступ (не обязательно, но желательно)

Прошу помочь, т.к. все что смог сделать это скрипт который отрабатывает когда пользователь логинится на сервер и %username% подставляется без проблем (при создании новых профилей файл создается как надо), А вот переделать массово для "старых" пользователей - сделать исполняемый файл от администратора с подстановкой имени папки в текст файла notes.ini - не получается.

Будет ли это BAT или VBS или powershell - не принципиально наверное. Но шел мне менее всего знаком :(

Iska 06-10-2018 21:29 2834773

Цитата:

Цитата Kn9z
с файлами names.nsf и notes.ini »

Упакуйте эти файлы в архив и приложите к сообщению. Интересует кодировка файлов, наличие BOM и концы строк.

Цитата:

Цитата Kn9z
2. Создать новый файл notes.ini (копируем из папки D:\Temp обязательно ) »

Почему именно копировать, почему не просто создавать содержимое кодом?

Цитата:

Цитата Kn9z
4. Файл notes.ini должен иметь атрибут "все" - полный доступ (не обязательно, но желательно) »

В чём глубинный смысл сего действа, учитывая, что участники группы «Все» никак не смогут достучаться до этого файла, поскольку у этой группы тупо нет разрешений на более высокие уровни каталогов в иерархии?!

Kn9z 06-10-2018 21:52 2834776

0. Файлы меняются из-за замены сервера Lotus
1. Думаю содержимое файлов большого значения не имеет, т.к. в файле names.nsf хранится адресная книга пользователя привязанная к серверу с определенными настройками, а файл notes.ini хранит параметры авторизации на сервере, ключи шифрования и т.п.
2. Файл notes.ini базово содержит следующую информацию:
[Notes]
KitType=1
Directory=\\Server\Users$\%username%\Lotus\Data
InstallType=6
MailServer=NewServerName

Сейчас для новых пользователей скрипт копирует этот файл в папку пользователя и подменяет %username% на имя пользователя из ActiveDirectory.

3. Глубинного смысла нет. Просто у пользователя должно быть достаточно прав для редактирования файла, но т.к. файл подкидывается от имени администратора, то возможно он не сможет наследовать права юзера на папку. Группа "Все" надеюсь даст возможность польного доступа к файлу для пользователя.

Iska 07-10-2018 12:01 2834827

Цитата:

Цитата Kn9z
Думаю содержимое файлов большого значения не имеет »

Как скажете.

Busla 07-10-2018 12:05 2834829

1. для редактирования ini-файлов есть специальная групповая политика - не нужно изобретать велосипед
2. конкретно для Lotus можно удалить Directiry из файла notes.ini и задать переменную окружения notes_Directory

Iska 07-10-2018 12:12 2834830

Busla, Вы хоть примерно поняли, что там за велосипед был изобретён? Я — толком нет.

Kn9z 07-10-2018 19:47 2834885

Цитата:

Цитата Busla
конкретно для Lotus можно удалить Directiry из файла notes.ini и задать переменную окружения notes_Directory »

В таком случае можно удалить все содержимое файла после 4 строки и дописать строчку "MailServer=NewServerName", чтобы не заморачиваться с именами пользователей.

Можете помочь сделать такой файл, который в цикле будет пробегать по вложенным папкам D:\Users$\ и удалять/дописывать в notes.ini необходимую информацию?

Цитата:

Цитата Busla
для редактирования ini-файлов есть специальная групповая политика - не нужно изобретать велосипед »

не слышал про такую.

Iska 07-10-2018 21:54 2834889

Цитата:

Цитата Kn9z
не слышал про такую. »

Он просто немного не так выразился.

Структура компонентов групповой политики. Часть 1:
Цитата:

Например, с появлением операционной системы Windows Server 2008, функционал групповой политики пополнился более 20 расширениями клиентской стороны, при помощи которых возможно осуществление управления дополнительными параметрами, например, сопоставление дисков или изменение секций в свойствах *.ini-файлов, называемых предпочитаемыми групповыми политиками, которые в отличие от параметров групповой политики, предпочтения групповой политики не так строго привязываются к настройкам определенных компонентов системы.
Working with Group Policy Preference Items Using the GPMC | Microsoft Docs
Работа с предпочтениями групповой политики: управление INI-файлами / Хабр
Настройка элемента INI-файла
Настройка элемента INI-файла

и т.п.

Elven 08-10-2018 11:09 2834917

Цитата:

Цитата Iska
Вы хоть примерно поняли, что там за велосипед был изобретён? Я — толком нет. »

Чтобы понять этот велосипед на костылях с забитыми шурупами и вкрученными гвоздями его нужно просто немного знать, судя по описанию это Domino еще до 9 версии, как водится с подарочным набором граблей от предыдущих настроек и изрядным геморроем с новыми.

Iska 08-10-2018 13:45 2834934

Elven, не, я про другое. Например, зачем что-то делать от имени администратора, если речь идёт про файл в профиле пользователя? Как и чем сие вообще делается сейчас (или предполагается сделать)? И т.п.

Kn9z 08-10-2018 20:13 2834986

Цитата:

Цитата Iska
зачем что-то делать от имени администратора, если речь идёт про файл в профиле пользователя? »

так и предполагалось сделать. батник я написал, засунул его в Редактор объектов групповой политики - конфигурация пользователя - Сценарий входа в систему (может в другое место надо положить?!)
но при входе пользователя на терминальный сервер - скрипт не успевает отработать и изменить файл notes.ini

Поэтому появилось желание за один день (выходной) всем пользователям разом заменить файл notes.ini на новый.

Iska 08-10-2018 21:31 2834995

Цитата:

Цитата Kn9z
засунул его в Редактор объектов групповой политики - конфигурация пользователя »

Ага. Так всё-таки «на пользователя». Уже лучше.

Цитата:

Цитата Kn9z
скрипт не успевает отработать и изменить файл notes.ini »

Это как?! Ему что, умолчальных десяти минут не хватает на правку ini-файла?!

В любом случае, Вам правильно подсказали выше попробовать сделать сие через предпочтения групповой политики.

Kn9z 10-10-2018 20:40 2835313

Busla - спасибо за совет. Iska - спасибо за ссылки
Сегодня почитал и разобрался как поменять/изменить INI-шники у терминальных пользователей. Все оказалось действительно очень легко.

А для пользователей домена с локально запускаемым ПО все настолько же просто?

Задача остается та же, но тут уже все несколько усложняется.

Возможные пути установки программы:
C:\Program Files\Lotus\
C:\Program Files (x86)\Lotus\
C:\Program Files\IBM\Lotus\
C:\Program Files (x86)\IBM\Lotus\

необходимо заменить переименовать старые файлы и подложить новые.


Как я понимаю - через групповую политику можно скрипт накатить? или может что-то другое посоветуете?


Время: 11:00.

Время: 11:00.
© OSzone.net 2001-