Мои сайты
Частые вопросы
Полезные ссылки
Операционные системы
Программное обеспечение
Оборудование
СУБД
Кулинария
ПК под управлением Windows, на котором установлено множество разных платформ 1С.
Удалить все лишние платформы кроме нужных.
Создаём скрипт с именем UninstallOld1C.vbs .
Например, так:
strSaveVersions = "8.3.24.1667 8.3.24.1667"
Получается скрипт следующего содержания
' Скрипт удаления старых/ненужных версий платформ 1С
Option Explicit
On Error Resume Next
Dim objWMIService, colItems, objItem, objShell
Dim strComputer, strSaveVersions, strCommand
' Устанавливаем имя компьютера. По умолчанию задаём имя локального компьютера в виде "."
strComputer = "."
'Через запятую или пробел указываем версии платформ 1С Предприятия, которые нужно сохранить.
strSaveVersions = "8.3.24.1667 8.3.24.1667"
' Создаем объект для работы с WMI
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
' Получаем список установленных программ
Set colItems = objWMIService.ExecQuery("Select * from Win32_Product", , 48)
' Перебираем все установленные программы
For Each objItem in colItems
' Ищем в имени программы признаки того, что это "1С: Предприятие" версии 8.3
if instr(cstr(objItem.Name),"8.3.") then
wscript.echo "Has been found 1С 8.3: " & objItem.Name
' Проверяем необходимость удаления найденной платформы
if instr(strSaveVersions,cstr(objItem.Version)) then
' Сохраняемую платформу не удаляем
wscript.echo "It is a persisted 1C 8.3 platform: " & objItem.Name
wscript.echo objItem.Name
wscript.echo " Version: " & objItem.Version
wscript.echo " Installation date: " & objItem.InstallDate
wscript.echo String(40, "-")
else
' Если платформу сохранять не нужно, то удаляем её
wscript.echo "Removing the 1C 8.3 platform: " & objItem.Name
'Закомментированная строка-заглушка.
'strCommand = "cmd.exe /c pause"
strCommand = "wmic product where name=""" & cstr(objItem.Name) & """ call uninstall /nointeractive"
wscript.echo strCommand
' Создаем объект WScript.Shell
Set objShell = CreateObject("WScript.Shell")
objShell.Run strCommand, 0, true
Set objShell = Nothing
wscript.echo String(40, "-")
end if
end if
Next
Set colItems = Nothing
Set objWMIService = Nothing
WScript.Quit
Размещаем скрипт в какой-нибудь папке.
Запускаем командную строку от имени администратора.
Запускаем наш скрипт при помощи сервера сценариев cscript.
cscript c:\temp\UninstallOld1C.vbs
Ждём завершения работы скрипта.
Готово!
Лишние платформы 1С удалены!
Если при запуске скрипта появится ошибка, что какая-то программа не найдена, то скорее всего может быть не найдена команда WMIC.
При попытке запустить команду wmic напрямую или через какой-либо скрипт, появится ошибка о том, что команда не найдена. Вы увидите что-то вроде этого:
'wmic' is not recognized as an internal or external command, operable program or batch file.
или
wmic не является внутренней или внешней командой, исполняемой программой или пакетным файлом
Чтобы избавиться от этой ошибки нужно тут же в командной строке открытой от имени администратора выполнить команду:
DISM /Online /Add-Capability /CapabilityName:WMIC~~~~
После завершения выполнения команды можно повторно запускать скрипт.