Você precisará configurar o WinRM Serviço para este .
$DriveInformation = @()
$servers = Get-Content "U:\Powershell\Lists\Servers.txt" | % {
$invoke = Invoke-Command -ComputerName $_ {
[System.IO.DriveInfo]::getdrives() | ? {$_.DriveType -eq 'Fixed'} |
% { gci $_.Name | ? {$_.PSIsContainer} }
}
$DriveInformation += $Invoke
}
Primeiro, criaremos uma matriz que conterá as informações sobre a unidade no final, depois leremos todos os nomes de servidores com get-content
, passaremos por cima com foreach-object
alias %
para obter os nomes de servidores. Então, estamos invocando o comando para ler as informações da unidade em cada servidor com invoke-command
, dentro do bloco de script invoke-command
que as unidades locais são selecionadas e para cada unidade selecionada, estamos fazendo get-childitem
aka gci
os diretórios de nível superior (somente diretórios. Se você quiser os arquivos também, exclua | ? {$_.PSIsContainer}
)
se você quiser exportar os dados, use:
$DriveInformation | out-file "U:\somepath\somename.txt" -force
e coloque-o no final do seu script