Почему некоторые администраторы не любят exe-файлы, выполняемые с общего ресурса сервера?
Я распространяю утилиту для разработчиков, которая предназначена для размещения на общем сервере и выполняется с сервера на локальном ПК или в сеансе Terminal Services/Citrix. Не требует никаких прав администратора. Не существует процесса установки, кроме перетаскивания его на общий ресурс сервера. Он имеет цифровую подпись.
Мне сказали, что некоторым ИТ-отделам не нравится, когда exes-файлы на сервере делятся таким образом. Что я могу сделать, чтобы объяснить ИТ-отделам, что моя утилита доброкачественная.
добавленной
Я являюсь разработчиком инструмента Auto FE Updater, и он специально разработан, чтобы не требовать прав администратора. Это отдельный exe-файл без установочных зависимостей, кроме нескольких файлов конфигурации (INI), созданных разработчиком с помощью инструмента.
Этот инструмент выполняется пользователями в течение коротких периодов времени, пока он проверяет, есть ли какие-либо обновления базы данных внешнего интерфейса и связанных файлов на сервере. Разработчик, использующий инструмент, может запустить его в течение двух или пяти минут при обновлении настроек.
5 ответов
Вот несколько причин, почему я не нравится не хотелось запускать исполняемые файлы по сети:
- Клиентские блокировки не позволяют обновлять инструмент, пока не наступит момент, когда никто не выполнит файл. Это исключает концепцию обновления по требованию с точки зрения пользователя
- Перезагрузки сервера становятся необходимыми в некоторых случаях, когда висячие блокировки происходят из-за падения клиента из сети или умирания процесса
- Дополнительная пропускная способность для сети
- Дополнительное время загрузки для клиента, это часто возвращается как воспринимаемая медленная сеть
РЕДАКТИРОВАТЬ:
Ваша добавленная информация делает это еще хуже! Теперь есть и другие внешние зависимости, которые увеличивают риск неудачи.
РЕДАКТИРОВАТЬ 2
Независимо от того, что происходит в процессах, лучше всего запускать их с локального диска. За более чем 15-летний опыт работы с ИТ я не видел ни одного процесса, в котором преимущества запуска его через сетевую папку перевешивали бы риски, которые я перечислил. (Я уточню это, сказав, что в стандартной среде рабочей станции / файлового сервера Windows; у меня нет опыта *nix, чтобы заявить об этом).
Что касается ваших звонков в стандартные API Windows, это все хорошо. Да, они довольно стабильны сами по себе. Помещение Доступа в соединении открывает больше. Но этот процесс все еще запускается в сети, и риски, о которых я и другие уже упоминали, все еще применяются. Небольшой процесс все еще является процессом, и он по-прежнему уязвим для нестабильности. Просто не стоит останавливать весь сервер, когда один клиентский процесс становится бесполезным, если этого можно избежать, перемещая двоичные файлы, локальные для клиента.
Да, меньшие процессы с более коротким сроком службы имеют меньший риск отказа и, следовательно, меньший риск причинения плохих вещей, которые мы описали. Я достаточно консервативен в своих убеждениях администрации, поэтому я не хотел бы видеть это в моем окружении. И, может быть, это нормально в вашей среде, я не знаю.
Несмотря на то, что я чувствую по поводу моего бывшего кашля, я не хочу видеть ее казненной, и я админ.
Сказав это, вы не дали нам много опыта, поэтому мне придется сделать несколько предположений.
Я не могу сказать вам конкретно, почему некоторым администраторам не нравятся файлы.exe на их общих ресурсах. Могут возникнуть проблемы при установке, например, при запуске исполняемых файлов из общих папок сервера. Вы также делаете довольно большое предположение, что ваш исполняемый файл не требует запуска с правами администратора. Как бы вы узнали?
Я скажу вам, что если вы занимаетесь продажей программ, по крайней мере, в среде Windows, гораздо удобнее для администратора распространять ваши программы в формате msi. Я не могу себе представить, что у них будут сомнения по поводу наличия msi на их общих ресурсах сервера.
Обновлено, чтобы добавить:
Тони, с течением времени вы обнаружите, что, если вы еще этого не сделали, все больше и больше окружающих чувствуют необходимость быть заблокированными. Юридически или нет, но в наше время это имеет смысл сделать. Хотя время, затрачиваемое на то, чтобы сделать вашу программу максимально адаптированной к этому сценарию, может быть значительным, я считаю, что в долгосрочной перспективе она будет приносить ОГРОМНЫЕ выгоды (в то время как попытка сохранить OUT цикла в sysadmin не будет).
Сисадмины не в том, чтобы мешать людям выполнять свою работу. Наоборот. Если есть кто-то, кого вы хотите иметь в качестве друга по другую сторону вызова службы технической поддержки, это системный администратор, пытающийся заставить ваше программное обеспечение работать. Облегчение развертывания и обновления программного обеспечения для него / нее - это то, где вы хотите быть.
Существует множество причин, по которым администратор предпочел бы, чтобы в сети не было исполняемых файлов, как перечисляли другие.
What can I do to help explain to IT departments that my utility is benign
Ничего такого. Их политика установлена, и вы, как посторонний, не можете ее контролировать, если только кто-то достаточно важный в компании не нуждается (или не хочет) в вашей программе в сети.
Некоторым администраторам не нравится, когда исполняемые файлы запускаются из общих папок только потому, что Windows предупреждает об этом. Я думаю, что это защита Windows, чтобы другие программы (например, вирусы) не запускали удаленные exes-файлы без авторизации, но это другой случай.
Однако для этого нет большой проблемы. Что на самом деле делает компьютер, так это считывает exe-файл в память и запускает его.
Однако есть некоторые программы, которые читают файлы из его каталога exe и которые, вероятно, не будут работать должным образом при выполнении через сеть, в основном это программы, которые имеют внешние зависимости, такие как общие файлы, компоненты и т. Д. Программа просто аварийно завершает работу.
Лично я не разрешаю "удаленные" exe-файлы, потому что, если я позволю, пользователь сможет загрузить все, что не требует установки, и запустить его в сети. Не круто с точки зрения безопасности - я разрешаю запускать приложения только из "C", а пользователь имеет права на чтение и выполнение "C".