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

» Автоматизация администрирования. Часть 2

Автор: mozers
Дата сообщения: 16.08.2007 13:15
YNY
Цитата:
где основной файл кот << Прога (он же скрипт) показывает все методы>> ???

Запускаешь Object Browser.hta
Нажимешь Browse и находишь свой файл или test_page.htm (лежит для примера)
В левом фрейме появляется кнопочка window
Нажимаешь на нее, а потом на многочисленные кнопки object
Ну и т.д....
Вообще то для этого треда, обсуждаемая тема - оффтопик... Человек вопрос задал - ну я и встрял тут со своей приблудой...
Так, что - завязываем. Если есть интерес, то mozers(собака)mail.ru или ПМ.
Автор: rosalin
Дата сообщения: 17.08.2007 10:11
ребята а как должен выглядеть скрипт
выполняющий команду ipconfig /all
и отправляющий его на определенный адрес...
делаю для удаленного администрирования
Автор: Vby
Дата сообщения: 17.08.2007 10:19
rosalin
На вскдику можно так:
ipconfig /all >c:\log.txt
copy c:\log.txt \\ip\share
del c:\log.txt
Автор: rosalin
Дата сообщения: 17.08.2007 10:35
нет не поняли на электронный адрес
что приписать надо

Set objEmail = CreateObject("CDO.Message")

objEmail.Bodypart.CharSet = "windows-1251"
'objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
'objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "username"
'objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "userpwd"
objEmail.From = "admin1@fabrikam.com"
objEmail.To = "admin1@fabrikam.com"
objEmail.Subject = "Месага от админа"
objEmail.Textbody = "Текст по русски"
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.mail.ru"
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
Автор: Vby
Дата сообщения: 17.08.2007 14:21
rosalin
Что-то типа того:
[more]

strComputer = "."

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

Set colAdapters = objWMIService.ExecQuery _
("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")

n = 1
text = text + ""

For Each objAdapter in colAdapters

text = text + "Network Adapter " & n & Chr(10)
text = text + "=================" & Chr(10)
text = text + " Description: " & objAdapter.Description & Chr(10)

text = text + " Physical (MAC) address: " & objAdapter.MACAddress & Chr(10)
text = text + " Host name: " & objAdapter.DNSHostName & Chr(10)

If Not IsNull(objAdapter.IPAddress) Then
For i = 0 To UBound(objAdapter.IPAddress)
text = text + " IP address: " & objAdapter.IPAddress(i) & Chr(10)
Next
End If

If Not IsNull(objAdapter.IPSubnet) Then
For i = 0 To UBound(objAdapter.IPSubnet)
text = text + " Subnet: " & objAdapter.IPSubnet(i) & Chr(10)
Next
End If

If Not IsNull(objAdapter.DefaultIPGateway) Then
For i = 0 To UBound(objAdapter.DefaultIPGateway)
text = text + " Default gateway: " & _
objAdapter.DefaultIPGateway(i) & Chr(10)
Next
End If


text = text + " DNS" & Chr(10)
text = text + " ---" & Chr(10)
text = text + " DNS servers in search order:" & Chr(10)

If Not IsNull(objAdapter.DNSServerSearchOrder) Then
For i = 0 To UBound(objAdapter.DNSServerSearchOrder)
text = text + " " & objAdapter.DNSServerSearchOrder(i) & Chr(10)
Next
End If

text = text + " DNS domain: " & objAdapter.DNSDomain & Chr(10)

If Not IsNull(objAdapter.DNSDomainSuffixSearchOrder) Then
For i = 0 To UBound(objAdapter.DNSDomainSuffixSearchOrder)
text = text + " DNS suffix search list: " & _
objAdapter.DNSDomainSuffixSearchOrder(i) & Chr(10)
Next
End If


text = text + " DHCP" & Chr(10)
text = text + " ----" & Chr(10)
text = text + " DHCP enabled: " & objAdapter.DHCPEnabled & Chr(10)
text = text + " DHCP server: " & objAdapter.DHCPServer & Chr(10)

