The Magician

Differences

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

Link to this comparison view

Next revision
Previous revision
установка_exe-setup_через_logonscript [2026/08/11 14:11] – created 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.1786457461.txt.gz · Last modified: by jp