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

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

Автор: Refugee
Дата сообщения: 12.01.2009 11:44
wmulke
в реестр в HKCU\Control Panel\Desktop\SCRNSAVE.EXE
там надо прописать батник, в котором будет вызываться logoff.exe (батник нужен, чтобы не передавать logoff.exe параметр /s, с которым вызывается скринсейвер)
Автор: YNY
Дата сообщения: 12.01.2009 12:25

Цитата:
Через GPO сделать это не могу, так как нет на него доступа

если нет прав, то и логофф тебе не по правам!!!
Автор: yazzi
Дата сообщения: 19.01.2009 09:50
Здравствуйте, подскажите пожалуйста как получить путь к Windows
Нашол
кому интересно вот

Код:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WinDir = FSO.GetSpecialFolder(0)
Автор: mikeus
Дата сообщения: 19.01.2009 11:36
Refugee
О, logoff скринсейвером - изящное решение. И таймер не нужно программировать., всё само штатным образом работает.
Автор: gbcfkf
Дата сообщения: 20.01.2009 07:42
Всех приветствую!

Такая задача: нужно определить заблокирована ли учетная запись в AD.
Пишу скрипт vbs:

Код:
Set objUser = GetObject("LDAP://cn=Иванов Иван Иванович,ou=org1,ou=org2,dc=dom1,dc=dom2")
If objUser.IsAccountLocked Then
wscript.echo "Account is locked."
else
wscript.echo "Account is unlocked"
End If
Автор: ShafMAN
Дата сообщения: 20.01.2009 09:21
Здравствуйте.
Возможно скриптом перехватывать пароли пользователей домена например при входе в систему? Вроде поднималась эта тема тут, только чем это всё закончилось
Автор: gbcfkf
Дата сообщения: 20.01.2009 09:36
ShafMAN
Можно, keylogger'ом.. при условии, что нет антивируса..
Автор: hpl1925
Дата сообщения: 22.01.2009 08:25
Помогите автоматизировать работу с telnet

Например:

Код:
telnet xx.xx.xx.xx
ждем login
вводим
ждем password
вводим
...
т.д.
Автор: el_verdugo
Дата сообщения: 26.01.2009 06:39
Здравствуйте, подскажите пожалуйста, можно ли при помощи VBScript и WMI определить, установлен ли антивирус (как это делает центр безопасности Windows)? Если можно, то как?
Автор: Vby
Дата сообщения: 26.01.2009 10:59
hpl1925
Как-то так:

strComputer = "."
Set oShell = WScript.CreateObject("WScript.Shell")
oShell.Run "telnet.exe ip_modem"
WScript.Sleep 1000
oShell.SendKeys "USername" & chr(13)
WScript.Sleep 1000
oShell.SendKeys "Pass" & chr(13)
WScript.Sleep 1000
oShell.SendKeys "i t.d." & chr(13)

el_verdugo
И как-то так:

strComputer = "."
Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\SecurityCenter")
Set colFirewall = oWMI.ExecQuery("Select * From AntiVirusProduct")
If (colFirewall.count <> Null) Then
For Each objAntiVirusProduct In colItems
WScript.Echo "companyName: " & objAntiVirusProduct.companyName
WScript.Echo "displayName: " & objAntiVirusProduct.displayName
WScript.Echo "enableOnAccessUIMd5Hash: " _
& objAntiVirusProduct.enableOnAccessUIMd5Hash
WScript.Echo "enableOnAccessUIParameters: " _
& objAntiVirusProduct.enableOnAccessUIParameters
WScript.Echo "instanceGuid: " & objAntiVirusProduct.instanceGuid
WScript.Echo "onAccessScanningEnabled: " _
& objAntiVirusProduct.onAccessScanningEnabled
WScript.Echo "pathToEnableOnAccessUI: " _
& objAntiVirusProduct.pathToEnableOnAccessUI
WScript.Echo "pathToUpdateUI: " & objAntiVirusProduct.pathToUpdateUI
WScript.Echo "productUptoDate: " & objAntiVirusProduct.productUptoDate
WScript.Echo "updateUIMd5Hash: " & objAntiVirusProduct.updateUIMd5Hash
WScript.Echo "updateUIParameters: " _
& objAntiVirusProduct.updateUIParameters
WScript.Echo "versionNumber: " & objAntiVirusProduct.versionNumber
Next
Else
WScript.Echo "Антивирус отсутствует"
End If
Автор: el_verdugo
Дата сообщения: 27.01.2009 01:36
Vby
Большое спасибо.