If Not IsNull(objAdapter.DHCPLeaseObtained) Then
utcLeaseObtained = objAdapter.DHCPLeaseObtained
strLeaseObtained = WMIDateStringToDate(utcLeaseObtained)
Else
strLeaseObtained = ""
End If
text = text + " DHCP lease obtained: " & strLeaseObtained & Chr(10)

If Not IsNull(objAdapter.DHCPLeaseExpires) Then
utcLeaseExpires = objAdapter.DHCPLeaseExpires
strLeaseExpires = WMIDateStringToDate(utcLeaseExpires)
Else
strLeaseExpires = ""
End If
text = text + " DHCP lease expires: " & strLeaseExpires & Chr(10)


text = text + " WINS" & Chr(10)
text = text + " ----" & Chr(10)
text = text + " Primary WINS server: " & objAdapter.WINSPrimaryServer & Chr(10)
text = text + " Secondary WINS server: " & objAdapter.WINSSecondaryServer & Chr(10)


n = n + 1

Next

Function WMIDateStringToDate(utcDate)
WMIDateStringToDate = CDate(Mid(utcDate, 5, 2) & "/" & _
Mid(utcDate, 7, 2) & "/" & _
Left(utcDate, 4) & " " & _
Mid (utcDate, 9, 2) & ":" & _
Mid(utcDate, 11, 2) & ":" & _
Mid(utcDate, 13, 2))
End Function





Set objEmail = CreateObject("CDO.Message")

objEmail.Bodypart.CharSet = "windows-1251"
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "user"
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "pass "
objEmail.From = "admin@domain"
objEmail.To = "user@domain"
objEmail.Subject = "Месага от админа"
objEmail.Textbody = text
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp"
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
    
[/more]
Автор: valhalla
Дата сообщения: 17.08.2007 14:28
Подскажите, как организуется переход на другой канал? Т.е. как сменить шлюз по-умолчанию и передернуть сетевой интерфейс? Нету скрипта готового?
Автор: rosalin
Дата сообщения: 17.08.2007 17:24
Vby

Супер буду тестить
Автор: SPV_Ed
Дата сообщения: 18.08.2007 08:22
valhalla
Например так:

Код: @echo off

:: Имя сетевого подключения
set if_name="Подключение по локальной сети"
:: IP-адрес сети
set netaddr=192.168.0
:: Адрес хоста
set hostaddr=x
:: Маска подсети
set subnet_mask=255.255.255.0
:: Адрес хоста шлюза
set gwaddr=228
:: IP-адрес первичного сервера имен DNS
set dns1=85.233.130.67
:: IP-адрес вторичного сервера имен DNS
set dns2=85.233.144.10
:: Имя организации провайдера Интернет
set isp_name=Орбита-телеком (Выделенная линия)
:: Имя лог-файла
set logfile=%~n0.log

title %isp_name%

netsh interface ip set address %if_name% static %netaddr%.%hostaddr% %subnet_mask% %netaddr%.%gwaddr% 1 >>%logfile% 2<&1
if %errorlevel% EQU 0 (
echo Параметры сети установлены успешно.
) else (
echo Ошибка при установке параметров сети !
echo %date% %time% Ошибка при установке параметров сети ! >>%logfile%
goto :quit
)

netsh interface ip set dns %if_name% static %dns1% >>%logfile% 2<&1 && netsh interface ip add dns %if_name% %dns2% >>%logfile% 2<&1
if %errorlevel% EQU 0 (
echo Параметры DNS установлены успешно.
) else (
echo Ошибка при установке параметров DNS !
echo %date% %time% Ошибка при установке параметров DNS ! >>%logfile%
goto :quit
)

echo.
echo Текущий провайдер Интернет для вашего компьютера - %isp_name%.

: quit
echo.
pause
Автор: rosalin
Дата сообщения: 20.08.2007 08:34
Vby
'objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
'objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "username"
'objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "userpwd"
objEmail.From = "admin1@fabrikam.com"
objEmail.To = "admin1@fabrikam.com"
objEmail.Subject = "Месага от админа"
objEmail.Textbody = "Текст по русски"
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.mail.ru"
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send

не может отсылать через внешний smtp (напр yandex, gmail)
что подправить...
помогите плз
Автор: Vby
Дата сообщения: 20.08.2007 09:34
rosalin

