Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Создание подписи в Outlook 2007/2010 батником.

Ответить
Настройки темы
CMD/BAT - Создание подписи в Outlook 2007/2010 батником.

Аватара для BumbleBee

Новый участник


Сообщения: 7
Благодарности: 1

Профиль | Отправить PM | Цитировать


Доброго времени суток, уважаемые коллеги!

Передо мной встала задача автоматической вставки подписи в Outlook 2007 / 2010 в windows 7 / 2k8r2 для каждого пользователя. Из железа имеется один сервер терминалов и около 100 компьютеров с Windows 7. Подпись состоит из пары картинок и контактной информации пользователя (фамилия, имя, внутренний телефон, мобильный телефон и опционально скайп). Для удобства решил всю эту информацию хранить в одном месте - в Active Directory и "дергать" ее от туда посредством команд dsquery и dsget. Принцип работы следующий:
1. генерируем в Outlook шаблон подписи со всеми картинками и позиционированием.
2. удаляем из шаблона информацию о конкретном пользователе, под кем в Outlook'е генерим шаблон (поскольку она у меня в конце шаблона, то тупо удаляю последние строки, которые потом добавлю батником,). это делается однократно.
3. вот сам батник:
Код: Выделить весь код
@echo off
set ifpath=%userprofile%\AppData\Roaming\Microsoft
set destpath=%userprofile%\AppData\Roaming\Microsoft\Signatures
set sourcepath=D:\Users\Default\Source\Signatures
if not exist "%ifpath%\Outlook" goto :end
if exist "%destpath%\auto.files" goto :end
:begin
for /f "tokens=*" %%a in (
'cmd.exe /c dsquery user -samid %username%'
) do set qwe=%%a
for /f "eol=d tokens=*" %%b in (
'cmd.exe /c dsget user %qwe% -fn'
) do set fstnm=%%b 
for /f "eol=d tokens=*" %%b in (
'cmd.exe /c dsget user %qwe% -ln'
) do set lstnm=%%b 
for /f "eol=d tokens=*" %%b in (
'cmd.exe /c dsget user %qwe% -title'
) do set title=%%b 
for /f "eol=d tokens=*" %%b in (
'cmd.exe /c dsget user %qwe% -company'
) do set company=%%b
for /f "eol=d tokens=*" %%b in (
'cmd.exe /c dsget user %qwe% -mobile'
) do set mobile=%%b
for /f "eol=d tokens=*" %%b in (
'cmd.exe /c dsget user %qwe% -pager'
) do set pager=%%b
for /f "eol=d tokens=*" %%b in (
'cmd.exe /c dsget user %qwe% -tel'
) do set telephone=%%b
:deleting
rd /S /Q %destpath%\*
del /F /Q %destpath%\*
:copying
echo D | xcopy %sourcepath%\auto.files %destpath%\auto.files /H /E /G /R /Y 
echo F | xcopy %sourcepath%\auto.htm %destpath%\auto.htm /H /E /G /R /Y 
@chcp 1251 > nul
echo %fstnm:  =%%lstnm:  =%^<br^> >> %destpath%\auto.htm
echo %title:  =% >> %destpath%\auto.htm
echo %company:  =% >> %destpath%\auto.htm
echo ^<br^> >> %destpath%\auto.htm
@chcp 866 > nul
for /f "tokens=1-4" %%c in (%sourcepath%\array.txt) do echo %%c %%d Renault %%e %%f^<br^> >> %destpath%\auto.htm
for /f "tokens=5,6" %%c in (%sourcepath%\array.txt) do echo %%c - %%d^<br^> >> %destpath%\auto.htm
for /f "tokens=7,8" %%c in (%sourcepath%\array.txt) do echo %%c.: 8-123-456-7890, %%d.: %telephone%^<br^> >> %destpath%\auto.htm
@if "%mobile%"=="" goto :skipmobile
for /f "tokens=9" %%c in (%sourcepath%\array.txt) do echo %%c.: %mobile%^<br^> >> %destpath%\auto.htm
:skipmobile
@if "%pager%"=="" goto :skipskype
echo Skype: ^<span lang^=EN-US style^='font-size:9.0pt;font-family:"Arial","sans-serif"; color:black;mso-ansi-language:EN-US'^>%pager%^</span^>^<br^> >> %destpath%\auto.htm
:skipskype
for /f "tokens=*" %%d in (%sourcepath%\end.txt) do echo %%d >> %destpath%\auto.htm
reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676\00000003" /v "New Signature" /t REG_BINARY /d 6100750074006F000000 /f
reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676\00000003" /v "Reply-Forward Signature" /t REG_BINARY /d 6100750074006F000000 /f
:end
при этом на терминале, где был добавлен компонент "Оснастки и программы командной строки службы Active Directory", все работает как надо. А вот на обычных компьютерах, где подобной компоненты нет - работать естественно ничего не будет. Но устанавливать на каждый компьютер в домене средства удаленного администрирования сервера я не хочу.

