Get-FileHash на всем диске C:
Я пишу сценарий для сбора всех хэшей файлов на диске C:, но не все. У кого-нибудь есть идеи? Я пробовал разные вещи.
gci -Path C:\ -Recurse | Get-FileHash -Algorithm MD5 | Out-File C:\test.txt
1 ответ
Поскольку вы вычисляете хэши файлов, сделайте
Get-ChildItem
возвращать только файлы, используя-File
переключатель.Чтобы также обрабатывать скрытые файлы, дополнительно используйте
-Force
переключатель.Вы должны запустить команду с повышением прав (от имени администратора), чтобы убедиться, что у вас есть доступ ко всем файлам, хотя по-прежнему возможно запретить доступ к определенным каталогам и файлам.
- По умолчанию это происходит со скрытыми, определенными системой перекрестками, например, в корне пользовательских профилей (например,
C:\Users\jdoe\Cookies
), которые существуют только для обратной совместимости; однако вы можете игнорировать их, потому что они просто указывают на другие каталоги, к которым можно получить доступ. - Обратите внимание, что
Get-ChildItem
В этом случае также игнорировать бы любые NTFS точек повторной обработки, которые указывают на другие диски или каталогов (узлов, символических ссылок, точек монтирования), даже если они являются доступными - что, вероятно, что вы хотите. - Используя
-ea SilentlyContinue -ev errs
(Короче для:-ErrorAction SilentlyContinue -ErrorVariable errs
) вы можете изучить массив$errs
потом, чтобы увидеть, к каким именно файлам нельзя было получить доступ.
- По умолчанию это происходит со скрытыми, определенными системой перекрестками, например, в корне пользовательских профилей (например,
# Examine $errs afterwards to see which paths couldn't be accessed.
Get-ChildItem C:\ -Recurse -File -Force -ea SilentlyContinue -ev errs |
Get-FileHash -Algorithm MD5 |
Out-File C:\test.txt
Обратите внимание Out-File
командлет сохраняет отображаемое представление вывода команды в файл, который не предназначен для дальнейшей программной обработки.
Чтобы сохранить представление, которое подходит для последующей программной обработки, использует командлет, такие как Export-Csv
.