Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] запуск приложения

Ответить
Настройки темы
VBS/WSH/JS - [решено] запуск приложения

Пользователь


Сообщения: 56
Благодарности: 0

Профиль | Отправить PM | Цитировать


Имеется довольно большая сетка комп*ютеров, возможно ли с помощью скрипта запустить програму только на тех пк, где есть определенное количество оперативки, допустим больше 3ГБ ?

Отправлено: 20:54, 28-10-2016

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Можно:
Скрытый текст
Код: Выделить весь код
Option Explicit

Dim strComputer

Dim objSWbemLocator
Dim objSWbemServicesEx
Dim objSWbemObjectEx

Dim lngProcessID


strComputer = "."


Set objSWbemLocator    = WScript.CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServicesEx = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")

For Each objSWbemObjectEx In objSWbemServicesEx.ExecQuery("SELECT TotalPhysicalMemory FROM Win32_ComputerSystem")
	If CSng(objSWbemObjectEx.TotalPhysicalMemory) > 3 * 2 ^ 30 Then
		If objSWbemServicesEx.Get("Win32_Process").Create("c:\Windows\System32\notepad.exe", "c:\Windows\System32", Null, lngProcessID) = 0 Then
			WScript.Echo "Success execute. PID: [" & CStr(lngProcessID) & "]."
		Else
			WScript.Echo "Execute failure."
		End If
	End If
Next

Set objSWbemObjectEx   = Nothing
Set objSWbemServicesEx = Nothing
Set objSWbemLocator    = Nothing

WScript.Quit 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:03, 28-10-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Пользователь


Сообщения: 56
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
("SELECT TotalPhysicalMemory FROM Win32_ComputerSystem") »
всегда прописывать win32 или для x64 нужно заменять на win64 ?

Последний раз редактировалось null999, 28-10-2016 в 23:21.


Отправлено: 23:13, 28-10-2016 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата null999:
всегда прописывать win32 или для x64 нужно заменять на win64 ? »
Не нужно. Win32_ComputerSystem — это имя класса: Win32_ComputerSystem class (Windows), где Win32_ является частью имени.

Отправлено: 00:38, 29-10-2016 | #4


Пользователь


Сообщения: 56
Благодарности: 0

Профиль | Отправить PM | Цитировать


cпасибо, работает, вот только можно ли убрать окно, которое после удачного запуска появляется?что бы закрить ужно каждый раз "ок" кликать

Отправлено: 10:13, 29-10-2016 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата null999:
которое после удачного запуска появляется?что бы закрить ужно каждый раз "ок" кликать »
Закомментируйте строку:
Код: Выделить весь код
			'WScript.Echo "Success execute. PID: [" & CStr(lngProcessID) & "]."
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:18, 29-10-2016 | #6


Пользователь


Сообщения: 56
Благодарности: 0

Профиль | Отправить PM | Цитировать


работает, спасибо

и подскажите еще, как так сделать с видеокартой

Отправлено: 10:37, 29-10-2016 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата null999:
и подскажите еще, как так сделать с видеокартой »
А что с видеокартой?!

Отправлено: 10:51, 29-10-2016 | #8


Пользователь


Сообщения: 56
Благодарности: 0

Профиль | Отправить PM | Цитировать


проверять, есть ли там допустим 512мб?
на что тогда поменять TotalPhysicalMemory?

Отправлено: 11:01, 29-10-2016 | #9


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата null999:
проверять, есть ли там допустим 512мб?
на что тогда поменять TotalPhysicalMemory? »
Тут, пожалуй, придётся перейти на язык с более строгой типизацией (в VBScript нет подтипа прямо соответствующего беззнаковому целому UInt).

PowerShell:
Скрытый текст
Код: Выделить весь код
Get-WmiObject -ComputerName "." -Class 'Win32_VideoController' -Property 'AdapterRAM' |`
    ForEach-Object -Process {
        if($_.AdapterRAM -gt 512Mb) {
            $o__PARAMETERS = ([WMICLASS]'\\.\Root\CimV2:Win32_Process').Create('c:\Windows\System32\notepad.exe', 'c:\Windows\System32', $Null)
            if($o__PARAMETERS.ReturnValue -eq 0) {
                Write-Host "Success execute. PID: [$($o__PARAMETERS.ProcessId)]."
            } else {
                Write-Host "Execute failure."
            }
       }
    }

У PowerShell помимо обращения к Wbem существуют и иные возможности по удалённой работе.
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:12, 30-10-2016 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] запуск приложения

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Службы - Запуск приложения bra.kreedz Microsoft Windows 7 33 19-04-2016 19:53
Загрузка - Последовательный запуск приложения Redfess Microsoft Windows 7 5 21-09-2013 02:40
Запуск приложения пользователем hide_june Microsoft Windows NT/2000/2003 0 01-08-2013 13:16
Запуск терминального приложения Rulezzz2 Microsoft Windows NT/2000/2003 2 11-03-2009 16:00
запуск DOS приложения Pupil Microsoft Windows 2000/XP 8 29-12-2003 12:42




 
Переход