Полезные скрипты
    , WSH (js, vbs) + WMI
  ![]()  | 
Наши проекты:
 Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту  | 
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS | 
| [216.73.216.5] | 
 
 | 
		
  | 
    Правила раздела Windows
  | Страницы: (22) « Первая ... 5 6 [7] 8 9 ... 21 22 ( Перейти к последнему сообщению ) | 
    Полезные скрипты
    , WSH (js, vbs) + WMI
  | 
         
         
         
          
           Сообщ.
           #91
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата Dmitrii @  Вы пробовали запускать сценарий на том компьютере, на котором работаете сами, или на удалённом? У меня, например, этот сценарий работает только при указании удалённой станции. да, именно так! Как запустить скрипт под учетной записью доменного администратора на машине с которой запускаю скрипт(речь идет только про локальную машину)?  | 
    
| 
         
         
         
          
           Сообщ.
           #92
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Господа, как копировать файлы по заданной маске?   
        
       | 
    
| 
         
         
         
          
           Сообщ.
           #93
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата blackangel @  Предлагаю использовать "эффект зеркала":да, именно так! Как запустить скрипт под учетной записью доменного администратора на машине с которой запускаю скрипт(речь идет только про локальную машину)? - сценарий на исходной станции запускает (с правам администратора домена) сценарий на контроллере домена; - сценарий, запущенный на контроллере домена, уже на исходной станции выполняет (с указанными ему привилегиями) нужную задачу. Пример сценария, запускаемого на исходной станции: ![]() ![]() Dim strComputer, strUser, strPassword Dim objLocator, objConnection, objProcess Const strDomain = "domain_name\" strComputer = "domain_controller_name" strUser = InputBox("Имя") If Len(strUser) > 0 Then     strUser = strDomain & strUser     strPassword = InputBox("Пароль")     If Len(strPassword) > 0 Then         Set objLocator = CreateObject("WbemScripting.SWbemLocator")         Set objConnection = objLocator.ConnectServer(strComputer, "root\cimv2", strUser, strPassword)         Set objProcess = objConnection.Get("Win32_Process")         intResCode = objProcess.Create("wscript.exe c:\temp\script2.vbs """ & strUser & """ """ & strPassword & """", Null, Null, intProcID)         Set objProcess = Nothing         Set objConnection = Nothing         Set objLocator = Nothing     Else         WScript.Echo "Пароль - обязательный параметр"     End If Else     WScript.Echo "Имя - обязательный параметр" End If Пример сценария, запускаемого на контроллере домена для управления исходной станцией: ![]() ![]() strComputer = "ws_name" If WScript.Arguments.Count = 2 Then     strUser = WScript.Arguments.Item(0)     strPassword = WScript.Arguments.Item(1)     Set objLocator = CreateObject("WbemScripting.SWbemLocator")     Set objService = objLocator.ConnectServer(strComputer, "root\cimv2", strUser, strPassword)     Set objCollection = objService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'calc.exe'")     For Each objItem In objCollection         objItem.Terminate     Next     Set objService = Nothing     Set objCollection = Nothing     Set objLocator = Nothing End If Ну, или (вместо WMI-локатора) пользоваться утилитой runas.exe  | 
    
| 
         
         
         
          
           Сообщ.
           #94
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Поскажите код скрипта чтобы создать новое соединение PPPoE или VPN  
        
          | 
    
| 
         
         
         
          
           Сообщ.
           #95
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Приветствую уважаемый Пипл!!! 
        
      Отличная тема!!! Многие скрипты оказались очень полезными. У меня тут проблемка возникла... Начальство решило что имя домена, которое видно при входе в Виндовс его не устраивает и решило его поменять. Ренейм домена не проходит из-за наличия на PDC Ексченьжа. Переустанавливать всё - это последнее дело. Вот и возник интересный вопрос. Скриптом можно много чего реализовать... А нельзя ли им на логон скрине подменить название домена, что бы юзверь видел одно имя, а входил в нормальный. Вот сижу, копаю по этой теме, но пока   Спасибо.  | 
    
| 
         
         
         
          
           Сообщ.
           #96
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Версия OC? Серверной.   
        
       | 
    
| 
         
         
         
          
           Сообщ.
           #97
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          PDC,BDC cервера на Enterprise 2003, рабочии станции на XP Prof. 	  
        
       | 
    
| 
         
         
         
          
           Сообщ.
           #98
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата LAW @  Вот сижу, копаю по этой теме, но пока    Смотри в сторону темы Domain Alias  | 
    
