Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» Автоматизация администрирования

Автор: Master_Alex
Дата сообщения: 14.12.2005 16:10
pav
Такой скрипт вполне реален.
А вот "DHCP в сети не используется и этот факт изменить нельзя" - я бы попытался таки факт изменить. Видать руководство тебя админить учит, - а это надо пресекать на корню .
Автор: aka_ShadowZ
Дата сообщения: 15.12.2005 00:30
skylined
сделать то можно вызовом командной строки "net send"
чтото типа
Код:
msg="Test message"
Target="192.168.0.1"
Set oShell=createObject("WScript.Shell")
oShell.Run "net send " & Target & " "+msg,0
Автор: pav
Дата сообщения: 15.12.2005 11:14
Master_Alex

Цитата:
Такой скрипт вполне реален.

Я понимаю, что реален. Для этого и привёл примеры, но самому не сростить их.
Автор: finderknowledge
Дата сообщения: 15.12.2005 13:35
pav
Вот пример из The Portable Script Center:

Цитата:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colNetAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

strIPAddress = Array("192.168.1.141")
strSubnetMask = Array("255.255.255.0")
strGateway = Array("192.168.1.100")
strGatewayMetric = Array(1)

For Each objNetAdapter in colNetAdapters
errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
If errEnable = 0 Then
WScript.Echo "The IP address has been changed."
Else
WScript.Echo "The IP address could not be changed."
End If
Next

Автор: alecsandrb
Дата сообщения: 15.12.2005 14:28
Может кто-нибудь подсказать решение для следующей задачи:
- при подключении пользователя проверить какой принтер ему доступен
(разрешен доступ его группе) и подключить?


Добавлено:
Попробую спросить по другому: как узнать список тех кто имеет право работать с принтером при помощи скрипта?
Имеется ввиду перечень групп и пользователей назначенных на вкладке "Безопасность".
Дальше определить может текущий пользователь работать с принтером или нет не составит труда.
Автор: AlexSSS
Дата сообщения: 15.12.2005 20:47
> Имеется ввиду перечень групп и пользователей назначенных на вкладке "Безопасность".
сомневаюсь. Прикинь сам - в сети может быть полсотни компов с зашаренным принтером или даже несколькими. И как это все опрашивать?

Могу посоветовать вариант, который использую сам. В AD создаю группы Printer1, Printer2 ... PrinterXX, в которые засовываю пользователей, у которых есть доступ к нему.
А скрипт просто проверяет, входит ли пользователь в конкретную группу и подключает его если входит.

если у тебя принтеры обзываются по другому, то можешь создать группы типа PR_НазваниеПринтера

Либо, если конкретные принтеры привязаны к конкретным отделам (и группам AD), можно обойтись существующими группами
-----------------------
Хотя есть мысль. Если принтер прописан в AD, то надо посмотреть, можно ли вытащить права или, еще проще, проверить есть ли доступ к конкретным принтерам. Но это надо проверять.
Автор: alecsandrb
Дата сообщения: 16.12.2005 05:56
ОК. Значит пойдем раздавать права через группы в AD.

>>Прикинь сам - в сети может быть полсотни компов с зашаренным принтером или даже несколькими.

Мне данная ситуация не грозит - все сетевые принтера вполне можно пересчитать и потом я их все установил на принт-сервер и уже с него буду подключать пользователям.

Спасибо за посказку насчет групп, сам сразу не сообразил.
Автор: mozers
Дата сообщения: 17.12.2005 19:19
Alan Mon
10:33 12-12-2005
Цитата:
mozers
Я думаю дело в правах пользователя SYSTEM. Твой скрипт коннектится к машине с определенным логином и паролем, но потом начинает работать WMI, который запущен от имени SYSTEM той машины. А пользователю SYSTEM по умолчанию доступ в сеть запрещен.

