На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Windows
1. Указывайте версию Вашей ОС.
2. Запрещается размещать запросы и ссылки на кряки, серийники и т.п., а также вопросы нарушения лицензии ПО и его взлома.
3. Не разрешается давать советы из разряда "Поставь Linux".
4. Переустановка ОС - крайнее и безотказное лекарство, которое знают все. В таких советах никто не нуждается.
5. При публикации скриптов пользоваться тегами code. Тип подсветки кода выбирать строго в соответствии с языком публикуемого кода.
6. Прежде чем задать вопрос, обязательно загляните в FAQ и следуйте написанным рекомендациям для устранения проблемы. И если не помогло, а поиск по разделу не дал результатов - только тогда задавайте вопрос на форуме.
7. Вопросы, связанные с проблемами ПО, задавайте в разделе Программное обеспечение
Модераторы: Akina
Страницы: (22) « Первая ... 14 15 [16] 17 18 ...  21 22  ( Перейти к последнему сообщению )  
> Полезные скрипты , WSH (js, vbs) + WMI
    интересует скриптик для отключения/включения сетевого интерфейса...
      Здравствуйте!
      Поражен вашими знаниями, отличный форум, рад что нашел его...

      У меня не много вопросов...

      Код взят с этой темы, он добавляет сетевой диск на основание заметки у групп...

      ExpandedWrap disabled
        on error resume next
        set objNet=CreateObject("wscript.network")
        UsrName=objNet.Username
         
        strUsrDN=GetUserDN(usrname)
         
        dim lst
        lst=GetMountArray(strUsrDN)
         
        for i=1 to ubound(lst)
          if lst(i,1)="U:" then
             objNet.MapNetworkDrive lst(i,1), lst(i,2)&UsrName
          else
             objNet.MapNetworkDrive lst(i,1), lst(i,2)
          end if
        next
         
        Function GetUserDN(username)
            Dim objConnection
            Dim objCommand
            Dim objRecordSet
            Set objConnection = CreateObject("ADODB.Connection")
            objConnection.Open "Provider=ADsDSOObject;"
            Set objCommand = CreateObject("ADODB.Command")
            objCommand.ActiveConnection = objConnection
            objCommand.CommandText="<LDAP://dc=DOMAINNAME,dc=ru>;(&(objectCategory=User)(samaccountname="&username&"));ADsPath;subtree"
            Set objRecordSet=objCommand.Execute
            If objRecordSet.RecordCount=0 Then
                GetUserDN=""
                Else
                strADsPath=objRecordset.Fields("ADsPath")
                Set objUser=GetObject(strADsPath)
                objUser.GetInfo
                GetUserDN=objUser.Get("distinguishedName")
            End If
            objConnection.Close
        End Function
         
         
        rem ------------------------------------------------------------
        rem GetFreeDrive функция поиска свободной буквы диска по списку.
        rem Принимает параметр в формате "A,B,C" где A,B,C буквы дисков.
        rem Выполняет последовательный перебор до первой свободной.
        rem В случае занятости всех возвращает пустую строку "".
        rem ------------------------------------------------------------
        function GetFreeDrive(DriveList)
        Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
        found=""
        while (len(DriveList)>0 and found="")
           drv=left(DriveList,1)&":"
           Set colDisks = objWMIService.ExecQuery("Select * from Win32_LogicalDisk where DeviceID='"&drv&"'")
           if (colDisks.Count>0) then
              if len(DriveList)>2 then
                 DriveList=mid(DriveList,3)
              else
                 DriveList=""
              end if
           else
              found=drv
           end if
        wend
        GetFreeDrive=found
        end function
        rem ------------------------------------------------------------
         
         
        rem ------------------------------------------------------------
        rem GetMountArray Создает массив соответствий диск-путь.
        rem Принимает параметром пользовательский DistinguishedName.
        rem Возвращает двумерный массив ("Буква диска", "путь").
        rem ------------------------------------------------------------
        function GetMountArray(strUserDN)
        Set objUser=GetObject("LDAP://"&strUserDN)
        grps=objUser.GetEx("memberOf")
        dim Groups
        redim Groups(ubound(grps),2)
        size=0
          for each grp in grps
              On Error Resume Next
              Dim objGroup
              Set objGroup=GetObject("LDAP://"&grp)
              Const E_ADS_PROPERTY_NOT_FOUND  = &h8000500D
              descr=""
              descr=objGroup.Get("info")
              If err.number <> E_ADS_PROPERTY_NOT_FOUND Then
            if (left(descr,1)="(") then
               size=size+1
               pos=InStr(descr,")")
               letters=mid(descr,2,pos-2)
               path=mid(descr,pos+1)
               drv=GetFreeDrive(letters)
               Groups(size,1)=drv
               Groups(size,2)=path
            end if
              End If
          next
        dim Data
        redim Data(size,2)
        for i=1 to size
          Data(i,1)=Groups(i,1)
          Data(i,2)=Groups(i,2)    
        next
         
          
        GetMountArray=data
        end function
        rem ------------------------------------------------------------
         
        rem ------------------------------------------------------------
        rem ParseVariables функция поиска переменных в строке и подстановки значений.
        rem возвращает обработанную строку
        rem ------------------------------------------------------------
        function ParseVariables(strLine)
        set objNet=CreateObject("wscript.network")
        str=replace(lcase(strLine),"%username%",objNet.UserName)
        str=replace(str,"%computername%",objNet.ComputerName)
        ParseVariables=str
        end function


      Нужно ли в нем еще что то менять?
      Могу ли я его просто вставить в групповую политику в сценария на пользователя в вход ?

      Спасибо)
      Сообщение отредактировано: PokerFlat -
        Цитата mr.Neo @
        интересует скриптик для отключения/включения сетевого интерфейса...

        Здравствуйте.. Вот скрипт который пингует хост и по качеству пинга выключает и включает сеть
        Прикреплённый файлПрикреплённый файлScripts_for_Alex.7z (3.35 Кбайт, скачиваний: 146)
          Есть у кого внятные примеры работы с ODBC на VBScript/JScript?
            Цитата mr.Neo @
            интересует скриптик для отключения/включения сетевого интерфейса...

            Сообщение N-22 в этой теме
              Цитата Спящий @
              Есть у кого внятные примеры работы с ODBC на VBScript/JScript?
              Уже нашел. Не надо.
                Есть интересная задача , которую хотелось бы решить централизованно с помощью скриптов , а именно : Создание профиля пользователя на локальной машине.
                Скоро у меня грядет перестановка домена , скрипты для выброса машин из домена, переименование профиля пользователя на локальной машине(к сожалению нет возможности использовать перемещаемые профили), создание всей AD, и присоединение всех машин к новому домену с последующей перезагрузкой я худо бедно написал , а с этой задачей даже не знаю с какого конца начать ...
                Если у кого был опыт разработки подобного или может натолкнете на мысль ... Заранее благодарен .
                  Цитата viki1976 @
                  Есть интересная задача , которую хотелось бы решить централизованно с помощью скриптов , а именно : Создание профиля пользователя на локальной машине.
                  Скоро у меня грядет перестановка домена , скрипты для выброса машин из домена, переименование профиля пользователя на локальной машине(к сожалению нет возможности использовать перемещаемые профили), создание всей AD, и присоединение всех машин к новому домену с последующей перезагрузкой я худо бедно написал , а с этой задачей даже не знаю с какого конца начать ...
                  Если у кого был опыт разработки подобного или может натолкнете на мысль ... Заранее благодарен .

                  Есть утилита от sysinternals называется moveuser.exe. Работает в командной строке, позволяет премещать настроенный профиль пользователя на тот который нужно, проверенно работает корректно. Таким образом переводил своих юзверей на домен с новеля. К сожалению скрипта готового не осталось, было это года 2 назад
                    К слову о скриптах, в частности об использовании WMI.
                    Теперь в дополнение к Scriptomatic2 появился не менее удобный WMICodeCreator. Обе тулзы свободно берутся на сайте Майкрософт.
                      Здравствуйте!
                      Подскажите пожалуйста, как реализовать изменение ip адреса сетевого адаптера через wmi? (на vbs)

                      ExpandedWrap disabled
                        strComputer = "."
                        Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
                        Set colNetAdapters = objWMIService.ExecQuery _
                        ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
                        strIPAddress = Array("192.168.0.3")
                        strSubnetMask = Array("255.255.255.255")
                        strGateway = Array("192.168.1.100")
                        strGatewayMetric = Array(1)
                        For Each objNetAdapter in colNetAdapters
                        errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
                        errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
                        arrDNSServers = Array("192.168.1.100", "192.168.1.200")
                        objNetAdapter.SetDNSServerSearchOrder(arrDNSServers)
                        Next

                      Этот скрипт работает, но, он меняет все параметры, маску, шлюз и днс.
                      Как можно сделать чтобы этот скрипт менял ТОЛЬКО ip?
                      Ситуация - машина в сети, только разлилась и получила от dhcp ip,mask,gateway,dns. Нужно при сохранении mask,gateway,dns (выданных dns-ом) изменить в ip адресе последний разряд (пример - 192.168.ххх.ххх - ххх.ххх нужно поменять)
                      Сообщение отредактировано: Alexsz -
                        Цитата Alexsz @
                        машина в сети, только разлилась и получила от dhcp ip,mask,gateway,dns. Нужно при сохранении mask,gateway,dns (выданных dns-ом) изменить в ip адресе последний разряд

                        Изменить только адрес невозможно - смена dhcp на static делает все параметры соединения невалидными. Следует сохранить полученные по DHCP параметры и затем присвоить весь пакет параметров (изменить адрес, сохранить остальное) в static-конфигурации.
                          Цитата Akina @
                          Цитата
                          Изменить только адрес невозможно - смена dhcp на static делает все параметры соединения невалидными. Следует сохранить полученные по DHCP параметры и затем присвоить весь пакет параметров (изменить адрес, сохранить остальное) в static-конфигурации.

                          ОК, а как реализовать сие? (сохранить и т.д.)
                          Я немного не представляю как
                          Цитата
                          присвоить весь пакет параметров (изменить адрес, сохранить остальное) в static-конфигурации.

                          Help!
                            Ну у тебя же всё есть!!! ты же присваиваешь параметры - неужели так сложно сначала считать их значения и сохранить в переменной?
                              Цитата
                              Ну у тебя же всё есть!!! ты же присваиваешь параметры - неужели так сложно сначала считать их значения и сохранить в переменной?

                              Ув Akina! Помогите плз реализовать в скрипте, у меня недостаточно знаний :(
                                ExpandedWrap disabled
                                  strComputer = "."
                                  Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
                                  Set colNetAdapters = objWMIService.ExecQuery ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE and DHCPEnabled=TRUE")
                                  strIPAddress = Array("192.168.0.3")
                                  For Each objNetAdapter in colNetAdapters
                                    If Left(objNetAdapter.IPAddress,7) = Left(strIPAddress,7) Then
                                      strSubnetMask = objNetAdapter.IPSubnet
                                      strGateway = objNetAdapter.DefaultIPGateway
                                      strGatewayMetric = objNetAdapter.GatewayCostMetric
                                      arrDNSServers = objNetAdapter.DNSServerSearchOrder
                                      errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
                                      errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
                                      objNetAdapter.SetDNSServerSearchOrder(arrDNSServers)
                                    End If
                                  Next
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (22) « Первая ... 14 15 [16] 17 18 ...  21 22


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0517 ]   [ 15 queries used ]   [ Generated: 6.10.24, 11:26 GMT ]