Цитата:
'objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
'objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "username"
'objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "userpwd"


Закоментированы строчки авторизации, убери знаки " ' " в начале строк, username - учетная запись на mail.ru, userpwd - пароль к ней, заполни.
Автор: rosalin
Дата сообщения: 21.08.2007 11:51
ребята помогите доработать скрипт для удаления файлов старее опр даты из определенной директории и ее поддиректорий

[more=script]

'===========================================================
'
' Function DelFilesDate(sFullPath, ndays)
' sFullPath - delete directory
' ndays - quantity of days after then file deleting
' COMMENT: delete temp files old "ndays" days
'
'===========================================================

Function DelFilesDate(sFullPath, ndays)
Dim lfsObject
Dim lFileList
Dim lFolder
Dim lFile

Set lfsObject = CreateObject("Scripting.FileSystemObject")

'Process contained files first
If lfsObject.FolderExists(sFullPath) Then
Set lFolder = lfsObject.GetFolder(sFullPath)
Set lFileList = lFolder.Files
' Scan each file in the folder
For Each lFile In lFileList
' Get the difference In days between the two dates
Diff = DateDiff("d", lFile.DateLastModified, Now)

If Diff >= ndays Then
'MsgBox lFile.Name
lfsObject.DeleteFile(sFullPath & "\" & lFile.Name)
End If
Next
If lFolder = WshShell.ExpandEnvironmentStrings("%TEMP%") Then
'Process subdirectories
Set lSubFolders = lFolder.SubFolders
For Each lSubFolder in lSubFolders
NewSource = strSourceDir & "\" & lSubFolder.Name
'Recursive call to delete all subdirectories
DelFiles NewSource
'Delete this directory
lSubFolder.Delete
Next
Else
End If
End If
'Cleanup
Set lfsObject = Nothing
Set lFileList = Nothing
Set lFolder = Nothing
Set lFile = Nothing

End Function
[/more]
Автор: inetimon
Дата сообщения: 21.08.2007 12:23

Код:
' Здесь - папка, с которой начинать сканирование
path = "F:\TM"

killdate = date() - 3

arFiles = Array()
set fso = createobject("scripting.filesystemobject")

' True - для поиска и по поддиректориям тоже, False - только в самой директории
SelectFiles path, killdate, arFiles, true

nDeleted = 0
for n = 0 to ubound(arFiles)
on error resume next 'in case of 'in use' files...
arFiles(n).delete true
if err.number <> 0 then
wscript.echo "Unable to delete: " & arFiles(n).path
else
nDeleted = nDeleted + 1
end if
on error goto 0
next

msgbox nDeleted & " of " & ubound(arFiles)+1 _
& " eligible files were deleted"

sub SelectFiles(sPath,vKillDate,arFilesToKill,bIncludeSubFolders)
on error resume next
set folder = fso.getfolder(sPath)
set files = folder.files

for each file in files
dtlastmodified = null
on error resume Next
dtlastmodified = file.datelastmodified
on error goto 0
if not isnull(dtlastmodified) Then
if dtlastmodified < vKillDate then
count = ubound(arFilesToKill) + 1
redim preserve arFilesToKill(count)
set arFilesToKill(count) = file
end if
end if
next

if bIncludeSubFolders then
for each fldr in folder.subfolders
SelectFiles fldr.path,vKillDate,arFilesToKill,true
next
end if
end sub
Автор: Lovec
Дата сообщения: 22.08.2007 18:50
Как сделать, чтобы при входе в домен у пользователя на машине администратор домена автоматом прописывался в локальные админы? Потому как некоторые слишком умные его оттуда удаляют...
Автор: niichavo
Дата сообщения: 22.08.2007 19:22
Lovec
Так ведь в групповых политиках можно кого хошь в какие хошь группы задвинуть. Ну а шоб не лазали где не надо можно, опять-таки в групповых политиках, запретить пользователю домена запускать консоль управления (mmc).
Автор: cluster
Дата сообщения: 22.08.2007 19:26
niichavo

Цитата:
запретить пользователю домена запускать консоль управления (mmc).
а вот это жестоко.. частенько бывает необходимость под пользователем поглядеть ну хотя бы eventlog или диспетчер устройств.
Автор: niichavo
Дата сообщения: 22.08.2007 19:33
cluster

Цитата:
а вот это жестоко.. частенько бывает необходимость под пользователем поглядеть ну хотя бы eventlog или диспетчер устройств.

это можно сделать удалённо с компа админа. Или, ежели кнешна не очень лениво, выйти из системы и войти уже под админом на том компе, где нужно запустить mmc. Это действительно неудобно, если по какой-то причине именно пользователю нужно смотреть eventlog или диспетчер устройств. Только вот для чего ему это?
Автор: Lovec
Дата сообщения: 22.08.2007 19:44
Хотелось бы просто скрипт, выполняющий описанное мной. Ограничения на запуск юзером чего-либо - не подходят.
Автор: jeki54
Дата сообщения: 23.08.2007 07:26
Написал скрипт для закрытия открытых фаайлов в определенной папке. Ночью идет обновление файлов, а пользователи остаются подключенными к ним и блокируют).