И все таки ты где то прав.
Удаленный запуск проги с сетевым именем удалось таки реализовать с помощью консольной утилиты rtmc (из пакета Remote Task Manager)
Код: rtmc -exe=\\SERVER\SHARE\sysinfo.exe -comp=192.168.0.121 -user=admin -pass=123 -runasuser=admin -runaspass=123
Автор: pav
Дата сообщения: 18.12.2005 13:17
finderknowledge, а здесь посмотреть мой пост не удалось? Я говорю о том, чтобы срастить эти скрипты.
Автор: finderknowledge
Дата сообщения: 19.12.2005 08:31
pav
Действительно не посмотрел, мои компьютерные очки отфильтровали вместе с ультрафиолетом и синий цвет ссылки
Здесь вроде ничего сложного нет, попробуй так:

Цитата:

Dim strOldIP, strOldGateway,strNewIP, strNewGateway, strOldIPArea,strNewIPArea
strSubnetMask = Array("255.255.255.0")
strGatewayMetric = Array(1)
strOldIPArea = "162.162.12"
strNewIPArea = "192.192.10"
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colNetAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

For Each objNetAdapter in colNetAdapters
    strOldIP = Join(objNetAdapter.IPAddress)
strOldGateway = Join(objNetAdapter.DefaultIPGateway)
strNewIP = Array(getNewIP(strOldIP))
strNewGateway = Array(getNewIP(strOldGateway))
errEnable = objNetAdapter.EnableStatic(strNewIP, strSubnetMask)
errGateways = objNetAdapter.SetGateways(strNewGateway, strGatewaymetric)
If errEnable = 0 Then
WScript.Echo "The IP address has been changed."
Else
WScript.Echo "The IP address could not be changed."
End If
Next

Function getnewIP(strIP)
    Dim regEx, strNewIPmask
    strNewIPmask = strNewIPArea
    Set regEx = New RegExp
    regEx.Pattern = strOldIPArea
    getnewIP = regEx.Replace(strIP, strNewIPmask)
End Function

Автор: batnikboy
Дата сообщения: 19.12.2005 14:58
Может кто-нибудь подсказать решение для следующей задачи:
Мне надо чтобы при нахождении определённого слова в текте файла file.txt, оно менялось на другое.
файл примерно такого содержания...
.......
user Pupkin
.......

наприм с помощью этого батника:
set var=
for /f "tokens=1,*" %%i in (file.txt) do echo %%i|find "user" && set var=%%j)
я присваиваю переменной var значение Pupkin. А как теперь мне вместо Pupkin записать в файл например Dudkin?
Автор: Alan Mon
Дата сообщения: 19.12.2005 16:08
batnikboy
Для этого можно использовать утилитку acsr.exe, которая лежит в "%systemroot%\Application compatibility scripts" любого сервера:

Цитата:
This command performs simple text replacement. It reads from the Input file and writes to the Output file. Each occurrence of the search string is changed to the replace string. Any of the parameters can contain environment variables if desired.

Syntax: Acsr Search Replace InputFile OutputFile

Example:

ACSR "#ROOTDRIVE#" "%RootDrive%" Template\Office97.key Office97.key

This example changes the text #ROOTDRIVE# to the value of the RootDrive environment variable. It reads the Office97.key from the template subdirectory and writes to an Office97.key file in the current directory

Автор: pav
Дата сообщения: 20.12.2005 08:49
finderknowledge
Огромное спасибо. Малость подкорректировав, добавил также и смену адреса DNS-сервера. Если кому нужно, то могут посмотреть [more=здесь]

Код:
On Error Resume Next
Dim strOldIP, strOldGateway,strNewIP, strNewGateway, strOldIPArea,strNewIPArea
strSubnetMask = Array("255.255.255.0")
strGatewayMetric = Array(1)
strOldIPArea = "192.192.10"
strNewIPArea = "192.186.107"
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colNetAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

Set colNetCards = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")