| 
         
         
         
          
           Сообщ.
           #99
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Дмитрий Вам ОГРОМНОЕ спасибо за идею зеркала!!! 
        
      ______________________________________________ Если использовать "эффект зеркала" предложенный выше Dmitrii - сценарий на исходной станции запускает (с правам администратора домена) сценарий на контроллере домена; - сценарий, запущенный на контроллере домена, уже на исходной станции выполняет (с указанными ему привилегиями) нужную задачу. и все же...если скрипт размещен на контроллере домена, в директории \\Контроллер_домена\SYSVOL\имя_домена\Policies\{A6C2CBB..-...}\Machine\Scripts\Startup , то к нему может иметь доступ любой пользователь => узнать пароль польователя, с правами которого он запускается:( Как все же "скрыть(зашифровать)" пароль в скрипте? Пусть этот метод и не соответствует жестким правилам безопасности, но хоть как-то это можно сделать...?Кто какие варианты может предложить? Подскажите пожалуйста... Ах, да... этот метод должен работать как на ХР, так и на 2000 осях(копирование файлов CScript.exe или WScript.exe допускается). Изначальная идея VBскрипта- обновление версии антивируса DrWeb на клиентских машинах: -Скрипт прописан в групповых политиках (Computer Configuration->Windows Settings->Scripts->Startup) Краткий алгоритм скрипта: 1- Проверка установленной версии антивируса 2- Удаление старой версии антивируса(Завершение сервисов->Удаление службы->Удаление записей реестра->Удаление файлов) 3- Установка новой версии из собранного MSI пакета 4- Отправка отчета в виде текстового файла о всех удачных и не удачных действиях. Конечно, проще всего, чтоб не заморачиваться по поводу безопасности можно было бы разместить этот скрипт на сервере и автоматичекси запускать его каждые 30 минут(шейдлером или своим скриптом) для кажой включенной машины в сети,а те машины, на которых он уже запускался- исключать из списка. Но тут опять для вас вопрос Высоко Уважаемые Господа системщики и программисты! Как получить список всех машин в сети и как проверить какие доступны на данный момент? Всем кто поможет, ОГРОМНОЕ СПАСИБО...да , наверное, не только от меня, но и от всех посетителей форума, т.к. считаю эту идею скрипта актуальной:) Не подумайте что прошу написать за меня., просто до этого с VB дела не имел:( Готовый скрипт обещаю выложить в форум и не без ваших усилий;)  | 
    
| 
         
         
         
          
           Сообщ.
           #100
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата blackangel @  Один из вариантов (с использованием ADO) уже опубликован в этой теме, в сообщении #30.... Как получить список всех машин в сети... Другой пример (с использованием WinNT): ![]() ![]() Dim objAD, objComputer, strCompName Const strDomane = "здесь - DNS-имя домена" Set objAD = GetObject("WinNT://" & strDomane & ",domain") objAD.Filter = Array("computer") For Each objComputer In objAD     strCompName = strCompName & objComputer.Name & vbNewLine Next Set objAD = Nothing WScript.Echo strCompName Цитата blackangel @  Более надёжного и универсального средства, чем простое "пингование" я пока не нашёл. Может кто-нибудь другой подскажет.... как проверить какие доступны на данный момент? А вариант реализации в сценарии может быть таким (вариант для консоли): ![]() ![]() Dim objShell, objExec, objOutStream Dim strResPing, intResFind arrTest = Array("station1", "station2", "station3") 'arrTest = Array("192.168.0.1", "192.168.0.2", "192.168.0.3") Set objShell = CreateObject("WScript.Shell") For i = 0 To UBound(arrTest)     Set objExec = objShell.Exec("ping -n 1 -w 300 " & arrTest(i))     Set objOutStream = objExec.StdOut     strResPing = vbNullString     While Not objOutStream.AtEndOfStream         strResPing = strResPing & Trim(objOutStream.ReadLine())     Wend     If Instr(1, strResPing, "TTL", vbTextCompare) > 1 Then         WScript.Echo arrTest(i) & " -> отвечает"     Else         WScript.Echo arrTest(i) & " -> не отвечает"     End If Next Set objOutStream = Nothing Set objExec = Nothing Set objShell = Nothing  | 
    
| 
         
         
         
          
           Сообщ.
           #101
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Добрый день, подскажите, пожалуйста, код vbscript'a, который коннектился бы к АД под данными пользователя, от которого запускается скрипт и менял бы пароль определенного пользователя на 123456? 
        
      При условии, что пользователю, из под которого запускается скрипт, уже заранее делегированы права на изменения паролей в домене, а о пользователе, которому меняют пароль, известен логин. Заранее большое спасибо за любую информацию, а если будет код для такой задачи - будет просто замечательно!  | 
    
| 
         
         
         
          
           Сообщ.
           #102
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата Blend @  Один из возможных вариантов:Добрый день, подскажите, пожалуйста, код vbscript'a, который коннектился бы к АД под данными пользователя, от которого запускается скрипт и менял бы пароль определенного пользователя на 123456? При условии, что пользователю, из под которого запускается скрипт, уже заранее делегированы права на изменения паролей в домене, а о пользователе, которому меняют пароль, известен логин. ![]() ![]() Dim objUser Dim strUser, strNewPswd Const strDomain = "здесь - DNS-имя домена" Const strController = "здесь - DNS-имя контроллера домена" strUser = "здесь - логин пользователя" strNewPswd = "123456" Set objUser = GetObject("WinNT://" & strDomain & "/" & strController & "/" & strUser & ",user") objUser.SetPassword strNewPswd On Error Resume Next If Err.Number <> 0 Then     WScript.Echo "Ошибка " & Err.Number & vbCr & Err.Description Else     WScript.Echo "Готово." End If objUser.SetInfo Set objUser = Nothing  | 
    
| 
         
         
         
          
           Сообщ.
           #103
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          Подскажите такой VBS скрипт--запускается с флэшки-определяет тот комп или нет-копирует некоторые файлы на эту флэшку причем буква у флэшки может быть разная. 	  
        
       | 
    
| 
         
         
         
          
           Сообщ.
           #104
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата Maxman @  Автоматически запускается?Подскажите такой VBS скрипт--запускается с флэшки... При каких условиях? Какое ПО будет считать его вирусом?  | 
    
| 
         
         
         
          
           Сообщ.
           #105
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          нет нужен просто скрипт.там(на флэшке) стоит autorun который запускает bat  который запускает скрипты для записи.типа  
        
      Const OverwriteExisting = TRUE Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.CopyFile "z:\работа\нужн.файл.xlsx" , "f:\save\" , OverwriteExisting но надо что б комп проверяла и кидала не на f а какая буква у флэшки будет может в батнике сделать? кстати флэшка transcend с отпечатками пальцев, так вот она после проверки отпечатка автоматом запускается(в висте на хр самому надо запускать).и нод на вирус не ругается  |