Eu sou novo no Powershell e uso o PS v2. Eu posso ver o enorme potencial que tem, mas eu simplesmente não consigo que o código a seguir funcione totalmente. Eu estou tentando acabar com um arquivo csv que contém as dlls wild carded necessários no GAC_MSIL ou subdiretório, obter a versão dll, nome do arquivo interno e caminho e o endereço IP do servidor.
O código está abaixo e está no formato de linha única porque parece mais fácil ser remoto em um dos servidores no farm de servidores e executar a linha única desse console, até os logins de segurança etc. O código foi produziu um conjunto de resultados, mas apenas para o último servidor, provavelmente ele faz o primeiro servidor, então substitui-lo, mas não tenho certeza sobre isso.
Eu tenho lido muito sobre o uso de arrays e objetos personalizados, e tentei fazer isso, mas minhas habilidades de script no PS ainda não estão à altura.
$out = "Ouput_dll_ver_results.csv";
foreach ($server in '11.222.33.123', '11.222.33.124')
{
$VersionInfo =
(
Get-ChildItem \$server\C$\windows\assembly\GAC_MSIL -recurse -Include abc*.dll,def*.dll,ghi*.dll,jkl*.dll
| Where-Object{$_.FullName -notmatch "\windows\assembly\temp\"}
)
};
$VersionInfo | %{Get-Command $_.FullName} | select -expand File* |Export-Csv $out
Você pode, por favor, avisar se / como o código acima pode ser corrigido, e se não, que alternativas eu tenho para obter as informações que eu preciso?