Что нового

[Автоматизация] Сбор информации о ранее запущенных приложениях

pic0

Новичок
Сообщения
2
Репутация
0
Есть задача проверить какие ранее приложения запускались на компе. Админских прав нет.
Доступа к "Аудиту отслеживания процессов" нет,но есть доступ к реестру.
В реестре была найдена ветка
Код:

Код:
HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache

Судя по всему это ассоциация значков и приложений.

Есть мысль вытягивать путь к запускаемому приложению из этой ветки. и название приложения.
Есть RegRead() как вытянуть не первую строчку или строчку с конкретным именем, а все подряд.
Подскажите как это сделать?
 

Dm666

Осваивающий
Сообщения
221
Репутация
48
Из справки:
Код:
For $i = 1 To 100
	$var = RegEnumVal("HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache", $i)
	If @error <> 0 Then ExitLoop
	MsgBox(4096, "Value Name  #" & $i & " MUICache", $var)
Next
 

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Может так подойдет?
Код:
For $i = 1 To 9999999999
    $var2 = RegEnumVal("HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache", $i)
    If @error <> 0 Then ExitLoop
	$var2 = StringReplace($var2,'@','')
	$var = StringSplit($var2,',')
	if $var[0] = 2 Then
		$Read = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache",$var2)
		$Key = $var[2]
		$Exe = $var[1]
		$Inf = ''
		if StringRight($Exe,4) = '.exe' Then
			$Inf &= 'Исполняемый файл'
		ElseIf StringRight($Exe,4) = '.dll' Then
			$Inf &= 'Библиотека'
		EndIf
		MsgBox(4096, "Value Name  #" & $i & " MUICache", 'Ключ: '&$Key&@CRLF&'Файл: '&$EXE&@CRLF&'Тип: '&$Inf&@CRLF&'Информация: '&$Read)
	EndIf
Next


:smile:
 

XpycT

Скриптер
Сообщения
380
Репутация
133
Мой Вариант
Код:
Dim $iError = 0, $iInstance = 1, Dim $sRegKeyName = "HKCU\Software\Microsoft\Windows\ShellNoRoam\MUICache"
While Not $iError
	$sRegVal = RegEnumVal($sRegKeyName, $iInstance)
	$iError = @error

	If StringLeft($sRegVal, 1) = "@" Then $sRegVal = StringTrimLeft($sRegVal, 1)

	$sPathName = StringRegExpReplace($sRegVal, "(?six)(.*),.*", "\1")
	$sKey = StringRegExpReplace($sRegVal, "(?six).*,(.*)", "\1")
	If $sPathName = $sKey Then $sKey = ""

	$sDesc = RegRead($sRegKeyName, $sRegVal)

	MsgBox(0, $sRegKeyName, "Reg Value : " & $sRegVal & @CRLF & " Path & Name : " & $sPathName & @CRLF & "Key : " & $sKey & @CRLF & "Desc : " & $sDesc)

	$iInstance += 1
WEnd
 
Автор
P

pic0

Новичок
Сообщения
2
Репутация
0
Ага спасибо за ответы :smile:
Вот что получилось
Код:
$namecomp=String(@ComputerName)
$username=String(@UserName)
$m = @MON
$d = @MDAY
$y = @YEAR
$file=FileOpen($namecomp&'_'&$username&'_'&$d & '-' & $m & '-' & $y&'.file', 1)
MUICache()
FileClose($file)
FileMove("U:\users\"&$username&"\in\softin\"&$namecomp&'_'&$username&'_'&$d&'-'&$m&'-'&$y&'.file',"U:\users\user\in\comps")
Func MUICache()
For $i = 1 To 9999
$var = RegEnumVal("HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache", $i)
$varvalue=RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache", $var)
$var=StringReplace($var,'@','')
$var2=StringSplit($var,',')
if StringRight($var2[1],4)='.dll' Or StringRight($var2[1],12) = 'unregmp2.exe'  Then ContinueLoop
if StringLeft($var2[1],20)='C:\WINDOWS\system32\' Or StringLeft($var2[1],6)='LangID' Then ContinueLoop	
if StringLen($var)=0 Then ExitLoop
FileWrite($file,$var2[1]&'  -  '&$varvalue&@CRLF)
Next
EndFunc


Подскажите еще как можно вытащить историю запросов на сайты в файрфоксе эксполере. Если журналирование отключено.Условия теже. Админ прав на комп нет.

Как-будто никак...
 
Верх