Windows Script Host (WSH) & VBScript & JScript

Discussion in 'Windows' started by lisa99, 25 Aug 2008.

  1. lisa99

    lisa99 Banned

    Joined:
    15 Jul 2008
    Messages:
    359
    Likes Received:
    200
    Reputations:
    70
    Сценарии для администрирования сети

    Одно время пришлось пользоваться скриптами администрирования сервера и сети.
    Может быть кому-то пригодится.

    1.Скрипт отсылки письма при переполнении диска
    2.Скрипт добавления объекта в группу
    3.Скрипт удаления объекта из группы
    4.Скрипт определения владельца файла
    5. Скрипт резервного копирования, использующий ntbackup.exe
    (все рабочее)

    скачать
     
    11 people like this.
    1. Dimi4

      Dimi4 Чайный пакетик

      Joined:
      19 Mar 2007
      Messages:
      750
      Likes Received:
      1,046
      Reputations:
      291
      Нашлась статья от lexa:

      https://forum.antichat.ru/thread20463.html

      Ну и я обещал сборник VBS:

      http://rapidshare.com/files/164733497/VBscript.zip.html

      File VBscript.zip (8290 KB) uploaded!
       
      #2 Dimi4, 17 Nov 2008
      Last edited: 17 Nov 2008
      1. Dimi4

        Dimi4 Чайный пакетик

        Joined:
        19 Mar 2007
        Messages:
        750
        Likes Received:
        1,046
        Reputations:
        291
        Еще, помню что у многих, в том числе и у меня возникала проблема сделать форму выбора файла на vbs. Приведу пример как єто сделать.
        Code:
        Set objDialog = CreateObject("UserAccounts.CommonDialog")
        objDialog.Filter = "Dimi4 ©"
        objDialog.FilterIndex = 2
        objDialog.InitialDir = "C:\"
        intResult = objDialog.ShowOpen
        If intResult = 0 Then
        MsgBox "Вы не выбрали файл!", vbInformation
        Else
        Wscript.Echo objDialog.FileName
        End If
        
        +

        Реализация выбора папок.

        Code:
        option explicit
        Dim oArgs, NomFichier
        'Optional argument : the encoded filename
        NomFichier=""
        Set oArgs = WScript.Arguments
        Select Case oArgs.Count
        Case 0 'No Arg, popup a dialog box to choose the file
        NomFichier=BrowseForFolder("Choose an encoded file", &H4031, &H0011)
        Case 1
        If Instr(oArgs(0),"?")=0 Then '-? ou /? => aide
        NomFichier=oArgs(0)
        End If
        Case Else
        WScript.Echo "Too many parameters"
        End Select
        Set oArgs = Nothing
        
        If NomFichier<>"" Then
        Dim fso
        Set fso=WScript.CreateObject("Scripting.FileSystemObject")
        If fso.FileExists(NomFichier) Then
        Dim fic,contenu
        Set fic = fso.OpenTextFile(NomFichier, 1)
        Contenu=fic.readAll
        fic.close
        Set fic=Nothing
        
        Const TagInit="#@~^" '#@~^awQAAA==
        Const TagFin="==^#~@" '& chr(0)
        Dim DebutCode, FinCode
        Do
        FinCode=0
        DebutCode=Instr(Contenu,TagInit)
        If DebutCode>0 Then
        If (Instr(DebutCode,Contenu,"==")-DebutCode)=10 Then 'If "==" follows the tag
        FinCode=Instr(DebutCode,Contenu,TagFin)
        If FinCode>0 Then
        Contenu=Left(Contenu,DebutCode-1) & _
        Decode(Mid(Contenu,DebutCode+12,FinCode-DebutCode-12-6)) & _
        Mid(Contenu,FinCode+6)
        End If
        End If
        End If
        Loop Until FinCode=0
        WScript.Echo Contenu
        Else
        WScript.Echo Nomfichier & " not found"
        End If
        Set fso=Nothing
        Else
        WScript.Echo "Please give a filename"
        WScript.Echo "Usage : " & wscript.fullname  & " " & WScript.ScriptFullName & " <filename>"
        End If
        
        Function Decode(Chaine)
        Dim se,i,c,j,index,ChaineTemp
        Dim tDecode(127)
        Const Combinaison="1231232332321323132311233213233211323231311231321323112331123132"
        
        Set se=WSCript.CreateObject("Scripting.Encoder")
        For i=9 to 127
        tDecode(i)="JLA"
        Next
        For i=9 to 127
        ChaineTemp=Mid(se.EncodeScriptFile(".vbs",string(3,i),0,""),13,3)
        For j=1 to 3
        c=Asc(Mid(ChaineTemp,j,1))
        tDecode(c)=Left(tDecode(c),j-1) & chr(i) & Mid(tDecode(c),j+1)
        Next
        Next
        'Next line we correct a bug, otherwise a ")" could be decoded to a ">"
        tDecode(42)=Left(tDecode(42),1) & ")" & Right(tDecode(42),1)
        Set se=Nothing
        
        Chaine=Replace(Replace(Chaine,"@&",chr(10)),"@#",chr(13))
        Chaine=Replace(Replace(Chaine,"@*",">"),"@!","<")
        Chaine=Replace(Chaine,"@$","@")
        index=-1
        For i=1 to Len(Chaine)
        c=asc(Mid(Chaine,i,1))
        If c<128 Then index=index+1
        If (c=9) or ((c>31) and (c<128)) Then
        If (c<>60) and (c<>62) and (c<>64) Then
        Chaine=Left(Chaine,i-1) & Mid(tDecode(c),Mid(Combinaison,(index mod 64)+1,1),1) & Mid(Chaine,i+1)
        End If
        End If
        Next
        Decode=Chaine
        End Function
        
        Function BrowseForFolder(ByVal pstrPrompt, ByVal pintBrowseType, ByVal pintLocation)
        Dim ShellObject, pstrTempFolder, x
        Set ShellObject=WScript.CreateObject("Shell.Application")
        On Error Resume Next
        Set pstrTempFolder=ShellObject.BrowseForFolder(&H0,pstrPrompt,pintBrowseType,pintLocation)
        BrowseForFolder=pstrTempFolder.ParentFolder.ParseName(pstrTempFolder.Title).Path
        If Err.Number<>0 Then BrowseForFolder=""
        Set pstrTempFolder=Nothing
        Set ShellObject=Nothing
        End Function
        + Попроще:
        Code:
        Set objDialog = CreateObject("SAFRCFileDlg.FileOpen")
        intResult = objDialog.OpenFileOpenDlg
        WScript.Echo "Результат операции: " & CStr(intResult)
        WScript.Echo "Выбран файл: " & objDialog.FileName
         
        #3 Dimi4, 17 Nov 2008
        Last edited: 17 Nov 2008
        1. Dimi4

          Dimi4 Чайный пакетик

          Joined:
          19 Mar 2007
          Messages:
          750
          Likes Received:
          1,046
          Reputations:
          291
          Наглядный пример циклов в VBS. Писал давно, что бы было интереснее сделал типа игры.
          Code:
          set WshShell = WScript.CreateObject("WScript.Shell")
          Dim Res,Text,Title, MyValue, Response
          Title="Dimi4 ©"
          Randomize
          Do Until Response = vbNo
             MyValue = Int((10 * Rnd) + 1)   
             strMenu="Я загадав число від нуля до десяти" & VbCrLf
          strMenu=strMenu & "Спробуйте його відгадати " & VbCrLf
          tb1=InputBox(strMenu,Title)
          if tb1 = MyValue then
          msgbox("Ви вгадали число")
          end if
          if tb1 <> MyValue then
          MsgBox("Упс.... Ви не вгадали. ") & vbsrlf & ("Я загадав ") & MyValue
           Response = MsgBox ("Загадати ще раз? ", vbYesNo, Title)
           end if
          Loop
          
           
          1. Dimi4

            Dimi4 Чайный пакетик

            Joined:
            19 Mar 2007
            Messages:
            750
            Likes Received:
            1,046
            Reputations:
            291
            Вот из-этого можно сделать корявенький мониторинг. Хз, может для кого-то из админов и пригодиться. Проверяет запущеный ли процесс.
            Code:
            Set Processes = GetObject("winmgmts://localhost") 
            Set myProcEnum = Processes.ExecQuery("select * from Win32_Process") 
            myProc = False 
            For Each Proc In myProcEnum 
                If Proc.Name = "notepad.exe" Then 
                    myProc = True 
                End If 
            Next 
            If Not myProc Then 
                WScript.Echo "Что то я НЕ вижу что запущен Блокнот." & vbNewLine & "Ща я его запушу!..." 
                Set WshShell = CreateObject("WScript.Shell") 
                WshShell.Run "notepad.exe", 1, true 
            
            End If  
             
            1 person likes this.
            1. lisa99

              lisa99 Banned

              Joined:
              15 Jul 2008
              Messages:
              359
              Likes Received:
              200
              Reputations:
              70
              перезалей, плз...или как его лучше искать в сети? формулировочку сборника..можно? именно этого?
               
              1. Dimi4

                Dimi4 Чайный пакетик

                Joined:
                19 Mar 2007
                Messages:
                750
                Likes Received:
                1,046
                Reputations:
                291
                Перезалил. http://d.lsass.us/374
                 
                2 people like this.
                1. Nenorma

                  Nenorma New Member

                  Joined:
                  3 Mar 2009
                  Messages:
                  6
                  Likes Received:
                  0
                  Reputations:
                  0
                  Нужно было окошко запустить через эксплорер и спрятать его
                  проблему решил через следующий скрипт whs

                  Dim objShell

                  Const WINDOWHIDDEN=0
                  Const WINDOWNORMAL=1
                  Const WINDOWMINIMIZE=2
                  Const WINDOWMAXIMIZE=3

                  Set objShell=CreateObject("wscript.shell")


                  strCommand="iexplore здесь http адрес страницы"

                  objShell.Run strCommand,WINDOWHIDDEN,True
                   
                  Loading...
                  Similar Threads - Windows Script Host
                  1. Crot83
                    Replies:
                    1
                    Views:
                    5,508