PowerShell é um ótimo framework para administradores de sistemas. É bastante fácil de aprender e usar, permitindo que você seja extremamente eficiente.
#SAPonMS
Os administradores podem usar o PowerShell para gerenciar seus sistemas e melhorar seus fluxos de trabalho diários, assim como os desenvolvedores em nossa equipe o usam regularmente em diversas situações. No entanto, por mais que eu goste do PowerShell, tenho um problema com ele:
A maneira como lida com links simbólicos
.
É bastante comum os administradores usarem links simbólicos, mas infelizmente a forma como são exibidos no PowerShell não é a ideal. Deixe-me mostrar do que estou falando antes de explicar uma possível solução:
Imagine o seguinte cenário: você tem um arquivo específico, vamos chamá-lo de "MeuArquivo.txt" e ele está localizado em
C:\MinhaPasta\MeuArquivo.txt
Em seguida, você deseja ter um link simbólico para esse arquivo. Para simplificar, vamos colocá-lo no mesmo diretório:
Você pode usar o comando PowerShell
New-Item -Name C:\MinhaPasta\MeuArquivoLinkSym.txt -ItemType SymbolicLink -Value C:\MinhaPasta\MeuArquivo.txt
para criar esse link. Claro, você também poderia usar o "bom e velho" prompt de comando, que oferece o comando mklink.exe.
Agora, tente verificar o conteúdo da pasta usando Get-Childitem:
Modo ÚltimaModificação Tamanho Nome
---- ------------- ------ ----
d---l 30/07/2018 15:03 MeuArquivoLinkSym.txt
-a--- 30/07/2018 14:23 12 MeuArquivo.txt
Você pode ver imediatamente o que me incomoda: não reconhece que você tem um link simbólico. Claro, você pode olhar o tamanho do elemento. No entanto, essa não é uma solução porque o mesmo problema é válido para links simbólicos de pastas. Criar uma subpasta "SubPasta" e um link simbólico para ela, chamado "LinkSubPasta", resulta na seguinte visualização de pasta:
Modo ÚltimaModificação Tamanho Nome
---- ------------- ------ ----
d---l 30/07/2018 15:03 MeuArquivoLinkSym.txt
d---- 30/07/2018 15:14 SubPasta
d---l 30/07/2018 15:14 LinkSubPasta
-a--- 30/07/2018 14:23 12 MeuArquivo.txt
Para ser completamente justo, é preciso dizer que a partir da versão 5 do PowerShell, você pode ver que está lidando com um link simbólico ao olhar para o "l" na propriedade Modo. Isso significa que há uma maneira de distinguir entre a pasta original e o link simbólico. No entanto, ainda não é possível ver o destino para o qual o link aponta. Bastante irritante, não é?
Supondo que você tenha uma configuração mais complicada e considerando que normalmente você não nomeia seus links simbólicos como "link*", isso tem um grande potencial de confusão para outros usuários e seu eu futuro.
Então, como resolvemos essa bagunça? Primeiro, observe que tudo isso pressupõe que estamos usando a versão 5 do PowerShell.
A ideia geral para resolver nosso problema é personalizar o formato de saída do Get-ChildItem e comandos similares. O PowerShell permite que você altere o formato de exibição de quase qualquer coisa. Queremos obter uma pista visual clara se temos um link e também queremos saber para onde ele está apontando. Os arquivos de formato padrão estão localizados em
C:\Windows\System32\WindowsPowerShell\v1.0
Você pode optar por colocar um arquivo de formato personalizado lá, criando um arquivo chamado
C:\Windows\System32\WindowsPowerShell\v1.0