Войти

Показать полную графическую версию : Как скопировать файл во все профили с заменой файла без запросов?


nikhop
30-06-2019, 16:42
Как скопировать файл во все профили с заменой файла без запросов?

Попробовал что-то написать сам - не работает.
@echo off
for /D %g in ("%userprofile%\AppData\Roaming\1C\1CEStart\") do xcopy /y /d C:\Users\Administrator\AppData\Roaming\1C\1CEStart\Copy\ibases.v8i "%g"

Помогите советом или лучше готовым кодом )

Iska
30-06-2019, 17:55
nikhop, если есть домен — копирование должно производиться скриптом, привязанным к групповой политике «на пользователя».

nikhop
30-06-2019, 17:59
Iska, домена нет, просто RDP.

Iska
01-07-2019, 21:06
Тогда получайте пути, например, так: Вывод путей профилей пользователей компьютера (http://forum.oszone.net/thread-341036.html). Правильный вариант там — Wbem посредством PowerShell (или можно аналогично пользовать WSH).

Charg
01-07-2019, 22:43
Попробовал что-то написать сам - не работает. »
Разумеется, ведь переменная %userprofile% будет возвращать путь профиля того пользователя, который запускает скрипт. Соответственно запускать скрипт должен каждый пользователь (ну и имеет смысл его упростить до банального однократного копирования, естественно), ну а как - уже сам смотри какие инструменты доступны. Наиболее простым вне доменной среды, как мне кажется, является всё-таки групповая политика (локальная для конкретного сервера).
Но всё это костыли. 1с умеет читать базы из общего профиля (он же c:\users\public\appdata, который в свою очередь симлинк в c:\programdata\appdata, если мне не изменяет память) и естественно при отсутствии такого файлика в профиле самого пользователя, т.к. пользовательский файл имеет приоритет над общим. Соответственно достаточно держать файлик с базами там, и не придется каждый раз для каждого пользователя держать его в актуальном виде.

nikhop
03-07-2019, 02:35
он же c:\users\public\appdata, который в свою очередь симлинк в c:\programdata\appdata, если мне не изменяет память »

В public appdata нет вообще, в С:\ProgramData\1C\1CEStart\ положил ibases.v8i, удалил ibases.v8i у одного пользователя, попробовал под ним запуститься - не видит базы.
-------------------
Победил. Надо было в 1CEStart.cfg (с списком базы лежит) прописать путь, в целом файл такой получился:

InstalledLocation=C:\Program Files\1cv8
InstalledLocation=C:\Program Files (x86)\1cv8
CommonInfoBases=C:\ProgramData\1C\1CEStart\ibases.v8i
InstallComponents=DESIGNERALLCLIENTS=1 THINCLIENTFILE=0 THINCLIENT=1 WEBSERVEREXT=0 SERVER=0 CONFREPOSSERVER=1 CONVERTER77=0 SERVERCLIENT=0 ADMINISTRATIONFUNC=0 LANGUAGES=RU

Charg, Iska, ребят, спасибо за участие.

nikhop
03-07-2019, 14:15
Charg, однако, у пользователей появилась проблема "Не уникальное имя информационной базы". С чего бы это, если из профилей списки баз я удалил?

Charg
03-07-2019, 15:47
nikhop, понятия не имею. У тебя в одном *.v8i файлике несколько баз?

C:\ProgramData\1C\1CEStart\1CEStart.cfg

InstalledLocation=C:\Program Files\1cv8
CommonInfoBases=\\server\1cBase\Опт.v8i
CommonInfoBases=\\server\1cBase\Финансы.v8i
CommonInfoBases=\\server\1cBase\Бухгалтерия УТП.v8i
CommonInfoBases=\\server\1cBase\ERP.v8i
InstallComponents=DESIGNERALLCLIENTS=1 THINCLIENTFILE=0 THINCLIENT=0 WEBSERVEREXT=1 SERVER=0 CONFREPOSSERVER=0 CONVERTER77=0 SERVERCLIENT=0 ADMINISTRATIONFUNC=0 LANGUAGES=RU
И соответственно в каждом из этих файлов по одной базе

\\server\1cBase\ERP.v8i:
[ERP]
Connect=Srvr="server1c";Ref="erp";
ClientConnectionSpeed=Normal
App=Auto
WA=1
Version=8.3.14.1779

nikhop
03-07-2019, 16:18
У тебя в одном *.v8i файлике несколько баз? »
Агаа, все базы в одном *.v8i.
А в чём прикол? Какая разница?

Charg
03-07-2019, 18:42
Агаа, все базы в одном *.v8i.
А в чём прикол? Какая разница? »
Ну у тебя же не работает? А у меня работает, вот и вся разница :)
Так то я без понятия, 1с by design работает через жопу на костылях и логике поддается не всегда. Когда-то давно кто-то из коллег так настроил и работает.




© OSzone.net 2001-2012