
Можно ли загрузить приложение на клиентский ПК и установить его с помощью GPO?
В настоящее время у меня есть сетевой ресурс на контроллере домена, на котором размещено программное обеспечение, и GPO для установки этого программного обеспечения на все подключенные ПК. Вопрос в том, копирует ли это программное обеспечение на клиентский компьютер или оно просто запускается из сетевого ресурса?
Если приложение запускается только из сетевого ресурса, можно ли скопировать его в локальную файловую систему и установить его оттуда с помощью GPO?
решение1
Развертывание программного обеспечения через GPO крайне ограничено и ненадежно, поскольку развертываемое вами программное обеспечение должно быть файлом .msi. Оно не будет работать с .exe или любым другим расширением файла.
Если у вас есть файл .msi в файловом ресурсе, доступном для всех компьютеров, на которых вы хотите установить программное обеспечение, выполните следующие действия:
ПРИМЕЧАНИЕ: Это фактически установит программное обеспечение на компьютер. Оно будет запущено на локальном компьютере, а не из общего файлового ресурса. Компьютер в основном просто извлекает файл установщика из сетевого ресурса и устанавливает приложение на машину.
Создайте новый объект групповой политики.
В разделе «Конфигурация компьютера» > «Политики» > «Параметры программного обеспечения» нажмите «Установка программного обеспечения», чтобы выбрать его.
Щелкните правой кнопкой мыши по пустой части окна справа и выберите «Создать» > «Пакет».
ВАЖНО: Будьте внимательны на следующем шаге. При выборе пакета необходимо перейти к расположению общего файлового ресурса, доступному для компьютеров, на которые вы хотите установить программное обеспечение. Если вы выберете его с локального диска C: сервера, сетевые компьютеры не будут иметь доступа к файлу установщика, поскольку вам необходимо использовать сетевой путь UNC (\\SERVER_NAME\share_name\installer_file_name), доступный для целевых машин.
Перейдите по пути UNC и выберите файл установщика .msi.
Выберите «Назначено» и нажмите «ОК». Ваш файл установщика появится в списке.
Следующие шаги будут зависеть от вашей настройки. Возможно, вам придется установить разрешения фильтрации безопасности для GPO, чтобы указать, на какие конкретно компьютеры вы хотите его установить, и повозиться с другими настройками разрешений. После завершения назначьте GPO OU, включающему машины, на которые должно быть установлено программное обеспечение.
Для проверки перейдите на компьютер в сети, где должно быть установлено программное обеспечение, откройте PowerShell и запустите
gpupdate /force /boot
Вы должны получить сообщение о том, что включены определенные политики... бла-бла-бла и всплывающее окно с сообщением о том, что компьютер автоматически перезагрузится через 1 минуту. Когда компьютер перезагрузится, вы можете увидеть вращающийся мигающий индикатор в течение длительного времени, прежде чем загрузится Windows. Обычно это хороший знак, означающий, что программное обеспечение устанавливается.
Однако развертывание через GPO не является самым надежным решением. Существует множество причин, по которым оно может (и обычно так и происходит) не сработать. Возможно, вам придется перезагрузить компьютер несколько раз, прежде чем он установится. Он может не устанавливаться в течение нескольких дней или вообще никогда. Иногда вам придется удалить GPO и создать его заново, чтобы он установился. В худшем случае вам придется удалить компьютер из домена, а затем снова присоединиться к домену, прежде чем программное обеспечение установится.
решение2
Мне удалось приступить к работе, создав два новых объекта групповой политики: один для копирования MSI и скрипта PowerShell, который запускался Start-Process C:\Path\to\MSI
из сетевой папки на клиентском ПК.
Второй объект групповой политики немедленно запустил задачу по запуску PowerShell и передаче аргументов для запуска MSI.
После разговора со специалистом по упаковке этот метод показался мне наиболее эффективным.
Я понял, что, вероятно, слишком усложнил это с помощью скрипта powershell. Вы можете задать немедленную задачу для запуска приложения или использовать regex run once.