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

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

Автор: Funtik_Vintik
Дата сообщения: 14.11.2007 11:46

Цитата:
Юзай Active Directory

Эт ясно. Вопрос был для "без этого". Раз никто ничё не подсказал, пришлось сделать скрипт, перелапачивающий файл и заменяющий sid на имя и потом наоборот
Автор: Phoenix1984
Дата сообщения: 15.11.2007 14:21
На данный момент пользователи используют обычные обменные папки - шары на файлопомойке в которые кидают друг другу файлы. Как сделать так чтобы при изменении содержимого этой шары у пользователя выводилось окошко с уведомлением типа "вам пришел файл"
Автор: Ed_73
Дата сообщения: 16.11.2007 13:15
Phoenix1984
если файло небольшого размера лучше для этих использовать локальный почтовый сервер
Автор: Vorx
Дата сообщения: 16.11.2007 23:02
m0ps
Попробуй так [more]
Dim FSO,WshShell,a_year,a_month,a_day,arch,arch_list,cur_arch,a_date,Age

Set WshShell = WScript.CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")

Set arch = FSO.GetFolder("Arch")
Set arch_list = arch.Files

For Each cur_arch in arch_list
a_year=mid(cur_arch.name,6,4)
a_month=mid(cur_arch.name,10,2)
a_day=mid(cur_arch.name,12,2)
a_date=a_day&"-"&a_month&"-"&a_year
Age = DateDiff("d", a_date, Now())
if Age>7 then cur_arch.Delete
Next
[/more]
P.S. Без проверок на существование папки, правильность имени файла и т.п.
Автор: Sun Ray
Дата сообщения: 17.11.2007 15:03
Как на терминальном сервере можно прочитать IP-адрес подключенного клиента и в зависимости от подсети, к примеру 192.168.10.20 свистнуть переменную окружения NUM=16, а 192.168.35.24 NUM=82, ...etc..
p.s. Посдесть класса С, т.ч. следить нужно на значением 3 октета и в заданных значениях выдввать нужную переменную окружения.
Автор: YNY
Дата сообщения: 19.11.2007 08:09

Цитата:
Phoenix1984

есть в винде "net send" пиши скрипт кот проверяет все папки на шаре по времени создания и запускай мессагу

Добавлено:
http://www.samag.ru/art/03.2006/03.2006_05.html
Автор: m0ps
Дата сообщения: 19.11.2007 11:12
Vorx
спасибо! но решение уже было найдено:

Код:
'данный скрипт удаляет в директори все файлы, у которых
'дата последней модификации старше определенного количества дней
'синтаксис таков
'remove_old.vbs /path:<folder> /killdate:<days> /recur:<true of false>
'<folder> - папка над которой будут производиться действия
'<days> - указывает старше скольки дней файлы будут удаляться
'<true of false> - использовать или нет рекурсию
'например
'remove_old.vbs /path:c:\0\ /killdate:8 /recur:true
'Отмечу также, что если параметры содержат пробелы,
'в нашем случае это может быть путь к папке, то его надо
'брать в кавычки
'
'ISA
'
set objNamedArgs=Wscript.Arguments.Named

path=objNamedArgs.item("path")
killdate=date() - objNamedArgs.item("killdate")
recur=objNamedArgs.item("recur")

wscript.echo path, killdate, recur

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

'Ничего не удаляем, пока пробегаем по возвращенному набору файлов.
'Набор может быть перемешан.
'Создаём массив файловых объектов, чтобы этого избежать


SelectFiles path, killdate, arFiles, recur

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
nDeleted = nDeleted + 1

end if
on error goto 0
next

sub SelectFiles(sPath,vKillDate,arFilesToKill,bIncludeSubFolders)
on error resume next
' добавляем файлы на удаление в массив
'

set folder = fso.getfolder(sPath)
set files = folder.files
for each file in files
' на всякий случай отслеживаем ошибки доступа к
' свойству Date
'
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
Автор: rosalin
Дата сообщения: 19.11.2007 12:12
Ребята посоветуйте скриптик для анализа учетных записей в домене

тоесть нужно удалить устаревшие

каким скриптиком будет создаваться список действующих тобишь постоянно
логинившиеся....

помогите очень надо
Автор: Vorx
Дата сообщения: 19.11.2007 13:18
m0ps
Только этот скрипт будет проверять дату последнего изменения самого файла, а не брать данные из имени файла.
Автор: jONES1979
Дата сообщения: 19.11.2007 13:27
Phoenix1984

Цитата:
На данный момент пользователи используют обычные обменные папки - шары на файлопомойке в которые кидают друг другу файлы. Как сделать так чтобы при изменении содержимого этой шары у пользователя выводилось окошко с уведомлением типа "вам пришел файл"

