Это старая версия документа!


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

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

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

Дано

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

Надо

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

Решение

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

Шаг 1

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

Не забываем использовать правильную кодировку текста скрипта Windows-1251 :!:
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"
 
' Создаем объект для работы с 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
 
				end if
 
			end if
 
		Next
 
	Set colItems = Nothing
 
Set objWMIService = Nothing
 
WScript.Quit

Шаг 2

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

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

Шаг 3

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

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

Шаг 4

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

cscript c:\temp\UninstallOld1C.vbs

Источники

Только авторизованные участники могут оставлять комментарии.
программирование_и_scripting/vbscript/удаление_ненужных_платформ_1с_с_пк_под_управлением_windows.1756881604.txt.gz · Последнее изменение: 2025/09/03 06:40 — mihanik
Яндекс.Метрика