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

    ExpandedWrap disabled
      Sub AddGroup (Domain, Login)
      On Error Resume Next
      Set objDomain = GetObject("WinNT://" & Domain)
      For Each ObjGroup In objDomain
          If ObjGroup.class = "Group" Then  
              strGroup = strGroup & ObjGroup.name & ";"
          End If  
      Next
      Msgbox strGroup


    Много групп вываливается. Какие есть критерии для отбора, и как в кде их указать?
      Цитата Bugavka @
      Какие есть критерии для отбора...
      Свойства объекта типа ГРУППА, например. Если не знаете списка свойств, то загляните в MSDN:
      http://msdn.microsoft.com/en-us/library/aa706021.aspx
      Цитата Bugavka @
      ... как в кде их указать?
      Всё зависит от того, что именно нужно выбрать.
        Не нашел :( мне нужно отобрать по Group Scope и Group Type, нужны global and security.
          Нашел ObjGroup.get("groupType")

          ' Constants taken from ADS_GROUP_TYPE_ENUM
          ADS_GROUP_TYPE_DOMAIN_LOCAL_GROUP = 4
          ADS_GROUP_TYPE_GLOBAL_GROUP = 2
          ADS_GROUP_TYPE_LOCAL_GROUP = 4
          ADS_GROUP_TYPE_SECURITY_ENABLED = -2147483648
          ADS_GROUP_TYPE_UNIVERSAL_GROUP = 8

          то есть если проверять по 2 то выводит только Глобальные а Секьюрити не нашел. Но судя по апплету AD users and computers не сильно оно и поможет, так как тип одинаковый у нужных групп и "ненужных"
          Сообщение отредактировано: Bugavka -
            помогите со скриптом пожалуйста...
            есть список програм его нужно добавить в "политики ограниченного использования программ" маска по пути... можно в текстовик создать либо экспортировать с тестовой машинки...
            может тут даже скрипт не нужен, просто в меню пункт экспорт есть, а как импотировать его так и не нашёл... гугл не помог, возможно просто запросы не те делал (
              Есть ВБ6 код, который возврашает залокированные ресурсы на удалённом сервере. Код перестал работать либо при переходе на АД, либо при переходе на WinServer2003. У кого-нибудь есть подобный скрипт для АД + WinServer2003?
              ExpandedWrap disabled
                    'Uses ActiveDS.tlb
                    
                    Dim fso As IADsFileServiceOperations
                    Dim col As IADsCollection
                    Dim item As IADsResource
                    
                    Dim strComputer As String
                    
                    strComputer = "1mmsql1"
                    
                    Set fso = GetObject("WinNT://" & strComputer & "/LanmanServer")
                    Set col = fso.Resources
                    
                    For Each item In col
                        On Error Resume Next
                            'Do not display pipes
                            If Err.Number = 0 Then
                                Debug.Print item.Name & " " & item.User & " " & item.Path & " " & item.LockCount
                            End If
                        On Error GoTo 0
                        
                    Next item
                Здравствуйте, помогите пожалуйста со скриптом следующего содержания: DC под Windows 2003 St. Требуется создать logon script, который будет обходить локальную группу "Администраторы" на компьютерах домена и складывать результаты в файл \\DomainContr\SomeFolder\LocalAdmList.txt в формате

                ComputerName

                User1
                User2
                ______________

                После отработки скрипта скрипт удалялся из Logon Script. Заранее спасибо.
                Сообщение отредактировано: MEPJIuH -
                  Добрый день !! Помогите пожалуйста. Есть 2 скрипта один явовский и один вбшный. Как это всё засунуть в html файл при открытии которого на экране просто будет появлятся текст который просто это всё отображает на экране. Сами по себе скрипты просто как 1.js и 1.vbs выполняются и отрабатывают так как нужно а если это всё засунуть в html то нифига не работает ((( . Заранее спасибо.


                  ExpandedWrap disabled
                    /* Описание: Вывод на экран сетевого имени компьютера и имени      */
                    /*           пользователя                                          */
                    /*******************************************************************/
                    var objNet;
                    //Создаем объект WshNetwork
                    objNet = WScript.CreateObject("WScript.Network");
                    //Выводим на экран свойства ComputerName и UserName
                    WScript.Echo("Имя машины:",objNet.ComputerName);
                    WScript.Echo("Имя пользователя:",objNet.UserName);
                    WScript.Echo("Имя домена:",objNet.UserDomain);
                     
                    /*************  Конец *********************************************/



                  ExpandedWrap disabled
                    On Error Resume Next
                    strComputer = "localhost"
                    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
                    regValueDataMetric = "35"
                     
                    'Set colItems = objWMIService.ExecQuery ("Select * From Win32_NetworkAdapter ")
                    'Where NetConnectionID = 'Wireless Network Connection'
                     
                    'For Each objItem in colItems
                    'strMACAddress = objItem.MACAddress
                    'Wscript.Echo "MACAddress: " & strMACAddress
                    'Next
                     
                    Set colNetCard = objWMIService.ExecQuery ("Select * From Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
                     
                    For Each objNetCard in colNetCard
                    'If objNetCard.MACAddress = strMACAddress Then
                    For Each strIPAddress in objNetCard.IPAddress
                    Wscript.Echo "Description: " & objNetCard.Description
                    Wscript.Echo "IP Address: " & strIPAddress
                    Wscript.Echo "IPConnectionMetric: " & objNetCard.IPConnectionMetric
                    objNetCard.SetIPConnectionMetric(regValueDataMetric)
                    Next
                    'End If
                    Next



                  Пробовал тупо зделать создал файл 1.html засунул в него явовский скрипт он не работает таким образом .. проверил вообще выполнение скриптов вот так всё нормально работает тобишь проблема какая-то в обоих кодах в интерпритации с html. Помогите пожалуйста.

                  ExpandedWrap disabled
                    <SCRIPT LANGUAGE="JavaScript">
                    document.write("asd")  
                    </SCRIPT>



                  Конечная цель просто вывод всей этой информации на страницу. Если у кого-то есть готовое решение поделитесь пожалуйста. Заранее спасибо
                    Цитата Lachdanan @
                    а если это всё засунуть в html то нифига не работает
                    Под IE должно работать:
                    ExpandedWrap disabled
                      <SCRIPT LANGUAGE="JavaScript">
                      //Создаем объект WshNetwork
                      var objNet = new ActiveXObject("WScript.Network");
                       
                      //Выводим на экран свойства ComputerName и UserName
                      document.write("Имя машины:" + objNet.ComputerName + "<br>");
                      document.write("Имя пользователя:" + objNet.UserName + "<br>");
                      document.write("Имя домена:" + objNet.UserDomain);
                      </SCRIPT>

                    , под другими браузерами - вряд ли ...

                    Со вторым скриптом сам справишься?
                      Спасибо за 1-й всё работает с 2-м попробовал сам разобраться не получилось ((((( Помогите пожалуйста ещё раз ))))))
                        Второй скрипт примерно вот так:
                        ExpandedWrap disabled
                          <SCRIPT LANGUAGE="JavaScript">
                          regValueDataMetric = "35";
                           
                          var objLocator = new ActiveXObject("WbemScripting.SWbemLocator");
                          var objWMIService = objLocator.ConnectServer("", "\\root\\cimv2");
                          objWMIService.Security_.impersonationlevel = 3;
                           
                          var colNetCard = objWMIService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration where IPEnabled=TRUE");
                           
                          var enumObjNetCards = new Enumerator(colNetCard);
                          for (;!enumObjNetCards.atEnd();enumObjNetCards.moveNext()) {
                              var obj = enumObjNetCards.item();
                              for (var i = 0; i <= obj.IPAddress.ubound();i++) {
                                  document.write("Description: " + obj.Description + "<br>");
                                  document.write("IP Address: " + obj.IPAddress(i) + "<br>");
                                  document.write("IPConnectionMetric: " + obj.IPConnectionMetric + "<br>");
                                  obj.SetIPConnectionMetric(regValueDataMetric);
                              }
                          }
                          </SCRIPT>
                        (сейчас проверить не могу, IE недоступен)
                          Супер всё пашет спасибо большое ещё раз )))))))
                            Скрипт монтирует сетевые диски на основе членства в группах
                            В поле заметки (Notes) в параметрах группы пишем коммент в формате:
                            (буква диска)путь к сетевой папке
                            например: (t)\\server\shara\common folder


                            Если указываем букву диска "U" то цепляется папка с путем:
                            \\server\shara\common folder\Username

                            Сделано как персональная сетевая папка пользователя, доступная с любого компа в домене.
                            соответсвенно на самой шаре раздаем нужные права пользователям.

                            Если папка не существует или буква диска занята, то ничего не происходит...


                            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


                            Добавлено
                            И вопрос в догонку: на основе предыдущего скрипта как можно сделать появления ярлыка на рабочем столе на основе членства в группах...
                            Наподобие того что юзера закидываем в группу, у группы есть права доступа на сетевые программки, и автоматом появляется ярлычок на эту программку...
                              Помогите кто может с написанием скрипта vbs который удаляет файлы по маске во всех подпапках указанных папок, ну к примеру по адресу: C:\Новая папка. У меня почему то не выходит. ОС Windows 2000.
                                ExpandedWrap disabled
                                  del /S "C:\Новая папка\*.txt"
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (22) « Первая ... 10 11 [12] 13 14 ...  21 22


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0558 ]   [ 15 queries used ]   [ Generated: 7.11.24, 23:52 GMT ]