Ambos os exemplos não funcionam devido à sintaxe incorreta do PowerShell. O código a seguir lista os tamanhos de volume do host atual (usando o PowerShell 5.0):
Get-WmiObject win32_logicalDisk -filter "DriveType=3" | %{ $_.DeviceID; $_.FreeSpace/1GB }
O código a seguir lista os tamanhos de volume dos hosts listados em server.txt :
Get-Content server.txt | %{ Get-WMIObject –computername $_ Win32_LogicalDisk -filter "DriveType=3" | %{ $_.DeviceID; $_.FreeSpace/1GB } }
Nota
Observe que o espaço reservado externo $_
enumera os endereços do servidor, enquanto o espaço reservado interno $_
enumera os dispositivos. Essa é uma tarefa frequente para iniciantes no PowerShell. Se você quiser usar o endereço do servidor no loop interno, precisará atribuí-lo a uma nova variável no loop externo.
O software do fórum usado aqui é falho. Nas pré-visualizações de post, ele é exibido $_
corretamente como um $_
código mesmo que não seja escapado. Mas a postagem final remove o sublinhado, tornando os exemplos do PowerShell incorretos.