На всех наших рабочих станциях есть папка на локальном диске, содержащая некоторые общие файлы, используемые нашей компанией. Периодически нам нужно отправлять изменения в некоторые из этих файлов. В настоящее время мы используем System Center Configuration Manager (SCCM) для запуска VBScript, который выполняет Робокопия.
Этот метод не обеспечивает очень хорошую отчетность в SCCM, и некоторые клиенты не получают обновления.
Должен быть способ сделать это лучше, но я ничего не могу найти в Интернете. Мы хотели бы, чтобы автоматизированный метод был прозрачен для пользователя. Мы готовы потратить немного денег, но лучшее решение - бесплатное. Любая помощь будет оценена. Спасибо!
Использование сценария через SCCM на самом деле звучит как довольно хороший подход. Можете ли вы предоставить дополнительную информацию о том, почему это не работает или почему некоторые клиенты не получают обновления? Возможно, можно будет изменить ваш сценарий, чтобы код возврата передавался в SCCM, и вы могли улучшить отчетность.
Например, просмотрев документацию для WshShell.Run, он вернет код выхода вашей команды. Итак, ваша строка должна быть:
Success = WshShell.Run "\\server\robocopy.exe ""\\path\to\folder"" C:\Destination_Folder /MIR, 0, True
Глядя на документацию для Робокопия показывает, что в случае успеха он вернет либо 0, либо 1. Теперь большинство команд в случае успеха завершают работу с 0, о чем, я думаю, сообщит SCCM. Итак, следующий шаг - убедиться, что ваш VBScript передает правильный результат обратно в SCCM. В этом случае вы хотите вернуть 0, если Успех был 0 или 1, и вернуть 1, если Успех был> 1 (или вы можете получить более продвинутые и вернуть специальные коды, чтобы получать различные сообщения об ошибках в SCCM). Чтобы передать этот код выхода, мы смотрим документацию для WScript.Quit и мы видим, что нам нужно бежать WScript.Quit (1);
за неудачу или WScript.Quit (0);
для успеха
Хорошая особенность SCCM заключается в том, что все клиенты загружают данные с сервера, и SCCM можно использовать для обработки этого события, тем самым снижая нагрузку на файловый сервер хоста.
Противоположный (и более уродливый) подход состоит в том, чтобы ваш сервер выталкивал содержимое папки каждому клиенту. Предполагая, что вы можете выгрузить список всех своих компьютеров, вы сможете составить простой сценарий, который будет работать над этим списком и скопировать папку для каждого клиента. Однако этот подход потребует, чтобы клиентский компьютер был включен в то время, когда вы инициируете копию (то, о чем SCCM может позаботиться за вас)
Другой возможный вариант (вы, вероятно, уже подумали) - разместить эту папку на общем диске. Полностью устраните проблему выталкивания файла. В зависимости от размера папки, возможно, это жизнеспособная альтернатива.
Почему бы не настроить сервер Subversion, а затем попросить пользователей использовать что-то вроде TortoiseSVN для получения обновлений?