Код:
'сбрасываем открытые ресурсы сервера
'использование - например для обновления файлов, используемых в это время

ComputerName = "comp1"

Set FileService = GetObject ("WinNT://" & ComputerName & "/LanmanServer")
Set Collection = FileService.Resources
For Each Resource In Collection
resourcepath = LCase (Resource.Path)
If InStr (1,resourcepath, "c:\shares",1) <> 0 Then
Collection.Remove (Resource.Name)
End If
Next

Автор: DIvan
Дата сообщения: 23.08.2007 09:38
Коллеги, я недавно задумался над тем, можно ли как-то использовать свободное дисковое пространство на рабочих станциях в локальной сети? Т.е. хранить на машинах юзеров свои файлы без риска их потерять, а в идеале ввобще так, чтобы юзеры о них и не догадывались.
Автор: Etalon
Дата сообщения: 23.08.2007 11:30
cluster
Не надо никаких скриптов.
Надо в групповой политике пройти по адресу
Конфигурация компьютера\Конфигурация Windows\Группы с ограниченным доступом
и добавить там все необходимые группы
т.е. указать какие доменные группы в какие локальные входят

DIvan
В Windows 2003 Server есть такая хрень, как ABEUI. Благодаря ей пользователи видят только то к чему у них есть доступ.
А вот есть ли такая штука в Windows XP, не знаю.
Автор: YNY
Дата сообщения: 24.08.2007 05:07

