===== Установка exe-setup через LogonScript ===== Установка через msi-пакет легко автоматизируется с помощью //GPO AD//. Но что, если msi-пакета нету, а автоматизировать установку очень хочется? Характерным примером может послужить установка пакета //Microsoft Visual C++ Redistributable//, который распространяется в виде //SETUP.EXE// инсталлятора, поддерживающего ключи неинтерактивной установки. В первую очередь скопируем инсталлятор в папку, откуда устанавливаем обычно //msi// через //GPO AD//. Если специальной папки у нас нет - подойдет и стандартный //NETLOGON// нашего домена: \\domain.local\NETLOGON\Software\VCredist\vc_redist.x86.exe Теперь сохраним в PowerShell-файл скрипт: $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 } :!: Данный скрипт не просто установит //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// SELECT * FROM Win32_OperatingSystem WHERE ProductType = 1 AND (CSName LIKE "fff%" OR CSName LIKE "aaa%") :!: С очевидностью, политика применится после перезагрузки. {{tag>ActiveDirectory Microsoft GPO PowerShell WMI}}