Olá Estudante, tudo bem com você?
Peço desculpas pela demora em obter um retorno.
O erro, "Get-Content : Não é possível associar o argumento ao parâmetro 'Path' porque ele é nulo." está indicando que o comando Get-Content
está recebendo um valor nulo, este erro está ocorrendo devido à passagem do conteúdo da variável $filePath
para este comando o correto será passar o valor da variável $item
que contém o objeto da iteração do laço foreach
.
O código ficará da seguinte forma após a correção: $fileContent = Get-Content $item
Código completo com a mudança aplicada
function Get-FileSHA1($filePath) {
foreach ($item in $input) {
$ErrorActionPreference="Stop"
$fileContent = Get-Content $item
$fileBytes = [System.Text.Encoding]::UTF8.GetBytes($fileContent)
$sha1 = New-Object System.Security.Cryptography.SHA1Managed
$hash = $sha1.ComputeHash($fileBytes)
$prettyHashSB = New-Object System.Text.StringBuilder
foreach ($byte in $hash) {
$hexaNotation = $byte.ToString("X2")
$prettyHashSB.Append($hexaNotation) > $null
}
$prettyHashSB.ToString()
}
}
Após realizar a mudança, salve o arquivo com o script. Abra uma nova janela do PowerShell na pasta que contém os arquivos e execute o script usando Dot-Source (colocando um ponto .
e o caminho para o script) e logo após basta fazer o uso da função, com o comando (gci -file).fullname|get-filesha1
Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.
Em caso de dúvidas estou à disposição.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!