gbcfkf
Keylogger начинает работу только после загрузки системы, поэтому этот вариант отпадает...

ShafMAN
За авторизацию пользователей отвечает библиотека msgina.dll. Для того, чтобы перехватить пароль пользователя надо, чтобы "шпион" загружался РАНЬШЕ этой библиотеки. Keylogger'ов, способных выполнить такую задачу я не встречал.
Если есть непосредственный доступ к домену, то почему бы не воспользоваться каким-нибудь взломщиком паролей? В коллекции от Elcomsoft что-то подобное было.

PS или смотреть в сторону http://www.rsdn.ru/article/baseserv/extgina.xml
Автор: monsoon
Дата сообщения: 29.01.2009 10:39
hpl1925
еще в теме по батникам в шапке есть ссылка на Полезные утилиты. Среди них есть утилита tst.

Цитата:
tst - скриптовая утилита для автоматизации telnet-сессий

Сам пока не пользовался.

Добавлено:
С указанного там сайта у меня не грузится. Можно погуглить на предмет "Telnet Scripting Tool". Я, к примеру, нашел здесь
Автор: el_verdugo
Дата сообщения: 03.02.2009 03:25
Здравствуйте!
Подскажите пожалуйста, можно ли с помощью WMI получить имя переименованного файла (и какое было, и какое стало)?
Если сделать перехват события __InstanceModificationEvent класса Win32_LogicalDisk, то можно отловить событие переименования (хотя наверняка будет отлавливаться событие изменения файла, а это уже лишнее), но максимум, что узнаю - диск, на котором произошли изменения. За файлы вроде отвечает CIM_DataFile, но на переименование никак не реагирует. То, что я пытаюсь сделать, реально?
Автор: YNY
Дата сообщения: 06.02.2009 07:11
если ты не в висте, где есть служба специальная, то нет: зачем хранить где-то старое имя файла? Не слышае еще что WMI позволяет перехватывать системные сообщения, эт тока на языках высшего уровня (С++, и т.п.) моно сделать, а тут ск всего только факт переименования зафиксируется.
Автор: el_verdugo
Дата сообщения: 06.02.2009 07:19
YNY
На счет старого имени я немного нарыл информации, за это отвечает PreviousInstance, но вопрос остается: как отловить само событие переименования?
PS вопрос вдогонку: как отловить событие копирования и создания файла?
Автор: YNY
Дата сообщения: 06.02.2009 08:45
скорей всего так:
1 включить аудит на папку
2 читать из eventloga события

Добавлено:
а путь "__InstanceModificationEvent класса Win32_LogicalDisk" -- геморойный и мутный
Автор: reaper
Дата сообщения: 06.02.2009 09:05
может быть, это как-то возможно через ntfs journal? создается через fsutil usn. кстати, кто подскажет, как можно с его помощью отследить создание новых файлов?
Автор: mihmig
Дата сообщения: 06.02.2009 10:41
YNY правильно говорит - через аудит надежней и проще, все записи вносятся в журнал, по планировщику запускаешь EventSave а потом парсишь текстовые файлы. Я та выловил юзера который любил стирать файлик.
Автор: el_verdugo
Дата сообщения: 09.02.2009 02:08
YNY, это подойдет, когда объект мониторинга - всего несколько папок... а мне нужно примерно следующее: запретить создавать (копировать, переименовывать) файлы определенного типа везде, кроме одной папки... исходя из этого аудит отпадает...
PS а рыть надо, похоже в сторону http://msdn2.microsoft.com/en-us/library/aa393649.aspx
Автор: YURETS777
Дата сообщения: 09.02.2009 11:24
Задача такая, групповой политикой ставится MSI-ка, но во время инсталляции никаких сообщений на экран не выводится.
Как сделать вывод сообщения во время инсталляции ?
Startup отрабатывает после установки MSI, и мой банер выскакивает на экране когда уже всё проставлено.
Можно ли сделать так, чтобы Установка пакетов выполнялась после startup-а ?
Автор: el_verdugo
Дата сообщения: 10.02.2009 01:21
YURETS777, а в каком режиме происходит установка? Если режим -qn, то попробуйте режим -qb
Автор: YURETS777
Дата сообщения: 10.02.2009 09:12
А где этот режим указывается ?
Я MSI поставил как особое, и в разделе модификация указал схему установки, подготовленную в ОРК.



Автор: YNY
Дата сообщения: 10.02.2009 10:05

