Нужно тоже самое, только в файлик.
» Автоматизация администрирования. Часть 2
Столкнулся со странной проблемой. Не могу перезагрузить компьютер из скрипта. Скрипт выполняется как Startup Script в AD на компьютерах пользователей домена. Сначала скриптом производятся определённые действия, потом должен быть рестарт.
Если запустить скрипт просто руками, то комп перезагружается, если как Startup, то результат непредсказуем. Может произойти перезагрузка, а может и не произойти.
Пробовал и через WMI и командой shutdown, пробовал паузы разные вставлять - результат одинаковый. 50 на 50. . В чём может быть дело?
Ещё хотел попробовать с помощью psutils, но там psshutdown при первом запуске выводит лицензионное соглашение, что неприемлимо.
Если запустить скрипт просто руками, то комп перезагружается, если как Startup, то результат непредсказуем. Может произойти перезагрузка, а может и не произойти.
Пробовал и через WMI и командой shutdown, пробовал паузы разные вставлять - результат одинаковый. 50 на 50. . В чём может быть дело?
Ещё хотел попробовать с помощью psutils, но там psshutdown при первом запуске выводит лицензионное соглашение, что неприемлимо.
Экспортирую в БД данные из Excel файла.
Нужна проверка типа значения, считываемого из ячейки в экселевском документе.
Есть какие-нибудь идеи?
Нужна проверка типа значения, считываемого из ячейки в экселевском документе.
Есть какие-нибудь идеи?
cluster
cscript DomainUsers.vbs > users.txt
cscript DomainUsers.vbs > users.txt
Bugriy
Цитата:
Там у всех утилит должен быть ключ -accepteula
Цитата:
Ещё хотел попробовать с помощью psutils, но там psshutdown при первом запуске выводит лицензионное соглашение, что неприемлимо.
Там у всех утилит должен быть ключ -accepteula
Люди, подскажите где в WMI описаны свойства сетевого подключения? Не айпи адрес и так далее, а те которые на вкладке "Дополнительно" - то есть пошарено оно или нет, если пошарено - то через какое подключение, если это ВПН подключение - то его настройки.. Я в общем то кое что нашёл - но мало. Задача такая - есть 2 компа - один из них раздаёт ICS-ом инет другому (шарит ВПН-подключение). На этом же компе есть ещё подключения, которые нужно бы периодически шарить - но ICS умеет шарить только одно подключение, соответственно нужен скрипт который бы шарил то подключение которое я хочу... Как расшаривать/зашаривать подключения - я понял, но вот как шарить с нужными мне настройками - нет...
Vorx
спасибо,
таким образом можно MSI пакеты удалять, винрар рассмтаривался в качестве примера, про определения версии не знал спасибо.
ситуация была в том, что когдато давно на большое колличество машин было руками установлено спецефическое ПО. а тут понадобилось установить новую версию, руками лень, инстал шилдом сделал MSI, но на компе других версий быть не должно, вот и встал вопрос автоматизации.
Можно попробовать так
удаление из эд/ремув програм
REG DELETE HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\номер продукта
del путь к проге
только есть ряд проблем
насколько я понял, номера ПО совпадают только в том случае если на все компы ставилось из одного пакета, я просмотрел пять компов, и там где ПО ставилось с одного экзешника номер совпадал. Хотя наверняка можно задать поиск в этом разделе и найденное удалять. также чистить и другие ключики. вопрос больше на решение подобных проблем в будущем
спасибо,
таким образом можно MSI пакеты удалять, винрар рассмтаривался в качестве примера, про определения версии не знал спасибо.
ситуация была в том, что когдато давно на большое колличество машин было руками установлено спецефическое ПО. а тут понадобилось установить новую версию, руками лень, инстал шилдом сделал MSI, но на компе других версий быть не должно, вот и встал вопрос автоматизации.
Можно попробовать так
удаление из эд/ремув програм
REG DELETE HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\номер продукта
del путь к проге
только есть ряд проблем
насколько я понял, номера ПО совпадают только в том случае если на все компы ставилось из одного пакета, я просмотрел пять компов, и там где ПО ставилось с одного экзешника номер совпадал. Хотя наверняка можно задать поиск в этом разделе и найденное удалять. также чистить и другие ключики. вопрос больше на решение подобных проблем в будущем
b0ne
Цитата:
Подчистить реестр от записей инсталятора МС (а, зоодно, от файлов в %windir%\installer) можно при помощи программы MSIZAP от самой МС (в пакете есть утилита, работающая из командной строки. Утилита корректно удаляет ВСЕ записи из реестра, связанные с конкретной инсталяцией (их там дофига).
Цитата:
удаление из эд/ремув програм
REG DELETE HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\номер продукта
del путь к проге
Подчистить реестр от записей инсталятора МС (а, зоодно, от файлов в %windir%\installer) можно при помощи программы MSIZAP от самой МС (в пакете есть утилита, работающая из командной строки. Утилита корректно удаляет ВСЕ записи из реестра, связанные с конкретной инсталяцией (их там дофига).
Парни подскажите плиз каким скриптом можно удалять пустые папки и подпапки???
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
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
'''''''''''''''''''''''''
vlazari
Спасиб конечно - только такой скрипт который сносит ЛЮБЫЕ папки мне не нужен -
Мне нужен скрипт который сносит Пустые папки (могут быть вложены еще пустые папки)
и не сносит файлы и папки с вложениями...
Спасиб конечно - только такой скрипт который сносит ЛЮБЫЕ папки мне не нужен -
Мне нужен скрипт который сносит Пустые папки (могут быть вложены еще пустые папки)
и не сносит файлы и папки с вложениями...
sofos
Та добавь чтобы искал SIZE > и т.п. Я поэтому и выложил, т.к. его можно легко переделать под другие цели, схожие.
Та добавь чтобы искал SIZE > и т.п. Я поэтому и выложил, т.к. его можно легко переделать под другие цели, схожие.
А по моему вопросу я так понимаю спецов нет?..
sofos
Запускать del_empty_dir.cmd <путь к каталогу>. Поудаляет все пустые подпапки заданного каталога:
Код: @ECHO OFF
FOR /f "tokens=*" %%d IN ('DIR "%1" /s /b /a:d') DO RMDIR "%%d" > nul
Запускать del_empty_dir.cmd <путь к каталогу>. Поудаляет все пустые подпапки заданного каталога:
Код: @ECHO OFF
FOR /f "tokens=*" %%d IN ('DIR "%1" /s /b /a:d') DO RMDIR "%%d" > nul
Обысканы, найдено почти всё - кроме того что я написал
mozers
C:\>del_empty_dir.cmd c:\temp\
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
НЕ работает однако...
C:\>del_empty_dir.cmd c:\temp\
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
Не удается найти указанный файл.
НЕ работает однако...
Ребята подскажите скрипт
что бы при запуске которого пользователь мог ввести текст
допустим какой нить проблемы и от кого
нажимал ОК и и текст у ходил админу на почту в локальной сети...
Код: 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
что бы при запуске которого пользователь мог ввести текст
допустим какой нить проблемы и от кого
нажимал ОК и и текст у ходил админу на почту в локальной сети...
Код: 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
Имеем следующее:
...
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\Главное меню\Программы\папка с программой"
....
фрагмент батника....раскидывает папку с программой по сети. Особенность программы - при ее запуске создает временную папку в том же каталоге и находиться сама прога, а т.к. прога запускается с правами пользователя, то работать он нормально не может, поэтому все равно приходиться подходить к каждому пользователю и руками разрешать доступ к папке. Можно ли из батника давать такие разрешения?
...
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\Главное меню\Программы\папка с программой"
....
фрагмент батника....раскидывает папку с программой по сети. Особенность программы - при ее запуске создает временную папку в том же каталоге и находиться сама прога, а т.к. прога запускается с правами пользователя, то работать он нормально не может, поэтому все равно приходиться подходить к каждому пользователю и руками разрешать доступ к папке. Можно ли из батника давать такие разрешения?
fath
По скольку место создания временной папки известно
то для предоставления доступа к нужной папке можно использовать ГПО
Конфигурация компьютера\Конфигурация Windows\Файловая система
По скольку место создания временной папки известно
то для предоставления доступа к нужной папке можно использовать ГПО
Конфигурация компьютера\Конфигурация Windows\Файловая система
G14
Вот что значит незамыленным глазом посмотреть)) Я рыл наверно дня два этот ресурс, в частности и эту ссылку - не находил... А сейчас - за 3 минуты нашёл то что искал))
http://msdn2.microsoft.com/en-us/library/aa366199.aspx
Вот что значит незамыленным глазом посмотреть)) Я рыл наверно дня два этот ресурс, в частности и эту ссылку - не находил... А сейчас - за 3 минуты нашёл то что искал))
http://msdn2.microsoft.com/en-us/library/aa366199.aspx
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
}
}
На 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
}
}
Нашёл скриптик, который создаёт список пользователей домена в 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
Код: 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
Доброго время.
Светлые головы не подскажите как создать ярлык на рабочем столе конкретного залогиненного пользователя, что то типа
Код:
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
Светлые головы не подскажите как создать ярлык на рабочем столе конкретного залогиненного пользователя, что то типа
Код:
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
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
Код:
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
Leuda
Код: userprofile=WshShell.ExpandEnvironmentStrings("%USERPROFILE%")
Set oShellLink = WshShell.CreateShortcut(userprofile&"\Рабочий стол\NewPublic.lnk")
Код: userprofile=WshShell.ExpandEnvironmentStrings("%USERPROFILE%")
Set oShellLink = WshShell.CreateShortcut(userprofile&"\Рабочий стол\NewPublic.lnk")
mozers
А подпапки пустые в пустой папке - не удаляет все равно...
А подпапки пустые в пустой папке - не удаляет все равно...
Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
Предыдущая тема: BackUp Win2003Serer
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.