http://www.bash.org.ru/quote/392588
Автор: Vorx
Дата сообщения: 19.11.2007 13:43
rosalin
http://forum.ru-board.com/topic.cgi?forum=8&topic=1908&start=666&limit=1&m=1#1
Автор: Sk1f
Дата сообщения: 19.11.2007 15:14
Народ всем привет.
Задача - есть таблица в Excel, было принято решение конвертнуть ее в SQL. Для чего думаю применить скрипт, напрямую не получится импортировать.
1. В файле примерно 5000 записей, есть ссылки на записи из другой таблицы, и скрипт сходит с ума когда происходит считывание.
2. Заранее появился такой вопрос - таблица заполнялась не всегда нормально, а бывало и через одно место. Поэтому хочу как-то сделать проверку на значение, считываемое из ячейки, т.е. допустим мне нужно, чтобы считывалось только если значение типа Data, какую-нибудь информацию про это или примеры скриптов посоветуйте пожалуйста.


Цитата:

k = 0
Do Until objExcel.Cells(intRow,11).Value = ""
Department = "Test"
Man_ID = objExcel.Cells(intRow, 1).Value
NumReestr = objExcel.Cells(intRow, 2).Value
Partner = objExcel.Cells(intRow, 11).Value
NumDoc = objExcel.Cells(intRow, 15).Value
Data_WrDoc = objExcel.Cells(intRow, 16).Value
Mark = objExcel.Cells(intRow, 7).Value
DataDog = objExcel.Cells(intRow, 20).Value
Remark_1 = objExcel.Cells(intRow, 28).Value
Remark_2 = objExcel.Cells(intRow, 32).Value
Data_start = objExcel.Cells(intRow, 5).Value

k = k + 1

Loop
objExcel.Quit
WScript.Echo k


Автор: Sk1f
Дата сообщения: 19.11.2007 16:05
p.s. начал с самого простого скрипта и он уже подвис, а на него уже думаю потом наращивать.
Автор: m0ps
Дата сообщения: 19.11.2007 16:15
Vorx
я знаю... дело в том, что скрипт я использую для удаления старых бэкапов. их дата последнего изменения равна той что в названии. так что меня тот скрипт вполне устраивает.

также необходима организация следующего: в определенный день недели (к примеру субботу) необходимо записывать на болванку определенный файл (с динамическим именем вида Baza_YYYYMMDD.zip). поскольку размер файла ~55 метров, то необходима возможность записи мультисессионного диска.
в идеале - при остатке на диске менее 100 метров - выдвигать лоток, что б я знал когда надо менять диск.

задача я так понимаю не из легких, есть ли у кого какие-либо соображения?
Автор: Hlebunov
Дата сообщения: 19.11.2007 16:20
У меня такая проблема, выпалняю по расписанию бэкап папки с вложенными подпапками с помощью скрипта. Для запуска винрара использую параметры
rar a -r -ep2 -ri4:4 -m2 -agDD-MMM-YY -ep D:\WEBHOME_1_.rar "%ppt%" в итоге получаю что в архиве все файлы свалены в 1 кучу. для меня это просто катастрофа. Подскажите правльный ключик для запуска винрара.
Автор: Vorx
Дата сообщения: 19.11.2007 16:48
m0ps

Утилитки для записи из командной строки :
1. NeroCmd.exe от Nero
2. CreateCD - http://isorecorder.alexfeinman.com/CreateCD.htm

Можно использовать IMAPI :
http://msdn2.microsoft.com/en-us/library/bb870772.aspx

Извлечение CD :
Код: Set oWMP = CreateObject("WMPlayer.OCX.7" )
Set colCDROMs = oWMP.cdromCollection
colCDROMs.Item(0).Eject
Автор: Sun Ray
Дата сообщения: 20.11.2007 02:29
Подскажите как вывести только строчку с LPT?

Код: Option Explicit
Dim Text, Title, i
Dim WshNetwork, oDevices
Title ="Printers map"
Set WshNetwork = WScript.CreateObject("WScript.Network")
Text = "Printer mapping" & vbCrLf
Set oDevices = WshNetwork.EnumPrinterConnections
For i = 0 To oDevices.Count - 1 Step 2
Text = Text & oDevices(i) & " " & oDevices(i+1) & vbCrLf
Next
MsgBox Text, vbOKOnly + vbInformation, Title
Автор: Etalon
Дата сообщения: 20.11.2007 11:30
Vorx

Цитата:
Можно использовать IMAPI :
http://msdn2.microsoft.com/en-us/library/bb870772.aspx

Этот способ только в Windows Vista и более старших версиях работает
Автор: Vorx
Дата сообщения: 20.11.2007 13:10
Etalon
И на XP работает со следующим обновлением :
http://support.microsoft.com/kb/KB932716
Автор: Etalon
Дата сообщения: 20.11.2007 15:41
Vorx
Я уже догадался. Вот только в примерах не указано, как стирать RWхи?