Цитата:
YURETS777

после стартапа - поставь на логон ) или если реально хоца посмотреть как идет процесс инст, мона попробовать поиграть с ключами инсталлера, но может не проканать

Добавлено:

Цитата:
el_verdugo

да уж вы батенька реальный геморойщик, ну допустим само событие вы поймаете, но и все: вам самому затем прийдется стирать или переименовывать + это будет очень тормозно, а если запись того чего не нада тоже автоматизированна, то вы просто подвесите комп ЫЦ.
+ аудит и на целый жесткий диск (С: .... Х мона поставить, но опять тормоза.
Проце настроить правильно права доступа к диску и усе будет хороше ).

Добавлено:
а вообще: смотреть за типом создаваемых объектов из проги, лучше всего не скриптовыми методами а откомпилированными прогами лучше всего загружаемыми как дрова, вот тада тормозов не будет. Есть разные проги платные реализ подобный доступ к среде ) - это не дешовый продукт.

Добавлено:
Для обей инфы по безопасности в винде мона посмотреть http://msdn.microsoft.com/en-us/library/aa374860(VS.85).aspx
Автор: YURETS777
Дата сообщения: 10.02.2009 12:00
Так стартап выполняется после MSI-ки, а мне нужно до.
Я уже так пробовал, 20 минут ставится MSI-ка а потом всплывает мой банер из стартапа
Весь смысл банера, чтобы пользователи во время исталляции MSI-ки не вырубали комп, а то потом ручками править реестр геморно


Цитата:
после стартапа - поставь на логон ) или если реально хоца посмотреть как идет процесс инст, мона попробовать поиграть с ключами инсталлера, но может не проканать

Автор: el_verdugo
Дата сообщения: 11.02.2009 02:14
YURETS777, тогда смотри в OPK, где и какие галочки ставил, там должны быть режимы...
YNY, на сайте серого форума http://forum.script-coding.info/viewtopic.php?id=563 есть инфа, как можно следить за ОДНОЙ директорией... а за диском получается нереально...

по ссылке выше и еще по другой имеющейся информации пытался сделать постоянную подписку на какое-нибудь событие, но чего-то не получается, где моя ошибка?


Код: Set oWmi = GetObject("WinMgmts:{impersonationLevel=impersonate}!//./root/cimv2")

If WScript.Arguments.Count>0 Then
oWmi.Get("__EventFilter.Name='myFileMon'").Delete_
oWmi.Get("CommandLineEventConsumer.Name='myMonEvent'").Delete_
WScript.Echo "Service was Deleted"
WScript.Quit
End If

Set oWmi = GetObject("WinMgmts:{impersonationLevel=impersonate}!//./root/cimv2")
Set oFilter = oWmi.Get("__EventFilter").SpawnInstance_
oFilter.Name = "myFileMon"
oFilter.QueryLanguage = "WQL"
oFilter.Query = "SELECT * FROM __InstanceCreationEvent WITHIN 3 WHERE TargetInstance ISA 'Win32_LogicalDisk'"

oFilter.Put_ (wbemChangeFlagCreateOrUpdate Or wbemFlagReturnWhenComplete)

cmd = "cmd.exe /k echo [%TargetInstance.Caption%]"
Set oConsumer = oWmi.Get("CommandLineEventConsumer").SpawnInstance_
oConsumer.Name="myMonEvent"
oConsumer.WindowTitle="EVENT"
oConsumer.CommandLineTemplate=cmd
WorkingDirectory="C:\\"
oConsumer.RunInteractively=True
oConsumer.Put_ (wbemChangeFlagCreateOrUpdate Or wbemFlagReturnWhenComplete)

Set oFilter = oWmi.Get("__EventFilter.Name='myFileMon'")
Set oConsumer = oWmi.Get("CommandLineEventConsumer.Name='myMonEvent'")

Set oBinding = oWmi.Get("__FilterToConsumerBinding").SpawnInstance_
oBinding.Filter = oFilter.Path_.Path
oBinding.Consumer = oConsumer.Path_.Path
oBinding.Put_ '(wbemChangeFlagCreateOrUpdate Or wbemFlagReturnWhenComplete)
WScript.Echo "Service was Installed"
Автор: abasov
Дата сообщения: 11.02.2009 08:07
Скрипт ищет в реестре по части имени и удаляет в зависимости от того является ли приложение MSI, или EXE uninstaller.
Мозгов не хватает как через строковые переменные проверять, если параметр QuietUninstallString = "/SILENT", то подставлять с QuietUninstallString: unins000.exe" /SILENT (inno), нет такого параметра просто брать из UninstallString?
В данном варианте если не MSI, то постоянно UninstallString=x & " /silent"