For Each objNetAdapter in colNetAdapters
strOldIP = Join(objNetAdapter.IPAddress)
strOldGateway = Join(objNetAdapter.DefaultIPGateway)
strNewIP = Array(getNewIP(strOldIP))
strNewGateway = Array(getNewIP(strOldGateway))
errEnable = objNetAdapter.EnableStatic(strNewIP, strSubnetMask)
errGateways = objNetAdapter.SetGateways(strNewGateway, strGatewaymetric)
If errEnable = 0 Then
WScript.Echo "IP-адрес был успешно изменён"
Else
WScript.Echo "Смена IP-адреса не удалась"
End If
Next

For Each objNetCard in colNetCards
arrDNSServers = Array("192.186.107.10")
objNetCard.SetDNSServerSearchOrder(arrDNSServers)
Next

Function getnewIP(strIP)
Dim regEx, strNewIPmask
strNewIPmask = strNewIPArea
Set regEx = New RegExp
regEx.Pattern = strOldIPArea
getnewIP = regEx.Replace(strIP, strNewIPmask)
End Function


Автор: batnikboy
Дата сообщения: 20.12.2005 11:22
Alan Mon

Большое спасибо за эту утилитку, всё сделал)
Автор: asdfg2003
Дата сообщения: 20.12.2005 21:24
Вопрос по подключению притеров
Есть рабочая станция, к которой подключен USB принтер. С помощью AddWindowsPrinterConnection этот принтер подключается к конкретному пользователю ну и соответсвенно удаляется RemovePrinterConnection. Проблема в том, что если этот комп выключен, то метод RemovePrinterConnection выполняется с задержкой секунд так 30-40 что очень плохо при подключении более 5 принтеров. Подключения через сервер не рассматривается. Как победить именно задержку метода RemovePrinterConnection?
Автор: timoha
Дата сообщения: 21.12.2005 09:17
Ни кто не знает как vbscript - ом проверить почту на imap сервере или прочитать почту из аутлука ?
Спасибо !
Автор: Klesk
Дата сообщения: 22.12.2005 20:12
Вопрос - как очистить журнал событий на всех компьютерах домена?
Желательно чтобы это был скрипт, который можно было бы периодически запускать.
Автор: FreemanRU
Дата сообщения: 23.12.2005 11:08
Klesk
[more=Backs up and clears am event log if the log file size is larger than 20 megabytes]

Код:
Description
Backs up and clears am event log if the log file size is larger than 20 megabytes.

