Полезные скрипты
    , WSH (js, vbs) + WMI
  ![]()  | 
Наши проекты:
 Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту  | 
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS | 
| [216.73.216.5] | 
 
 | 
		
  | 
    Правила раздела Windows
  | Страницы: (22) « Первая ... 10 11 [12] 13 14 ... 21 22 ( Перейти к последнему сообщению ) | 
    Полезные скрипты
    , WSH (js, vbs) + WMI
  | 
         
         
         
          
           Сообщ.
           #166
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Помогите уточнить критерий.  
        
      ![]() ![]() 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 Много групп вываливается. Какие есть критерии для отбора, и как в кде их указать?  | 
    
| 
         
         
         
          
           Сообщ.
           #167
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата Bugavka @  Свойства объекта типа ГРУППА, например. Если не знаете списка свойств, то загляните в MSDN:Какие есть критерии для отбора... http://msdn.microsoft.com/en-us/library/aa706021.aspx Цитата Bugavka @  Всё зависит от того, что именно нужно выбрать.  ... как в кде их указать?  | 
    
| 
         
         
         
          
           Сообщ.
           #168
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Не нашел  
        
        мне нужно отобрать по Group Scope и Group Type, нужны global and security.   | 
    
| 
         
         
         
          
           Сообщ.
           #169
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Нашел 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 не сильно оно и поможет, так как тип одинаковый у нужных групп и "ненужных"  | 
    
| 
         
         
         
          
           Сообщ.
           #170
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          помогите со скриптом пожалуйста...  
        
      есть список програм его нужно добавить в "политики ограниченного использования программ" маска по пути... можно в текстовик создать либо экспортировать с тестовой машинки... может тут даже скрипт не нужен, просто в меню пункт экспорт есть, а как импотировать его так и не нашёл... гугл не помог, возможно просто запросы не те делал (  | 
    
| 
         
         
         
          
           Сообщ.
           #171
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Есть ВБ6 код, который возврашает залокированные ресурсы на удалённом сервере. Код перестал работать либо при переходе на АД, либо при переходе на WinServer2003. У кого-нибудь есть подобный скрипт для АД + WinServer2003? 
        
      ![]() ![]()     '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  | 
    
| 
         
         
         
          
           Сообщ.
           #172
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Здравствуйте, помогите пожалуйста со скриптом следующего содержания: DC под Windows 2003 St. Требуется создать logon script, который будет обходить локальную группу "Администраторы" на компьютерах домена и складывать результаты в файл \\DomainContr\SomeFolder\LocalAdmList.txt в формате  
        
      ComputerName User1 User2 ______________ После отработки скрипта скрипт удалялся из Logon Script. Заранее спасибо.  | 
    
| 
         
         
         
          
           Сообщ.
           #173
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Добрый день !! Помогите пожалуйста. Есть 2 скрипта один явовский и один вбшный. Как это всё засунуть в html файл при открытии которого на экране просто будет появлятся текст который просто это всё отображает на экране. Сами по себе скрипты просто как 1.js и 1.vbs выполняются и отрабатывают так как нужно а если это всё засунуть в html то нифига не работает ((( . Заранее спасибо. 
        
      ![]() ![]() /* Описание: Вывод на экран сетевого имени компьютера и имени      */ /*           пользователя                                          */ /*******************************************************************/ var objNet; //Создаем объект WshNetwork objNet = WScript.CreateObject("WScript.Network"); //Выводим на экран свойства ComputerName и UserName WScript.Echo("Имя машины:",objNet.ComputerName); WScript.Echo("Имя пользователя:",objNet.UserName); WScript.Echo("Имя домена:",objNet.UserDomain); /*************  Конец *********************************************/ ![]() ![]() 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. Помогите пожалуйста. ![]() ![]() <SCRIPT LANGUAGE="JavaScript"> document.write("asd")   </SCRIPT> Конечная цель просто вывод всей этой информации на страницу. Если у кого-то есть готовое решение поделитесь пожалуйста. Заранее спасибо  | 
    
| 
         
         
         
          
           Сообщ.
           #174
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата Lachdanan @  Под IE должно работать:а если это всё засунуть в html то нифига не работает ![]() ![]() <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> , под другими браузерами - вряд ли ... Со вторым скриптом сам справишься?  | 
    
| 
         
         
         
          
           Сообщ.
           #175
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Спасибо за 1-й всё работает с 2-м попробовал сам разобраться не получилось (((((  Помогите пожалуйста ещё раз ))))))   
        
       | 
    
| 
         
         
         
          
           Сообщ.
           #176
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Второй скрипт примерно вот так: 
        
      ![]() ![]() <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>  | 
    
| 
         
         
         
          
           Сообщ.
           #177
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Супер всё пашет спасибо большое ещё раз )))))))   
        
       | 
    
| 
         
         
         
          
           Сообщ.
           #178
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Скрипт монтирует сетевые диски на основе членства в группах 
        
      В поле заметки (Notes) в параметрах группы пишем коммент в формате: (буква диска)путь к сетевой папке например: (t)\\server\shara\common folder Если указываем букву диска "U" то цепляется папка с путем: \\server\shara\common folder\Username Сделано как персональная сетевая папка пользователя, доступная с любого компа в домене. соответсвенно на самой шаре раздаем нужные права пользователям. Если папка не существует или буква диска занята, то ничего не происходит... ![]() ![]() 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 Добавлено И вопрос в догонку: на основе предыдущего скрипта как можно сделать появления ярлыка на рабочем столе на основе членства в группах... Наподобие того что юзера закидываем в группу, у группы есть права доступа на сетевые программки, и автоматом появляется ярлычок на эту программку...  | 
    
| 
         
         
         
          
           Сообщ.
           #179
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Помогите кто может с написанием скрипта vbs который удаляет файлы по маске во всех подпапках указанных папок, ну к примеру по адресу: C:\Новая папка. У меня почему то не выходит. ОС Windows 2000.   
        
       | 
    
| 
         
         
         
          
           Сообщ.
           #180
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
        ![]() ![]() del /S "C:\Новая папка\*.txt"  |