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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] запуск приложения (http://forum.oszone.net/showthread.php?t=320237)

null999 28-10-2016 20:54 2682585

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

Iska 28-10-2016 23:03 2682619

Можно:
Скрытый текст
Код:

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


null999 28-10-2016 23:13 2682622

Цитата:

Цитата Iska
("SELECT TotalPhysicalMemory FROM Win32_ComputerSystem") »

всегда прописывать win32 или для x64 нужно заменять на win64 ?

Iska 29-10-2016 00:38 2682630

Цитата:

Цитата null999
всегда прописывать win32 или для x64 нужно заменять на win64 ? »

Не нужно. Win32_ComputerSystem — это имя класса: Win32_ComputerSystem class (Windows), где Win32_ является частью имени.

null999 29-10-2016 10:13 2682678

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

Iska 29-10-2016 10:18 2682684

Цитата:

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

Закомментируйте строку:
Код:

                        'WScript.Echo "Success execute. PID: [" & CStr(lngProcessID) & "]."

null999 29-10-2016 10:37 2682687

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

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

Iska 29-10-2016 10:51 2682692

Цитата:

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

А что с видеокартой?!

null999 29-10-2016 11:01 2682698

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

Iska 30-10-2016 00:12 2682906

Цитата:

Цитата 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 существуют и иные возможности по удалённой работе.

null999 30-10-2016 09:29 2682949

большое спасибо за помощь


Время: 09:04.

Время: 09:04.
© OSzone.net 2001-