Код: '==========
On Error Resume Next
'Option Explicit

Dim strComputer, strMSI, MSIapp, App, AppToRemove, objShell, COMPUTERNAME, objEmail, DisplayN, Uninst, Publ, QuietUninstallString
strComputer = "."
set objShell = CreateObject("WScript.Shell")

'========================================

AppToRemove = "skype"

strMSI = UninstallString(AppToRemove)

If strMSI<>"" then

'wscript.echo strMSI
objShell.Run strMSI
End If

function UninstallString(strProductName)
dim strComputer, oReg, strKeyPath, arrSubKeys, subkey, x
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."

Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")

' Get array of subkeys under uninstall registry entry
strKeyPath = "SOFTWARE\microsoft\windows\currentversion\uninstall"
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys

For Each subkey In arrSubKeys
x=FindUninstallString(subkey, strProductName)
if x<>"" then
if LCase(Left(x,7))="msiexec" then
' Check msiexec for parameters...
if InStr(1,x,"/I")>0 then x=Replace(x, "/I","/X")
if InStr(1,x,"/quiet")<1 then x=x & " /quiet"
if InStr(1,x,"/noreboot")<1 then x=x & " /noreboot"
end if

UninstallString=x & " /silent"
'wscript.echo x & " /silent"
exit function
end if
Next


end function

function FindUninstallString(strKey, strProductName)
dim DisplayName, Publisher, UninstallString, search, QuietUninstallString
On Error Resume Next
DisplayName=objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & strKey & "\DisplayName")
Publisher=objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & strKey & "\Publisher")
UninstallString=objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & strKey & "\UninstallString")
QuietUninstallString=objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & strKey & "\QuietUninstallString")
search = Instr(1, DisplayName, strProductName, 1)

' Get uninstall string
if search>0 Then
if UninstallString="" then UninstallString="MsiExec.exe /X" & strKey
FindUninstallString = UninstallString

DisplayN=objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & strKey & "\DisplayName")
Publ=objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & strKey & "\Publisher")
Uninst=objShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & strKey & "\UninstallString")

end if
end function
Автор: YURETS777
Дата сообщения: 11.02.2009 09:04
Этот вариант не подходит, т.к. используется AccordWinNet и он блокирует вывод сообщений об инсталляции MSI, нужно именно прикрутить банер, чтобы он работал до загрузки MSI

el_verdugo

Цитата:
тогда смотри в OPK, где и какие галочки ставил, там должны быть режимы...

Автор: YNY
Дата сообщения: 11.02.2009 12:06

Цитата:
el_verdugo

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

Добавлено:

Цитата:
YURETS777

обычно при загр компа пишется на прямоугольнике:
"идет применение групповых политик ...."
или
"установка ....."
так что не понятно с какова выключать комп.
Если же ничего не пишется то возмона вы хотели: опубликовать вместо инсталлить или то, что устанавливается имеет файл ответов-редактируйте его, или УСТАНОВЩИК несет ключи в себе и тут ничего не поделать )


Добавлено:
раньше приведено много примеров того как читать из реестра ищите!
Автор: YURETS777
Дата сообщения: 11.02.2009 14:08
В том то и дело что на всех станциях стоят винлогоны и ничего не пишется, надписи "идет применение групповых политик ...." НЕТ.
На XP-шных проблем нет но их мало, основная масса 2000-ые.


Цитата:
обычно при загр компа пишется на прямоугольнике:
"идет применение групповых политик ...."
или
"установка ....."
так что не понятно с какова выключать комп.
Если же ничего не пишется то возмона вы хотели: опубликовать вместо инсталлить или то, что устанавливается имеет файл ответов-редактируйте его, или УСТАНОВЩИК несет ключи в себе и тут ничего не поделать )

Автор: el_verdugo
Дата сообщения: 12.02.2009 01:20
YNY, если под этим

Цитата:
el_verdugo
2 - в твоем примере слеши стоят по ходу не в ту сторону.

ты имел ввиду эту

Цитата:
Set oWmi = GetObject("WinMgmts:{impersonationLevel=impersonate}!//./root/cimv2")

строку, то здесь все равно, какие слэши ты используешь, прямые или обратные... а если нет, то какую именно строку ты имел ввиду???

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576

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


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