Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для YuS_2

Crazy


Contributor


Сообщения: 1234
Благодарности: 517

Профиль | Отправить PM | Цитировать


Цитата alexdomovoi:
нельзя сюда применить из первого сообщения »
да, можно, конечно.

Цитата alexdomovoi:
что бы собирались данные по exe из всех подпапок тоже? »
на это влияет параметр -Recurse командлета Get-ChildItem, который в моем варианте также присутствует. Вы ведь можете увидеть, что в файле присутствуют пути к файлам из подкаталогов... то бишь, разницы никакой нет, ещё и экономия памяти в моем варианте...
Но если хочется, то проблем никаких нет:
Код: Выделить весь код
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

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:29, 07-01-2025 | #34