Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования. Часть 2

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

ShriEkeR (23-05-2011 23:06): Автоматизация администрирования. Часть 3  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

yazzi

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Код:
 
Option Explicit
Dim Name
Dim Version
Dim InstallDate
Dim HelpLink
Dim HelpTelephone
Dim Publisher
Dim StrTemp
Dim a
Dim Flag
Dim StrComputer
Dim objReg
Const HKEY_LOCAL_MASHINE=&H80000002
Const ForWriting = 2
'  On Error Resume Next
  StrComputer=InputBox("ВВедите имя компьютера", "ВВод имени компьютера")
  StrTemp=""
  Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\"& strcomputer &"\root\default:StdRegProv")
  GetSoftInfo "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
  Name=Split(Name,";",-1,1)
  Version=Split(Version,";",-1,1)
  InstallDate=Split(InstallDate,";",-1,1)
  HelpLink=Split(HelpLink,";",-1,1)
  HelpTelephone=Split(HelpTelephone,";",-1,1)
  Publisher=Split(Publisher,";",-1,1)
  StrTemp=""
  a=0
  Flag=False
  While Flag <> True  
    If Name(a)=""  Then  
      Flag=True  
    Else  
      StrTemp=StrTemp & "[InstalledProducts" & a & "]" & vbCrLf &_
      "ProductName=" & Name(a) & vbCrLf &_
      "Version=" & Version(a) & vbCrLf &_
      "Publisher=" & Publisher(a) & vbCrLf &_
      "ProductID=?" & vbCrLf &_
      "ProductKey=?" & vbCrLf &_
      "HelpLink=" & HelpLink(a) & vbCrLf &_
      "HelpTelephone=" & HelpTelephone(a) & vbCrLf &_
      "InstallDate=" & InstallDate(a) & vbCrLf &_
      "RegCompany=?" & vbCrLf &_
      "RegOwner=" & vbCrLf & vbCrLf
      a =a +1
    End If
  Wend
  TextOut StrTemp, "D:\temp\123\out.txt"
  WScript.Echo "End"
 
'-----------------------------------------------------------------
Function GetSoftInfo(strKey)
  Dim intRes
  Dim sNames
  Dim Types
  Dim Param
  Dim Val
  Dim strSubKey
  Dim i
  Dim j
  Dim TimeCounter
  Dim CountName
  Dim CountVersion
  Dim CountHelpLink
  Dim CountInstallDate
  Dim CountHelpTelephone
  Dim CountPublisher
  CountName=0
  CountVersion=0
  CountHelpLink=0
  CountInstallDate=0
  CountHelpTelephone=0
  CountPublisher=0
  On Error Resume Next
  'Чтение параметров раздела
  intRes=objReg.EnumValues(HKEY_LOCAL_MASHINE, strKey, sNames, Types)
  If intRes <> 0 Then
    StrERROR= StrERROR & ": не удалась прочитать раздел ""HKEY_LOCAL_MASHINE\" & strKey & """" & vbCrLf
    ErrorCounter=1
  End If
  If IsArray(sNames) Then
    i=0
    For Each Param In sNames
      If Types(i)=1 Then
        intRes=objReg.GetStringValue(HKEY_LOCAL_MASHINE, strKey, Param, Val)
      Elseif Types(i)=2 Then
        intRes=objReg.GetExpandedStringValue(HKEY_LOCAL_MASHINE, strKey, Param, Val)
      Elseif Types(i)=3 Then
        intRes=objReg.GetBinaryValue(HKEY_LOCAL_MASHINE, strKey, Param, Val)
      Elseif Types(i)=4 Then
        intRes=objReg.GetDWORDValue(HKEY_LOCAL_MASHINE, strKey, Param, Val)
      Elseif Types(i)=7 Then
        intRes=objReg.GetMultiStringValue(HKEY_LOCAL_MASHINE, strKey, Param, Val)
      End If
      If intRes <> 0 Then
        StrERROR= StrERROR & ": не удалась прочитать значение параметра ""HKEY_CURRENT_USER\" & _
               strKey & "\" & Param & """" & vbCrLf
      End If
      If Types(i)=3 Then
        For j=0 To UBound(Val)
          Val(j)=Right("00" & Hex(Val(j)), 2)
        Next
        Val=Join(Val)
      Elseif Types(i)=7 Then
        Val=vbCrLf & Join(Val, vbCrLf)
      End If
      If Param="DisplayName" Then
        Name=Name & Val & ";"
        CountName=1
      ElseIf Param="DisplayVersion" Then
        Version=Version & Val & ";"
        CountVersion=1
      ElseIf Param="HelpLink" Then  
        HelpLink=HelpLink & Val & ";"
        CountHelpLink=1
      ElseIf Param="InstallDate" Then
        InstallDate=InstallDate & Val & ";"
        CountInstallDate=1
      ElseIf Param="HelpTelephone" Then
        HelpTelephone=HelpTelephone & Val & ";"
        CountHelpTelephone=1
      ElseIf Param="Publisher" Then
        Publisher=Publisher & Val & ";"
        CountPublisher=1
      End If  
        i=i + 1
        If TimeCounter=4 Then
        TimeCounter=0
        End If
        TimeCounter=TimeCounter + 1
    Next
    If CountName=1 Then  
      If CountVersion=0 Then
        Version=Version & ";"
      End If
      If CountHelpLink=0 Then
        HelpLink=HelpLink & ";"
      End If
      If CountInstallDate=0 Then
        InstallDate=InstallDate & ";"
      End If
      If CountHelpTelephone=0 Then
        HelpTelephone=HelpTelephone & ";"
      End If
      If CountPublisher=0 Then
        Publisher=Publisher & ";"
      End If
    End If
  End If
  'Обход подразделов
  intRes=objReg.EnumKey(HKEY_LOCAL_MASHINE, strKey, sNames)
  If intRes <> 0 Then
    StrERROR= StrERROR & ": не удалась прочитать подразделы ""HKEY_CURRENT_USER\" & strKey & """" & vbCrLf
    ErrorCounter=1
  End If
  If IsArray(sNames) Then
    For Each strSubKey In sNames
      GetSoftInfo strKey & "\" & strSubKey
    Next
  End If
  If Err.Number <> 0 Then
    StrERROR=StrERROR & "GetSoftInfo: Number: " & Err.Number & " Description: " & Err.Description & vbCrLf
    Err.Clear
    ErrorCounter=1
  End If
End Function
 
'-----------------------------------------------------------------
' Процедура для записи информации в файл  
Sub TextOut (Text, File)
  ' Объявляем переменные
  Dim  objFSO, FOut  
  ' Создаем объект FileSystemObject
  Set  objFSO=WScript.CreateObject("Scripting.FileSystemObject")
  ' Открываем выходной файл для записи
  Set  FOut=objFSO.OpenTextFile (File,ForWriting,true)
  ' Записываем текстовую строку в файл
  FOut.WriteLine Text
  ' Закрываем выходной файл
  FOut.Close
End Sub
 


Всего записей: 98 | Зарегистр. 14-08-2007 | Отправлено: 10:49 18-07-2008 | Исправлено: yazzi, 11:03 18-07-2008
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования. Часть 2
ShriEkeR (23-05-2011 23:06): Автоматизация администрирования. Часть 3


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru