Script para localizar todas as unidades locais remotas e, em seguida, verificar os diretórios de nível superior

0

Estou tentando descobrir como localizar, em servidores remotos, APENAS discos locais e, em seguida, examinar seus diretórios de nível superior. Isso é o que eu tenho até agora:

foreach ($i in Get-Content "U:\Powershell\Lists\Servers.txt")
    {$i + "'n" + "=========================="; [System.IO.DriveInfo]::getdrives() | Where-Object {$_.DriveType -eq 'Fixed'}}

Acredito que isso retorne apenas os discos locais do servidor local, mas esse também é o mais próximo que cheguei de descobrir o que quero ver. Também não tenho certeza absoluta de como obteria esses resultados e, em seguida, executaria um Get-ChildItem em relação às unidades listadas. Eu ainda sou relativamente novo no script PS, então qualquer explicação seria apreciada!

    
por AllTheThings 14.09.2016 / 21:55

1 resposta

0

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

    
por 15.09.2016 / 16:22