Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка приложений (http://forum.oszone.net/forumdisplay.php?f=61)
-   -   [решено] Автоматичкая установка ПО только по необходимости (http://forum.oszone.net/showthread.php?t=243056)

ArtyomGl 20-09-2012 13:20 1991988

Автоматичкая установка ПО только по необходимости
 
Столкнулся с такой проблемой:
необходимо распространять определённое ПО автоматически через gpo.
проблема в том, что на некоторых станциях уже стоит та или иная версия программы.
подскажите как сделать, что бы ПО ставилось только при отсутствии на клиенте любой версии программы.

ArtyomGl 21-09-2012 15:04 1992572

применил скрипт для wmi фильтра.
почему то фильтр игнорируется и программа всё равно ставится.

Код:

SELECT * FROM Win32_Product WHERE not (caption like '%Adobe Acrobat%' OR Caption Like '%Adobe Reader%')

Iska 21-09-2012 16:26 1992617

ArtyomGl, если бы у Вас на целевых машинах были установлены только «Сaption like '%Adobe Acrobat%'|'%Adobe Reader%'»… Но ведь к Вас наверняка на них установлены и иные пакеты, не только Adobe Acrobat и Adobe Reader. Посему данный фильтр всегда будет возвращать истину, если будет хотя бы один иной пакет, кроме указанных в условии.

Попробуйте посмотреть на этот пример: What you can do, should do and should NOT do with GPOs: Inverting WMI filters.

ArtyomGl 24-09-2012 12:34 1993911

WMI для этого не подходит буду ставить с помощью скрипта.

ArtyomGl 28-09-2012 09:31 1995965

Код:

On Error Resume Next
strComputer = "."
Count = 0
WScript.Sleep 30000
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_Product WHERE Caption Like 'Adobe Acrobat%' OR Caption Like 'Adobe Reader%'",,48)
For Each objItem in colItems
    Count = Count + 1
Next
If Count = 0 Then
    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run ("""\\путь до установочника"" /quiet /norestart")

End If

Вот так решил проблему.

Iska 28-09-2012 13:56 1996101

Код:

For Each objItem in colItems
    Count = Count + 1
Next
If Count = 0 Then
    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run ("""\\путь до установочника"" /quiet /norestart")

End If


Код:

If colItems.Count = 0 Then
    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run ("""\\путь до установочника"" /quiet /norestart")
End If


ArtyomGl 01-10-2012 09:32 1997569

Спасибо, так тоже работает.


Время: 12:47.

Время: 12:47.
© OSzone.net 2001-