newhk
BANNED | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Народ, требуется помощь по PowerShell. Есть у меня скрипт CMD, к котором намешано всего. Там и команды CMD, и WMIC, и запуск PowerShell. Совсем уйти от CND на вряд-ли удастся, поскольку там присутствуют команды регистрации библиотек DLL для 1С-ки, а все остальное, думаю можно перевести на PowerShell. Конкретно. Есть установка софта, есть управление локальными пользователями, есть ввод компа в домен. Ввод компа в домен реализован на PowerShell, остальное пока в CMD. Уже реализовал нужный код для управления локальными пользователями. Так же пытаюсь реализовать установку софта через PS но столкнулся с проблемой. "Комментарии поместил в круглые скобки, иначе сайт ругается." Код: (Определение архитектуры ОС) $OS = Get-WmiObject -Computer localhost -Class Win32_OperatingSystem $ostype = $OS.OSArchitecture (Задаем переменную для установки 7-Zip) if ($typeos -eq "64-"){ $7zippath = "\\P59-files\soft\Auto_install\7-zip\x64" } else { $7zippath = "\\P59-files\soft\Auto_install\7-zip\x32" } echo 'Устанавливаем 7-Zip' if (!(Test-Path "$env:ProgramFiles\7-Zip")) {&$7zippath\7z.exe /S} (Задаем переменную для установки MS Office) if ($typeos -eq "64-"){ $MSOpath = "\\P59-files\soft\Auto_install\MS-Office-2010\x64" } else { $MSOpath = "\\P59-files\soft\Auto_install\MS-Office-2010\x32" } echo 'Устанавливаем MS Office 2010' if (!(Test-Path "$env:ProgramFiles\Microsoft Office")) {&$MSOpath\setup.exe /adminfile $MSOpath\MS-autosetup.MSP} (Задаем переменную для установки GoogleChrome) if ($typeos -eq "64-"){ $CHROMEpath = "\\P59-files\soft\Auto_install\google\chrome\x64" } else { $CHROMEpath = "\\P59-files\soft\Auto_install\google\chrome\x32" } echo 'Устанавливаем Google Chrome' if (!(Test-Path "$env:ProgramFiles\Google\Chrome")) { &$CHROMEpath\GoogleChromeStandaloneEnterprise.msi &$CHROMEpath\LegacyBrowserSupport_5.1.0.0_en.msi } echo 'Устанавливаем Adobe Reader DC' if (!(Test-Path "c:\Program Files (x86)\Adobe")) {&\\P59-files\soft\Auto_install\AcroRdrDC_ru_RU.exe /sAll} echo 'Устанавливаем 1С' if (!(Test-Path "$env:ProgramFiles (x86)\1cv8")){&"\\P59-files\soft\Auto_install\1C\1Cx32\1CEnterprise 8.msi" /quiet /norestart} echo 'Устанавливаем BullZIP PDF Printer' if (!(Test-Path "$env:ProgramFiles\Bullzip\")){&\\P59-files\soft\Auto_install\BullzipPDF\Setup_BullzipPDFPrinter_11_8_0_2728_PRO_EXP.exe} | Установка запускается, но все сразу, как следствие, не устанавливается ничего. Как мне сделать, чтобы PS ждал окончания уже запущенного процесса, прежде чем запускать следующий? И, может быть есть способ, запускать регистрацию библиотеки в системе, по типу, как в CMD - regsvr32 .... ? У меня пока PS умеет копировать DLL-ки Код: echo "Копируем служебные библиотеки для прогаммы 1С" if (!(Test-Path "$typeos\$fPath\components")) { New-Item -Path "$typeos\$fPath\components" -itemtype "Directory" -Force | Out-Null Get-ChildItem '\\P59-files\soft\Auto_install\1c_components' | Copy-Item -Destination C:\components -Exclude '_reg_WINDOWS.cmd' -force } |
| Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 13:21 10-04-2019 | Исправлено: newhk, 14:00 10-04-2019 |
|