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

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

Автор: cluster
Дата сообщения: 22.11.2007 11:03
Нужно тоже самое, только в файлик.
Автор: Bugriy
Дата сообщения: 22.11.2007 15:36
Столкнулся со странной проблемой. Не могу перезагрузить компьютер из скрипта. Скрипт выполняется как Startup Script в AD на компьютерах пользователей домена. Сначала скриптом производятся определённые действия, потом должен быть рестарт.

Если запустить скрипт просто руками, то комп перезагружается, если как Startup, то результат непредсказуем. Может произойти перезагрузка, а может и не произойти.
Пробовал и через WMI и командой shutdown, пробовал паузы разные вставлять - результат одинаковый. 50 на 50. . В чём может быть дело?

Ещё хотел попробовать с помощью psutils, но там psshutdown при первом запуске выводит лицензионное соглашение, что неприемлимо.
Автор: Sk1f
Дата сообщения: 23.11.2007 10:08
Экспортирую в БД данные из Excel файла.
Нужна проверка типа значения, считываемого из ячейки в экселевском документе.
Есть какие-нибудь идеи?
Автор: PhoenixUA
Дата сообщения: 23.11.2007 10:53
cluster
cscript DomainUsers.vbs > users.txt
Автор: Smitis
Дата сообщения: 23.11.2007 14:26
Bugriy

Цитата:
Ещё хотел попробовать с помощью psutils, но там psshutdown при первом запуске выводит лицензионное соглашение, что неприемлимо.

Там у всех утилит должен быть ключ -accepteula
Автор: Toksa
Дата сообщения: 24.11.2007 22:31
Люди, подскажите где в WMI описаны свойства сетевого подключения? Не айпи адрес и так далее, а те которые на вкладке "Дополнительно" - то есть пошарено оно или нет, если пошарено - то через какое подключение, если это ВПН подключение - то его настройки.. Я в общем то кое что нашёл - но мало. Задача такая - есть 2 компа - один из них раздаёт ICS-ом инет другому (шарит ВПН-подключение). На этом же компе есть ещё подключения, которые нужно бы периодически шарить - но ICS умеет шарить только одно подключение, соответственно нужен скрипт который бы шарил то подключение которое я хочу... Как расшаривать/зашаривать подключения - я понял, но вот как шарить с нужными мне настройками - нет...
Автор: b0ne
Дата сообщения: 26.11.2007 16:00
Vorx
спасибо,
таким образом можно MSI пакеты удалять, винрар рассмтаривался в качестве примера, про определения версии не знал спасибо.
ситуация была в том, что когдато давно на большое колличество машин было руками установлено спецефическое ПО. а тут понадобилось установить новую версию, руками лень, инстал шилдом сделал MSI, но на компе других версий быть не должно, вот и встал вопрос автоматизации.

Можно попробовать так
удаление из эд/ремув програм
REG DELETE HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\номер продукта
del путь к проге

только есть ряд проблем
насколько я понял, номера ПО совпадают только в том случае если на все компы ставилось из одного пакета, я просмотрел пять компов, и там где ПО ставилось с одного экзешника номер совпадал. Хотя наверняка можно задать поиск в этом разделе и найденное удалять. также чистить и другие ключики. вопрос больше на решение подобных проблем в будущем
Автор: Smitis
Дата сообщения: 26.11.2007 22:04
b0ne

Цитата:
удаление из эд/ремув програм
REG DELETE HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\номер продукта
del путь к проге

Подчистить реестр от записей инсталятора МС (а, зоодно, от файлов в %windir%\installer) можно при помощи программы MSIZAP от самой МС (в пакете есть утилита, работающая из командной строки. Утилита корректно удаляет ВСЕ записи из реестра, связанные с конкретной инсталяцией (их там дофига).
Автор: sofos
Дата сообщения: 27.11.2007 14:08
Парни подскажите плиз каким скриптом можно удалять пустые папки и подпапки???

Автор: vlazari
Дата сообщения: 27.11.2007 15:42
sofos
На днях делал, но немного для других целей. Кароче разберёшься:

Добавлено:
sofos
sofos
На днях делал, но немного для других целей. Кароче разберёшься:
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Path = "c:\tralealea\asd"

Dim fso
Dim oFolder
Dim oFile
Dim oSubFolder

Set fso = createobject("Scripting.FileSystemObject")

Set oFolder = fso.GetFolder(Path)

For Each oFile In oFolder.files
' If DATE LastModified, then: If DateDiff("d", oFile.DateLastModified,Now) > 30 Then
If DateDiff("d", oFile.DateCreated,Now) > 30 Then
oFile.Delete True
End If
Next

Set oFolder = Nothing

Set oFolder = fso.GetFolder(Path)
Set colSubfolders = oFolder.Subfolders

For Each oSubfolder in colSubfolders
' If DATE LastModified, then: If DateDiff("d", oSubFolder.DateLastModified,Now) > 30 Then
        If DateDiff("d", oSubFolder.DateCreated,Now) > 30 Then
fso.DeleteFolder(oSubFolder)
End If
Next

Set oSubFolder = Nothing
Set oFolder = Nothing
Set fso = Nothing
'''''''''''''''''''''''''
Автор: sofos
Дата сообщения: 27.11.2007 16:17
vlazari

Спасиб конечно - только такой скрипт который сносит ЛЮБЫЕ папки мне не нужен -

Мне нужен скрипт который сносит Пустые папки (могут быть вложены еще пустые папки)
и не сносит файлы и папки с вложениями...
Автор: vlazari
Дата сообщения: 27.11.2007 17:49
sofos
Та добавь чтобы искал SIZE > и т.п. Я поэтому и выложил, т.к. его можно легко переделать под другие цели, схожие.
Автор: Toksa
Дата сообщения: 27.11.2007 17:50
А по моему вопросу я так понимаю спецов нет?..
Автор: mozers
Дата сообщения: 27.11.2007 19:34
sofos
Запускать del_empty_dir.cmd <путь к каталогу>. Поудаляет все пустые подпапки заданного каталога:
Код: @ECHO OFF
FOR /f "tokens=*" %%d IN ('DIR "%1" /s /b /a:d') DO RMDIR "%%d" > nul
Автор: Toksa
Дата сообщения: 27.11.2007 22:44
Обысканы, найдено почти всё - кроме того что я написал
Автор: sofos
Дата сообщения: 28.11.2007 08:16
mozers

C:\>del_empty_dir.cmd c:\temp\
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.

НЕ работает однако...
Автор: rosalin
Дата сообщения: 28.11.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 = "user@fabrikam.com"
objEmail.To = "adm@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") = "192.168.0.6"
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
Автор: fath
Дата сообщения: 28.11.2007 11:02
Имеем следующее:

...
xcopy /S /I /Y c:\папка с программой "\\192.168.6.11\c$\Documents and Settings\All Users\Главное меню\Программы\папка с программой"
xcopy /S /I /Y c:\папка с программой "\\192.168.6.12\c$\Documents and Settings\All Users\Главное меню\Программы\папка с программой"
xcopy /S /I /Y c:\папка с программой "\\192.168.6.13\c$\Documents and Settings\All Users\Главное меню\Программы\папка с программой"
....

фрагмент батника....раскидывает папку с программой по сети. Особенность программы - при ее запуске создает временную папку в том же каталоге и находиться сама прога, а т.к. прога запускается с правами пользователя, то работать он нормально не может, поэтому все равно приходиться подходить к каждому пользователю и руками разрешать доступ к папке. Можно ли из батника давать такие разрешения?
Автор: G14
Дата сообщения: 28.11.2007 11:44
Toksa
Вот отсюда начинай копать: http://msdn2.microsoft.com/en-us/library/aa364722.aspx
Автор: Etalon
Дата сообщения: 28.11.2007 12:23
fath
По скольку место создания временной папки известно
то для предоставления доступа к нужной папке можно использовать ГПО

Конфигурация компьютера\Конфигурация Windows\Файловая система
Автор: Toksa
Дата сообщения: 28.11.2007 13:01
G14
Вот что значит незамыленным глазом посмотреть)) Я рыл наверно дня два этот ресурс, в частности и эту ссылку - не находил... А сейчас - за 3 минуты нашёл то что искал))
http://msdn2.microsoft.com/en-us/library/aa366199.aspx
Автор: Etalon
Дата сообщения: 28.11.2007 14:18
sofos
На Windows PoweShell это можно реализовать так:

Код:
$a = get-childitem c:\temp -recurse
$a | ForEach-Object -Process {
if($_.Mode -eq "d----" -and (get-childitem -path $_.FullName) -eq $Null)
{
Remove-item $_.FullName -force
}
}
Автор: mozers
Дата сообщения: 28.11.2007 14:27
sofos
Цитата:
НЕ работает однако...
Виноват, поторопился. Ща свой пост поправил - так работает.
Автор: cluster
Дата сообщения: 28.11.2007 16:27
Нашёл скриптик, который создаёт список пользователей домена в XML-формат.

Код: sDomain = "dukavto.ru"
Set oDomain = GetObject("WinNT://" & sDomain)
oDomain.Filter = Array("User")

strXML = "<" & sDomain & ">" & VbCrLf

For Each oADobject In oDomain
    strXML = strXML & vbTab & "<user logon=""" & oADobject.Name & _
        """ fullname=""" & oADobject.FullName & _
        """ Department=""" & oADobject.Description & """ />" & VbCrLf

Next
strXML = strXML & VbCrLf & "</"& sDomain & ">"

Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set txtStream = FSO.CreateTextFile(sDomain & ".users.xml")

txtStream.Write strXML
Автор: Leuda
Дата сообщения: 28.11.2007 16:56
Доброго время.

Светлые головы не подскажите как создать ярлык на рабочем столе конкретного залогиненного пользователя, что то типа


Код:
On Error Resume Next
Set WshShell = WScript.CreateObject("WScript.Shell")
Set oShellLink = WshShell.CreateShortcut("C:\Documents and Settings\%Username%\Рабочий стол\NewPublic.lnk")
oShellLink.TargetPath = "\\server\shara"
oShellLink.WindowStyle = 1
oShellLink.Save
Автор: Etalon
Дата сообщения: 28.11.2007 17:08
cluster

Код:
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.CommandText = _
"Select Name, Location from 'LDAP://OU=MyOU,DC=fabrikam,DC=com' " _
& "Where objectClass='user'"
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst

Do Until objRecordSet.EOF
Wscript.Echo "User Name: " & objRecordSet.Fields("Name").Value
objRecordSet.MoveNext
Loop
Автор: Vorx
Дата сообщения: 28.11.2007 20:14
Leuda

Код: userprofile=WshShell.ExpandEnvironmentStrings("%USERPROFILE%")
Set oShellLink = WshShell.CreateShortcut(userprofile&"\Рабочий стол\NewPublic.lnk")
Автор: sofos
Дата сообщения: 28.11.2007 21:01
mozers

А подпапки пустые в пустой папке - не удаляет все равно...
Автор: 5555555
Дата сообщения: 28.11.2007 21:14
sofos

Цитата:
пустые в пустой папке - не удаляет все равно

юзай DiskState
Автор: mozers
Дата сообщения: 28.11.2007 22:23
sofos
Да... Я еще подумаю... Пока можешь юзать это.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576

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


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