В связи с этим у меня вопрос: существует ли возможность установить только средства командной строки AD (dsquery и dsget и т.д.)? если же такой возможности Microsoft не предоставляет, имеется ли в арсенале клиентских машин консольные средства, которыми можно будет выдернуть нужные мне для подписи данные из AD.

Заранее благодарен за помощь.

Отправлено: 15:40, 09-01-2014

 

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата BumbleBee:
при этом на терминале, где был добавлен компонент "Оснастки и программы командной строки службы Active Directory", все работает как надо. А вот на обычных компьютерах, где подобной компоненты нет - работать естественно ничего не будет. Но устанавливать на каждый компьютер в домене средства удаленного администрирования сервера я не хочу. »
Используйте WSH.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:16, 09-01-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для BumbleBee

Новый участник


Сообщения: 7
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата:
Используйте WSH.
В таком случае и скрипт мне придется переписать на том же VBScript?

Отправлено: 16:48, 09-01-2014 | #3


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Естественно. Или на JScript. Кому что нравится.

Непонятно только почему «…и скрипт». Только скрипт. Вместо пакетного файла и использованных утилит командной строки.

Отправлено: 17:05, 09-01-2014 | #4


Аватара для BumbleBee

Новый участник


Сообщения: 7
Благодарности: 1

Профиль | Отправить PM | Цитировать


Тогда, как мне кажется, стоит задуматься в сторону PoSh. Поскольку ни VBScript ни JScript я должным образом не знаю. А почему не только скрипт? - просто Outlook при создании подписи добавляет в него строки стилевых настроек, и, как мне опять же показалось, 500 строк лучше держать отдельным файлом. Хотя, в силу своего опыта в решении подобных вещей, как написание скриптов, я, возможно, решил задачу достаточно громоздким способом.

Просто мне казалось, что все-таки можно добавить в клиентскую систему только консольные утилиты AD.

Отправлено: 17:33, 09-01-2014 | #5


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Если есть возможность везде использовать PoSH — вполне возможно. Какой-то принципиальной разницы в доступе к AD нет.

Цитата BumbleBee:
А почему не только скрипт? - просто Outlook при создании подписи добавляет в него строки стилевых настроек, и, как мне опять же показалось, 500 строк лучше держать отдельным файлом. »
Ясно.
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:15, 09-01-2014 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Создание подписи в Outlook 2007/2010 батником.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2010 - Outlook 2007/2010 | Перенос данных Muslitel Microsoft Office (Word, Excel, Outlook и т.д.) 12 29-12-2017 10:19
2010 - Перенос всех писем и адресной книги из outlook 2007 в outlook 2010 ath01 Microsoft Office (Word, Excel, Outlook и т.д.) 2 23-04-2014 09:37
Любой язык - [решено] Добавление учетной записи в Outlook 2007/2010 timbird Скриптовые языки администрирования Windows 2 18-04-2013 16:49
2007 - Outlook 2007 бегущая строка в подписи Raz0rnsk Microsoft Office (Word, Excel, Outlook и т.д.) 0 01-08-2012 08:09
2007 - [решено] Outlook 2007 - Проблема с запуском после удаления Office 2010 MIGhters Microsoft Office (Word, Excel, Outlook и т.д.) 5 29-02-2012 09:17




 
Переход