Удаление ненужных платформ 1с с ПК под управлением windows

Экспорт в PDF Преобразовать страницу в формат Open Document

Дата создания: 2025/09/03 06:25 (C) mihanik

Дано

ПК под управлением Windows, на котором установлено множество разных платформ 1С.

Надо

Удалить все лишние платформы кроме нужных.

Решение

Скрипт работает на Windows любой разрядности.
Удаляются ненужные платформы любой разрядности.

Шаг 1

Создаём скрипт с именем UninstallOld1C.vbs .

Не забываем использовать правильную кодировку текста скрипта Windows-1251 :!:
Обязательно!
В скрипте через запятую или пробел указываем версии платформ 1С Предприятия, которые нужно сохранить.

Например, так:

strSaveVersions = "8.3.24.1667 8.3.24.1667"

Получается скрипт следующего содержания

UninstallOld1C.vbs
' Скрипт удаления старых/ненужных версий платформ 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

Шаг 2

Размещаем скрипт в какой-нибудь папке.

Для определённости пусть это будет папка с именем c:\temp\

Шаг 3

Запускаем командную строку от имени администратора.

Как запустить командную строку от имени администратора описано тут.

Шаг 4

Запускаем наш скрипт при помощи сервера сценариев cscript.

cscript c:\temp\UninstallOld1C.vbs

Ждём завершения работы скрипта.

Готово!

Лишние платформы 1С удалены!

Замечания

Если при запуске скрипта появится ошибка, что какая-то программа не найдена, то скорее всего может быть не найдена команда WMIC.

Начиная с Windows 11 24H2 и Windows Server 2025, утилита командной строки wmic по умолчанию не установлена в Windows.

При попытке запустить команду wmic напрямую или через какой-либо скрипт, появится ошибка о том, что команда не найдена. Вы увидите что-то вроде этого:

'wmic' is not recognized as an internal or external command, operable program or batch file.

или

wmic не является внутренней или внешней командой, исполняемой программой или пакетным файлом

Чтобы избавиться от этой ошибки нужно тут же в командной строке открытой от имени администратора выполнить команду:

DISM /Online /Add-Capability /CapabilityName:WMIC~~~~

После завершения выполнения команды можно повторно запускать скрипт.

Источники

⇑ Наверх ⇑

В моей WIKI постоянно ведётся какая-то работа со статьями.
Если у вас возникли вопросы или замечания,
можете их отправлять на почту support@mihanik.net
Только авторизованные участники могут оставлять комментарии.
программирование_и_scripting/vbscript/удаление_ненужных_платформ_1с_с_пк_под_управлением_windows.txt · Последнее изменение: 2025/09/03 12:11 — mihanik
Яндекс.Метрика