Script Code

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate, (Backup, Security)}!\\" _
& strComputer & "\root\cimv2")
Set colLogFiles = objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile")
For each objLogfile in colLogFiles
If objLogFile.FileSize > 100000 Then
strBackupLog = objLogFile.BackupEventLog _
("c:\scripts\" & objLogFile.LogFileName & ".evt")
objLogFile.ClearEventLog()
End If
Next
Автор: timoha
Дата сообщения: 23.12.2005 11:27
2 FreemanRU


Я хотел замутить простую схему управления не большим сервером через ё-мэйл
например отсылаю письмо - тема : номер сервера, в письме : комманда 1, комманда 2 и тд. аутлук на сервере проверяет почту каждые 2-3 минуты .

Нужно "подключится к Outlook через COM" - вот это я как раз не умею, можешь показать в каком направлении копать ?
Автор: FreemanRU
Дата сообщения: 23.12.2005 11:58
timoha
К сожалению быстро ничего не нашел в инете. Вот только набросок:

Код:
Set myOlApp = CreateObject("Outlook.Application")
Set olMAPI = myOlApp.GetNameSpace("MAPI")
olMAPI.GetDefaultFolder(olFolderTasks).Display
Автор: xcherep
Дата сообщения: 23.12.2005 12:33
help me !!!!!!
как отловить событие logoff на WinNT 4.0

Добавлено:
В 2000, XP, 2003 есть раздел
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify
в котором можно это сделать
в NT ниче такого нету как быть
Автор: schax
Дата сообщения: 23.12.2005 16:56
подскажите пожалуйста как в VBS узнать текущие TCP соединения?
Автор: FreemanRU
Дата сообщения: 23.12.2005 17:04
schax
[more=Enumerate Network Connections]

Код:
Description
Retrieves information about all active network connections found on a computer.

For more information about the Win32_NetworkConnection class used in this script, click here.

Supported Platforms

Windows Server 2003 Yes
Windows XP Yes
Windows 2000 Yes
Windows NT 4.0 Yes, with WMI installed

Script Code

On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkConnection")
For Each objItem in colItems
Wscript.Echo "Access Mask: " & objItem.AccessMask
Wscript.Echo "Caption: " & objItem.Caption
Wscript.Echo "Connection State: " & objItem.ConnectionState
Wscript.Echo "Connection Type: " & objItem.ConnectionType
Wscript.Echo "Description: " & objItem.Description
Wscript.Echo "Display Type: " & objItem.DisplayType
Wscript.Echo "Local Name: " & objItem.LocalName
Wscript.Echo "Name: " & objItem.Name
Wscript.Echo "Persistent: " & objItem.Persistent
Wscript.Echo "Provider Name: " & objItem.ProviderName
Wscript.Echo "Remote Name: " & objItem.RemoteName
Wscript.Echo "Remote Path: " & objItem.RemotePath
Wscript.Echo "Resource Type: " & objItem.ResourceType
Wscript.Echo "User Name: " & objItem.UserName
Wscript.Echo
Next
Автор: schax
Дата сообщения: 23.12.2005 23:47
FreemanRU
Спасибо огромное
только нужно знать еще порты коннектов
Автор: Smitis
Дата сообщения: 24.12.2005 23:08
timoha

Цитата:
Я хотел замутить простую схему управления не большим сервером через ё-мэйл
например отсылаю письмо - тема : номер сервера, в письме : комманда 1, комманда 2 и тд. аутлук на сервере проверяет почту каждые 2-3 минуты .

Года два назад подобное управление у меня было сделано через TheBat. Бат переодически проверял определённый ящик. Для управления отправлялись письма, содержащие определённый код. Срабатывал фильтр, вызывающий пакетный файл (Бат обрабатывал письма через батник ). Было два варианта управления. В первом команды содержались в тексте письма, текст обрабатывался перлом, выделяя команды. Во втором, к письму прилагался зашифрованный архив, содержащий определенным образом названный пакетный файл и, при необходимости, другие файлы. Батник, вызванный фильтром, распаковывал архив (атачи тоже сохранялись фильтром) и запускал другой батник.
Подробностей уже не помню, но всё работало замечательно.
Автор: Mup0Boe_3Jlo
Дата сообщения: 29.12.2005 09:53
FreemanRU
Цитата:
Скрипт, позволяющий посмотреть ключ (CD-KEY) от XP или 2003
а можно как-то его модифицировать, чтобы результат можно было выделить и скопировать?
Автор: FreemanRU
Дата сообщения: 29.12.2005 10:44
Mup0Boe_3Jlo
Запускать его вот так:
"cscript имя_скрипта.vbs" в "cmd"

Автор: IronWarrior
Дата сообщения: 29.12.2005 11:11
может кто подскажет скрипт, который на машинах в сети прописывает в реестре опцию отображать имя компьютера в сети на рабочем столе..???
Автор: Teo
Дата сообщения: 29.12.2005 11:30
IronWarrior
а какой ключ за это отвечает?
а то у меня юзеры сказать не могут, как их комп называется
Автор: mozers
Дата сообщения: 29.12.2005 11:57
IronWarrior Teo
Ребят, какой реестр ??? Просто переименовывается ярлык "Мой компьютер" и все.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Зеркалирование дисков Win2000


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.