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

    А разве это
    Полезные скрипты (сообщение #1484865)
    не то ?
      Цитата Mbus @
      Подскажите, можно ли вытащить имеющийся параоль?
      Легальными средствами нельзя.

      Цитата Mbus @
      В консоли ActiveDirectory все пользователи размещаются не просто в домене а в подпапке (подразделе) Users, как там создавать пользователя?
      Для начала посмотрите уже имеющиеся в этой теме примеры: Полезные скрипты, сообщение #5, а затем вот этот пример:
      ExpandedWrap disabled
        Dim strPath, strUsrSAMAN, intUserAC
        Dim objAD, objContainer, objUser
        strPath = "LDAP://ou=Пользователи,ou=Склад,dc=domain_name,dc=ru"
        strUsrSAMAN = "Кладовщик"
        Set objContainer = GetObject(strPath)
        Set objAD = objContainer.Create("user", "cn=" & strUsrSAMAN)
        objAD.Put "sAMAccountName", strUsrSAMAN
        objAD.Put "displayName", strUsrSAMAN
        objAD.Put "userPrincipalName", strUsrSAMAN
        objAD.SetInfo

      Цитата sbonus @
      Как поставить галочку нельзя менять пароль в свойствах пользователя?
      Речь идёт о свойстве пользовательской "учётки" Запретить смену пароля пользователем?

      Цитата DataKill @
      Мне нужно чтобы ... в какйо-то лог писалось под каким именем на любом компьютере в локальной сети вошли
      В групповой политике для всего домена задайте входной сценарий. Такой, например:
      ExpandedWrap disabled
        Dim objAD, objUserName, objComputerName
        Dim objFS, objFile
        Const strPath = "C:\Temp\Log.txt" 'Здесь надо задать UNC-путь к доступному для всех пользователей на запись сетевому ресурсу
        Const ForAppending = 8
        Set objAD = CreateObject("ADSystemInfo")
        Set objUserName = GetObject("LDAP://" & objAD.UserName)
        Set objComputerName = GetObject("LDAP://" & objAD.ComputerName)
        Set objFS = CreateObject("Scripting.FileSystemObject")
        Set objFile = objFS.OpenTextFile(strPath, ForAppending, True)
        objFile.WriteLine(Date & ";" & Time & ";" & objComputerName.cn & ";" & objUserName.cn)
        objFile.Close
        Set objFS = Nothing
        Set objFile = Nothing
        Set objUserName = Nothing
        Set objComputerName = Nothing
        Set objAD = Nothing

      Цитата Mbus @
      И еще можно как-то соорудить скрипт или что-то иное, чтобы также логилось или отсылалось кто в сети запустил программу из меню "Запуск от имени"?
      В принципе можно, но здесь дело посложнее, т.к. нужно организовать (для каждой станции) процедуру слежения за системным событием создания процесса. Хотите подзаняться WMI? :)
        Многие скрипты требуют наличия прав админа для своего выполнения. Как скриптом получить права админа? Вот например мне надо в рабочей группе из 20 компов создать юзера "test" и задать его пароль. Меня нет в этом офисе. Но я скинул по почте скрипт. У пользователей права юзеров. Пароль можно светить.
          Цитата zerghack007 @
          Пароль можно светить.

          О каком пароле речь? Если о пароле пользователя test, то никак. Если о пароле админа, то два варианта:
          1. Залогиниться под админом и выполнить скрипт.
          2. Создать ярлык с путем %windir%\system32\wscript.EXE "C:\Documents and Settings\<username>\Рабочий стол\script.vbs" и дальше Run as...
            Цитата Domino @
            О каком пароле речь?

            Речь идет о пароле админа.

            Цитата
            2. Создать ярлык с путем %windir%\system32\wscript.EXE "C:\Documents and Settings\<username>\Рабочий стол\script.vbs" и дальше Run as...

            В данном случае получается, что я должен сообщить Логин и Пароль админа пользователям, а я спрашивал про возможность получать права админа скриптом - просто нужно что бы в скрипте задавался параметр, что всё что дальше будет в нём происходить - будет происходить с правами локального администратора
              Вот что-то такое нашел. Но не работает.
              !
              Теги CODE Кто ставить будет? Страуструп?


              On Error Resume Next
              Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")

              CompName = "compname" 'имя компьютера
              UserName = "firma.local\Admin" 'имя пользователя
              Pass = "password" 'пароль пользователя



              Set objServices = objSWbemLocator.ConnectServer(CompName, "root\CIMV2", UserName, Pass)
              If Err.Number <> 0 Then
              WScript.Echo Err.Number & ": " & Err.Description
              WScript.Quit
              End If

              Dim objComputer ' Экземпляр объекта Computer
              Dim objUser ' Экземпляр объекта User
              Dim strUser ' Имя создаваемого пользователя

              ' Задаем имя пользователя
              strUser = "test"

              Set objComputer = objServices.GetObject("WinNT://compname")

              Set objUser = objComputer.Create("user",strUser)

              objUser.Description = "Этот пользователь создан из сценария ADSI"

              ' Сохраняем информацию на компьютере
              objUser.SetInfo
                zerghack007, если использовать сценарии, то скрыть пароль администратора домена не удастся, т.к. сценарий - не более, чем простой текстовый файл, содержимое которого не сможет посмотреть только ленивый. При этом совершенно неважно, какой технологией Вы будете пользоваться: WMI или ADSI.

                Цитата Domino @
                Если о пароле пользователя test, то никак
                Если речь о том, что нельзя задать пароль пользователя при создании его "учётки" с помощью сенария, то это НЕВЕРНО. За решение этой задачи отвечает метод SetPassword объекта типа Пользователь.
                Пример от AlexLine можно увидеть в самом первом сообщении этой темы.
                Сообщение отредактировано: Dmitrii -
                  Нашел выход из ситуации и пароль светить не надо.

                  ExpandedWrap disabled
                    '********************************************************************
                    ' Имя: AddUser.vbs                                                  
                    ' Язык: VBScript                                                    
                    ' Описание: Создание нового локального пользователя компьютера                
                    '********************************************************************
                    Option Explicit
                     
                    'Объявляем переменные
                    Dim objComputer         ' Экземпляр объекта Computer
                    Dim objUser         ' Экземпляр объекта User
                    Dim strComputer     ' Имя компа
                    Dim strUser         ' Имя создаваемого пользователя
                    Dim strpass     ' пароль пользователя
                     
                     
                    ' Задаем имя пользователя и пароль
                    strComputer = "."
                    strUser = "test"
                    strpass = "1"
                     
                    ' Связываемся с компьютером
                    Set objComputer = GetObject("WinNT://"& strComputer)
                     
                    ' Создаем объект класса User
                    Set objUser = objComputer.Create("user",strUser)
                     
                    ' Добавляем описание и пароль созданного пользователя
                    objUser.Description = "Этот пользователь создан из сценария ADSI"
                    objUser.SetPassword strpass
                     
                    ' Сохраняем информацию на компьютере
                    objUser.SetInfo


                  ExpandedWrap disabled
                    '********************************************************************
                    ' Имя: StartRemouteScript.vbs                                                  
                    ' Язык: VBScript                                                    
                    ' Описание: Запуск скрипта на удаленном компе                
                    '********************************************************************
                     
                    On Error Resume Next
                     
                    Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
                     
                    CompName = "Имя компа"  'имя компьютера
                    UserName = "Имя пользователя"'имя пользователя
                    Pass = "Пароль"   'пароль пользователя
                     
                    Set objServices = objSWbemLocator.ConnectServer(CompName, "root\CIMV2", UserName, Pass, Null, Null, 0)
                     
                    If Err.Number <> 0 Then
                        WScript.Echo Err.Number & ": " & Err.Description
                        WScript.Quit
                    End If
                     
                    Set objClass = objServices.Get("Win32_Process")
                     
                    Res = objClass.Create("wscript.exe C:\AddUser.vbs", Null, Null, PID)
                     
                    If Res <> 0 Then
                        WScript.Echo "Код ошибки: " & Res
                    End If



                  Единственная проблема в том, что я могу запустить скрипт только с локального диска.
                  А как его запустить с замапленного диска?
                  И еще вопрос: как скопировать фаил с локального диска на другой комп по сети (путь должен быть такой "\\compname\C$")
                  И еще один вопросик: можно ли тачку из домена вывести скриптом?
                  Сообщение отредактировано: zerghack007 -
                    Цитата zerghack007 @
                    Нашел выход из ситуации и пароль светить не надо.
                    Или я чего-то не понимаю в условиях Вашей задачи, или Вы ошибаетесь, делая указанный выше вывод.

                    По поводу сценария, помещённого в Вашем сообщении #81.
                    Как единое целое он не может работать в принципе, т.к. в нём делается попытка совместить технологии WMI и ADSI.
                    В указанной ниже строке зелёным цветом помечено то, что относится к ADSI, красным - к WMI.
                    Set objComputer = objServices.GetObject("WinNT://compname")
                    Сообщение отредактировано: Dmitrii -
                      срочно нужен скропт который в зависимости от аргумента скрипта или откл сетевой диск или проверить его сеществование первый аргумент скрпта ключ /d или /r второй аргумент имя сетевого диска
                        Нужен скрипт, который бы отслеживал запускаемый процесс и скрывал его окно.
                        Если у кого есть поделитесь, пож-ста.
                        Такой не подходит:
                        ExpandedWrap disabled
                          Set objApp = CreateObject("Shell.Application")
                          ' Запуск файла
                          objApp.ShellExecute "LineRec.exe", nil, nil, open,  0
                        Сообщение отредактировано: VBMAD -
                          Господа! Кто может показать как написать vbs-скрипт удаления сервиса и остановки процесса?
                          Спасибо огромное тому кто откликнется!
                            Цитата blackangel @
                            ... как написать vbs-скрипт удаления сервиса...

                            Насколько мне известно, удалить службу нельзя, можно лишь её остановить и запретить запуск.
                            Пример подобного управления службой:
                            ExpandedWrap disabled
                              Dim objWMI, objCollection, objItem, intRetCode
                              Const strService = "Alerter"
                              Set objWMI = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\.\root\cimv2")
                              Set objCollection = objWMI.ExecQuery("SELECT StartMode,State FROM Win32_Service WHERE Name='" & strService & "'")
                              For Each objItem In objCollection
                                  'WScript.Echo objItem.StartMode & vbCr & objItem.State
                                  If StrComp(objItem.State, "Stopped", vbTextCompare) = 0 Then
                                      If StrComp(objItem.StartMode, "Disabled", vbTextCompare) = 0 Then
                                          intRetCode = objItem.ChangeStartMode("Manual")
                                      End If
                                      If intRetCode = 0 Then
                                          intRetCode = objItem.StartService
                                          If intRetCode = 0 Then
                                              WScript.Echo "Служба запущена. Режим её запуска изменён."
                                          Else
                                              WScript.Echo "Службу запустить не удалось."
                                          End If
                                      Else
                                          WScript.Echo "Режим запуска службы изменить не удалось."
                                      End If
                                  Else
                                      intRetCode = objItem.StopService
                                      If intRetCode = 0 Then
                                          intRetCode = objItem.ChangeStartMode("Disabled")
                                          If intRetCode = 0 Then
                                              WScript.Echo "Служба остановлена. Режим её запуска изменён."
                                          Else
                                              WScript.Echo "Служба остановлена, но режим её запуска изменить не удалось."
                                          End If
                                      Else
                                          WScript.Echo "Службу остановить не удалось."
                                      End If
                                  End If
                              Next
                              Set objCollection = Nothing
                              Set objWMI = Nothing
                              Вот код завершения процесса на удаленной машине с правами указанного пользователя(взят из MSDN).
                              Почему этот скрипт не работает с машины которую я указываю в "FullComputerName", т.е. локально?
                              Указанный пользователь- доменный администратор.
                              Пишет ошибку: User credentials cannot be used for local conections
                              Как это обойти?

                              ExpandedWrap disabled
                                strComputer = "FullComputerName"
                                strDomain = "DOMAIN"
                                strUser = InputBox("Enter user name")
                                strPassword = InputBox("Enter password")
                                Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
                                Set objWMIService = objSWbemLocator.ConnectServer(strComputer, _
                                    "root\CIMV2", _
                                    strUser, _
                                    strPassword, _
                                    "MS_409", _
                                    "ntlmdomain:" + strDomain)
                                Set colProcessList = objWMIService.ExecQuery _
                                    ("SELECT * FROM Win32_Process WHERE Name = 'notepad.exe'")
                                For Each objProcess in colProcessList
                                    objProcess.Terminate()
                                Next


                              И еще вопросик.
                              Если я помещаю скрипт с указанными правами админа в стартап GP, не грозит ли засветить паролем? На сколько безопасно выкладывать такие скрипты?
                              Спасибо!
                                Цитата blackangel @
                                ... Пишет ошибку: User credentials cannot be used for local conections
                                Вы пробовали запускать сценарий на том компьютере, на котором работаете сами, или на удалённом? У меня, например, этот сценарий работает только при указании удалённой станции.
                                Цитата blackangel @
                                Если я помещаю скрипт с указанными правами админа в стартап GP, не грозит ли засветить паролем?
                                В принципе, кто знает, где искать, тот найдёт стартующий сценарий, и, разумеется, увидит пароль.
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (22) « Первая ... 4 5 [6] 7 8 ...  21 22


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0547 ]   [ 14 queries used ]   [ Generated: 20.05.24, 06:36 GMT ]