|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Массовое определение контрольных сумм файлов |
|
PowerShell - Массовое определение контрольных сумм файлов
|
Старожил Сообщения: 184 |
Добрый день! Хочу в папке Windows всем exe файлам определить контрольные суммы (в дальнейшем и не только в Windows). Через PowerShell:
param ( [string]$FolderPath, # c:\windows [string]$LogFile = "c:\1\checksums.log" ) if (-Not (Test-Path $FolderPath)) { Write-Host "Путь не найден: $FolderPath" exit } $files = Get-ChildItem -Path $FolderPath -Recurse -Filter *.exe $logFileStream = New-Object System.IO.StreamWriter($LogFile, $false) foreach ($file in $files) { try { $hash = Get-FileHash -Path $file.FullName -Algorithm SHA256 $logEntry = "{0} {1}" -f $hash.Hash, $file.FullName $logFileStream.WriteLine($logEntry) Write-Host "Контрольная сумма для $($file.FullName): $($hash.Hash)" } catch { Write-Host "Ошибка при обработке файла $($file.FullName): $_" } } $logFileStream.Close() Write-Host "Результаты сохранены в $LogFile" Цитата:
Цитата:
|
|||
Отправлено: 13:19, 28-12-2024 |
Старожил Сообщения: 184
|
Профиль | Отправить PM | Цитировать А там может путь к файлу прописать?
|
Отправлено: 19:08, 06-01-2025 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Crazy Сообщения: 1232
|
Профиль | Отправить PM | Цитировать Цитата alexdomovoi:
|
|
------- Отправлено: 20:42, 06-01-2025 | #32 |
Старожил Сообщения: 184
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
можно и прописать... можно и рядом со скриптом его поискать... тут уж, чего больше душа пожелает... » Да, спасибо с файлом разобрался, подскажите, а нельзя сюда применить из первого сообщения Цитата:
по хешу разному разобрался утилита certutil дает хеш тот который дает и скрипт, а вот почему 7zip дает другой при выборе SHA256 непонятно ну и ладно, у меня 7zip в системе нет. |
|
Последний раз редактировалось alexdomovoi, 07-01-2025 в 04:42. Отправлено: 04:37, 07-01-2025 | #33 |
Crazy Сообщения: 1232
|
Профиль | Отправить PM | Цитировать Цитата alexdomovoi:
Цитата alexdomovoi:
Но если хочется, то проблем никаких нет: param ( [string]$FolderPath, # c:\windows [string]$LogFile = "c:\1\checksums.log" ) if (-Not (Test-Path $FolderPath)) { Write-Host "Путь не найден: $FolderPath" exit } function get-fhash($x){ $hash = [security.cryptography.sha256]::create() $file = gi $x $stream = $file.openread() $strb = new-object Text.StringBuilder foreach($byte in $hash.computehash($stream)){ $null = $strb.append($byte.tostring('x2')) } $stream.close() return $strb.tostring() } $files = dir $FolderPath -rec -filt "*.exe" $files|%{ new-object PSObject -Property @{Path = $_.fullname;SHA256 = get-fhash $_.fullname} } |convertto-csv -notyp|out-file $LogFile -enc utf8 |
||
------- Отправлено: 12:29, 07-01-2025 | #34 |
Старожил Сообщения: 184
|
Профиль | Отправить PM | Цитировать Резюмирую:
Проверил на XP-7 PowerShell 2.0 param ( [string]$FolderPath, # c:\windows [string]$LogFile = "c:\1\checksums.log" ) if (-Not (Test-Path $FolderPath)) { Write-Host "Путь не найден: $FolderPath" exit } function get-fhash($x){ $hash = [security.cryptography.sha256]::create() $file = gi $x $stream = $file.openread() $strb = new-object Text.StringBuilder foreach($byte in $hash.computehash($stream)){ $null = $strb.append($byte.tostring('x2')) } $stream.close() return $strb.tostring() } $files = dir $FolderPath -rec -filt "*.exe" $files|%{ new-object PSObject -Property @{Path = $_.fullname;SHA256 = get-fhash $_.fullname} } |convertto-csv -notyp|out-file $LogFile -enc utf8 Цитата:
вот этот вариант на XP-7 PowerShell 2.0: function get-fhash($x){ $hash = [security.cryptography.sha256]::create() $file = gi $x $stream = $file.openread() $strb = new-object Text.StringBuilder foreach($byte in $hash.computehash($stream)){ $null = $strb.append($byte.tostring('x2')) } $stream.close() return $strb.tostring() } dir $env:windir\system32\*.exe -rec|%{ new-object PSObject -Property @{Path = $_.fullname;SHA256 = get-fhash $_.fullname} } |convertto-csv -notyp |out-file c:\1\out.csv -enc utf8 |
|
Отправлено: 10:46, 08-01-2025 | #35 |
Crazy Сообщения: 1232
|
Профиль | Отправить PM | Цитировать Цитата alexdomovoi:
Цитата alexdomovoi:
param ( [string]$FolderPath = "c:\windows", # c:\windows [string]$LogFile = "c:\1\checksums.log" ) ... Цитата alexdomovoi:
Так он мог себя вести до того, как я его поправлял... если там в коде вызов функции был таким: а не как сейчас: |
|||
------- Последний раз редактировалось YuS_2, 08-01-2025 в 15:09. Отправлено: 15:04, 08-01-2025 | #36 |
Старожил Сообщения: 184
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
|
|
Отправлено: 19:39, 08-01-2025 | #37 |
Crazy Сообщения: 1232
|
Профиль | Отправить PM | Цитировать Цитата alexdomovoi:
Цитата:
- надо поменять на это: Ну или использовать тот последний вариант скрипта, где путь к каталогу можно указывать в качестве параметра скрипта. |
||
------- Отправлено: 22:23, 08-01-2025 | #38 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Массовое переименование файлов | Super_Kolobok | Скриптовые языки администрирования Windows | 4 | 19-05-2024 16:28 | |
Программы для сверки контрольных сумм | KaSpieC 666 | Хочу все знать | 17 | 16-12-2014 18:39 | |
CMD/BAT - Сравнение контрольных сумм md5 | vodka | Скриптовые языки администрирования Windows | 11 | 09-01-2013 07:11 | |
Прочие - Программы для подсчёта контрольных сумм файлов | ALEXEY_DFD | Программное обеспечение Windows | 14 | 18-11-2011 15:30 | |
C/C++ - Получение контрольных сумм файлов (MD5, и т.д.) и их проверка в Online-сервисах | Drongo | Программирование и базы данных | 49 | 30-08-2010 18:39 |
|