И интересно, есть ли возможность форматировать диски в формат UDF?
Автор: Vorx
Дата сообщения: 20.11.2007 18:47
Etalon

Стираются так :

Код: Set objDiscMaster = CreateObject("IMAPI2.MsftDiscMaster2")
Id = objDiscMaster.Item(0)
Set objRecorder = CreateObject("IMAPI2.MsftDiscRecorder2")
objRecorder.InitializeDiscRecorder Id
Set objEraser = CreateObject("IMAPI2.MsftDiscFormat2Erase")
objEraser.Recorder = objRecorder
objEraser.ClientName = "EraseDisc"
objEraser.EraseMedia
Автор: b0ne
Дата сообщения: 21.11.2007 11:57
Добрый день
создаю политику разливающую софт "soft v2"
но необходимо соблюдение условия, данный софт разливается только в том случае если на компе нет "soft v1"
такую проверку можно осуществить при помощи wmi filters. но беда в том что wmi я не знаю, а нужно срочно, просьба, дайте пример wmi скрипта проверяющего версию софта.
можно на примере любой программой, устанавливаемой в програм файлс
Автор: Vorx
Дата сообщения: 21.11.2007 12:13
b0ne

Код: StrComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colSoftware = objWMIService.ExecQuery _
("Select * from Win32_Product Where Name = 'Soft'")

For Each objSoftware in colSoftware
if objSoftware.Version="1" then 'устанавливаем v2
Next
Автор: b0ne
Дата сообщения: 21.11.2007 14:05
Vorx

большое спсибо за

Цитата:
Код:StrComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colSoftware = objWMIService.ExecQuery _
("Select * from Win32_Product Where Name = 'Soft'")

For Each objSoftware in colSoftware
if objSoftware.Version="1" then 'устанавливаем v2
Next

еще вопрос, если я дописываю
For Each objSoftware in colSoftware
if objSoftware.Version="3.62" then objSoftware.Uninstall()
объект должен удалятся, но почемуто не получается, почему?
Автор: Vorx
Дата сообщения: 21.11.2007 14:27
b0ne
Имени условие на if objSoftware.Version="3.62" then errReturn=objSoftware.Uninstall() и проверь в конце скрипта чему равно errReturn
Автор: k14us
Дата сообщения: 21.11.2007 15:23
столкнулся со следующей проблемой.
на конторе спутниковый интернет через vpn. поледний постоянно отваливается (кто использует satgate знает о чем я). вообщем нужно автоматизировать проверку наличия vpn соединения, и при его отсутствии восстанавливать, плюс бывают потери сигнала со спутника, в этом случае совершать проверку досупности внешних ресурсов (например посылть icmp пакеты) и если пакеты не возвращаются разрывать vpn соединение.

Добавлено:
и реально ли вообще решить подобную задачу по средствам vb скрипта?
Автор: b0ne
Дата сообщения: 21.11.2007 17:44
Vorx
ситуция такая, на этапе выполнения этой строчки скрипт зависает, пробовал с другим софтом, тоже самое, наверно я чегото не понимаю, взял с msdn скрипт удаления софта, все равно не удаляет
вот код, пример на винраре

Цитата:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colSoftware = objWMIService.ExecQuery _
("Select * from Win32_Product " _
& "Where Name = 'winrar'")
For Each objSoftware in colSoftware
objSoftware.Uninstall()
Next

Автор: Vorx
Дата сообщения: 21.11.2007 19:46
b0ne'
Данный метод может быть использован только для приложений, установленных через Microsoft Windows Installer.

Конкретно WinRAR можно прибить так :
Код: Set WshShell = WScript.CreateObject("WScript.Shell")
programfiles=WshShell.ExpandEnvironmentStrings("%PROGRAMFILES%")
WshShell.Run(""""&programfiles&"\WinRAR\Uninstall.exe"" /s"),1,True
Автор: cluster
Дата сообщения: 22.11.2007 09:48
Ребят, у кого есть скриптик для создания списка пользователей из АД?
Домен: Domain.ru
Каталог: Организация\Главный офис
Автор: Etalon
Дата сообщения: 22.11.2007 10:24
cluster

Код:
On Error Resume Next

Const ADS_SCOPE_SUBTREE = 2

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection

objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

objCommand.CommandText = _
"SELECT Name FROM 'LDAP://ou=Главный офис, ou=Организация, dc=domain, dc=ru' WHERE objectCategory='user'"
Set objRecordSet = objCommand.Execute

objRecordSet.MoveFirst
Do Until objRecordSet.EOF
Wscript.Echo objRecordSet.Fields("Name").Value
objRecordSet.MoveNext
Loop

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576

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


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