The Magician

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
установка_exe-setup_через_logonscript [2026/08/11 14:11] jpустановка_exe-setup_через_logonscript [2026/08/11 18:53] (current) jp
Line 1: Line 1:
 ===== Установка exe-setup через LogonScript ===== ===== Установка exe-setup через LogonScript =====
  
-Установка через msi-пакет легко автоматизируется с помощью GPO AD. Но что, если msi-пакета нету, а автоматизировать установку очень хочется?+Установка через msi-пакет легко автоматизируется с помощью //GPO AD//. Но что, если msi-пакета нету, а автоматизировать установку очень хочется?
  
 Характерным примером может послужить установка пакета //Microsoft Visual C++ Redistributable//, который распространяется в виде //SETUP.EXE// инсталлятора, поддерживающего ключи неинтерактивной установки. Характерным примером может послужить установка пакета //Microsoft Visual C++ Redistributable//, который распространяется в виде //SETUP.EXE// инсталлятора, поддерживающего ключи неинтерактивной установки.
 +
 +В первую очередь скопируем инсталлятор в папку, откуда устанавливаем обычно //msi// через //GPO AD//. Если специальной папки у нас нет - подойдет и стандартный //NETLOGON// нашего домена:
 +
 +  \\domain.local\NETLOGON\Software\VCredist\vc_redist.x86.exe
 +Теперь сохраним в PowerShell-файл скрипт:
 +
 +<code>
 +$Installer = "\\domain.local\NETLOGON\Software\VCredist\vc_redist.x86.exe"
 +$RequiredVersion = [version]"14.44.35211.0"
 +
 +$Installed = Get-ItemProperty `
 +    "HKLM:\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x86" `
 +    -ErrorAction SilentlyContinue
 +
 +if (!$Installed -or [version]$Installed.Version.TrimStart('v') -lt $RequiredVersion) {
 +
 +    Start-Process -FilePath $Installer `
 +        -ArgumentList "/install /quiet /norestart" `
 +        -Wait
 +}
 +</code>
 +:!: Данный скрипт не просто установит //Microsoft Visual C++ Redistributable// с заданными параметрами, но сначала проверит версию и будет выполнять установку только, если установленная версия ниже той, которую мы хотим установить (//14.44.35211.0// в данном случае).
 +
 +Кладем скрипт в общую папку политики, пример:
 +
 +  \\domain.local\SysVol\domain.local\Policies\{4FA484AF-B629-4B3B-A614-F24B0AD07340}\Machine\Scripts\Startup
 +И добавляем в политику:
 +
 +//Computer Configuration → Policies → Windows Settings → Scripts (Startup/Shutdown) → Startup// 
 +
 +Пример:
 +
 +{{:ad:logon_script_install_gpo.jpg|}}
 +
 +Если нам требуется применить скрипт только для клиентских машин, имя которых начинается с //aaa// или //fff//, можем создать и установить для политики такой фильтр //WMI//
 +
 +<code>
 +SELECT * FROM Win32_OperatingSystem
 +WHERE ProductType = 1
 +AND (CSName LIKE "fff%" OR CSName LIKE "aaa%")
 +</code>
 +
 +:!: С очевидностью, политика применится после перезагрузки. 
 +{{tag>ActiveDirectory Microsoft GPO PowerShell WMI}}
установка_exe-setup_через_logonscript.1786457475.txt.gz · Last modified: by jp