Цитата:
Lovec
вообще то работать с группами админов могут тока локальные админы и если они имеют туда доступ то ....
а на счет того, что запретить запуск mmc, то runas тебе помогет если ты всеж запретишьего кому нада (конечно не себе самому


Добавлено:

Цитата:
Ругается на строку

file scripts they seemed to work just fine on Windows 2000 Server and Windows Server 2003. Results on Windows XP, however, were mixed at best. So, no guarantees; give them a try and see if they work in your environment.

IADsCollection::Remove

The IADsCollection::Remove method removes the named item from this ADSI collection object.

Requirements
Client Requires Windows XP or Windows 2000 Professional.
Server Requires Windows Server 2003 or Windows 2000 Server.
Redistributable Requires Active Directory Client Extension on Windows NT 4.0 and Windows Me/98/95.
Header Declared in Iads.h.

DLL Requires Activeds.dll.
IID IID_IADsCollection is defined as 72B945E0-253B-11CF-A988-00AA006BC149.



Добавлено:
и нада ск всего войти сначало в домен
Автор: Lovec
Дата сообщения: 24.08.2007 09:02
Народ, меньше лирики.
Вопрос конкретный: можно ли скриптом при логине юзера в домене добавлять администратора домена в локальные администраторы залогинившегося компа?
Если да, то пример плиз.
Автор: Etalon
Дата сообщения: 24.08.2007 09:43
Lovec
Вот кусок кода, позволяющий добавлять пользователей в группы

Код:
Computer = "."
Set objGroup = GetObject("WinNT://" & Computer & "/Administrators,group")
Set objUser = GetObject("WinNT://" & Computer & "/kenmyer,user")
objGroup.Add(objUser.ADsPath)
Автор: YNY
Дата сообщения: 24.08.2007 10:40
если ты будешь делать это скриптом, то есть возм-ть раскрытия пароля юзера с админскими правами, т.к. он просто необходим.....
"Кто ищет тот всегда найдет", но тока потом пеняй на себя... ретивый ты наш
Автор: wok
Дата сообщения: 26.08.2007 13:25
Всем привет!
Разыскивается скрипт следующего плана. Необходимо прошерстить папку(в т.ч. подпапки), и заархивировать все файлы с определенными расширениями. Кто встречал киньте ссылку...
Автор: DIvan
Дата сообщения: 27.08.2007 09:09

Цитата:
Коллеги, я недавно задумался над тем, можно ли как-то использовать свободное дисковое пространство на рабочих станциях в локальной сети? Т.е. хранить на машинах юзеров свои файлы без риска их потерять, а в идеале ввобще так, чтобы юзеры о них и не догадывались.

Я разрулил доступ к папкам средствами NTFS, затем создал из них сетевые шары. Поставим вопрос иначе: как скрыть наличие сетевых шар на рабочих станциях под WinXP? И есть ли возможность скрыть локальные папки (хотя зайти в них юзер не может, но сами папки видны)?
Автор: YDOG
Дата сообщения: 27.08.2007 09:13
DIvan
Если по сети, то можно добавить значок бакса \\comp\share$
Автор: slayer120
Дата сообщения: 27.08.2007 14:39
wok
Взято из справки RAR (командная строка)

WinRAR a -r -n*.txt -n*.lst text Project Info

Для тебя будет
WinRAR a -r -n*.txt -n*.lst <имя архива> <имя папки>

Расширения заменишь на нужные.
Автор: Teo
Дата сообщения: 28.08.2007 12:25
начал писать скрипт для смены доменного пароля с недоменного компа


Код: Option Explicit

Dim objRootDSE, objPassword, objSWBemLocator
Dim strDNSDomain, strAdminName, strAdminPassword


'Bind to Active Directory Domain
Set objRootDSE = GetObject("LDAP://RootDSE")
strDNSDomain = objRootDSE.Get("DefaultNamingContext")

'get username
Wscript.StdOut.Write "Please enter administrator user name:"
strAdminName = Wscript.StdIn.ReadLine
Set objPassword = CreateObject("ScriptPW.Password")
Wscript.StdOut.Write "Please enter password:"
strAdminPassword = objPassword.GetPassword()

'connect to DC using it
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer _
(strDNSDomain, "root\cimv2", strDNSDomain & "\" & strAdminName, strAdminPassword)
objWMIServices.Security_.ImpersonationLevel = 3
Автор: YNY
Дата сообщения: 29.08.2007 06:12

Цитата:
скрипт для смены доменного пароля с недоменного компа

да, лишь бы по углам не писало...
поставь галук разрешать удаленное подкл и с любого компа, на кот ХР стоит подкл к серваку и делай че хочешь, а скрипт писать когда и без него мона обойтись -- изврат

Добавлено:
objwbemServices = ConnectServer(
[ strServer = "" ],
[ strNamespace = "" ],
[ strUser = "" ],
[ strPassword = "" ],
[ strLocale = "" ],
[ strAuthority = "" ],
[ iSecurityFlags = 0 ],
[ objwbemNamedValueSet = null ]
)
iSecurityFlags = 0 -- а value of 0 for this parameter results in the call to ConnectServer returning only after connection to the server is established. This could result in your program hanging indefinitely if connection cannot be established for any reason.

пример подкл к серверу:

strComputer = "FullComputerName"
strDomain = "DOMAIN"
Wscript.StdOut.Write "Please enter your user name:"
strUser = Wscript.StdIn.ReadLine
Set objPassword = CreateObject("ScriptPW.Password")
Wscript.StdOut.Write "Please enter your password:"
strPassword = objPassword.GetPassword()

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, _
"root\cimv2", _
strUser, _
strPassword, _
"MS_409", _
"ntlmdomain:" + strDomain)
тут
strAuthority = "ntlmdomain:" + strDomain
возмона получится.

По быстрому мона так: оставить скрипт на серваке, а запускать с лок машины и тогда с RPC проблем не будет.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576

Предыдущая тема: BackUp Win2003Serer


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