
Tenho algumas funções que gostaria de carregar por padrão quando abro um PowerShell administrativo. Existe algum equivalente a dizer .bashrc
ou .profile
que eu possa usar para importar automaticamente os scripts quando inicio o shell?
Responder1
O artigomencionado emcomentário de jehadexplica que existem vários locais onde o PowerShell pode carregar um perfil, que é o que você deseja. Você provavelmente deseja o por usuário para o console normal do PowerShell. O caminho no qual o PowerShell verificará esse arquivo é fornecido na $profile
variável. Você pode criar esse arquivo e seu diretório contendo este comando:
New-Item $profile -Type File -Force
Ele cria um arquivo chamado Microsoft.PowerShell_profile.ps1
em uma pasta chamada WindowsPowerShell
na pasta Documentos. Então você pode abri-lo com um editor de texto:
notepad $profile
Tudo nele será executado sempre que você iniciar o console do PowerShell, independentemente de você estar elevado ou não. eu useieste outro artigopara produzir uma função (que você pode usar como cmdlet) para verificar se a instância atual do PowerShell está elevada. Coloque isso em seu novo arquivo de perfil:
Function Test-Elevated {
$wid = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$prp = New-Object System.Security.Principal.WindowsPrincipal($wid)
$adm = [System.Security.Principal.WindowsBuiltInRole]::Administrator
$prp.IsInRole($adm)
}
Essa função pode ser usada em sua experiência normal do PowerShell, mas você também pode usá-la para executar apenas coisas em seu script de perfil quando estiver executando em nível elevado:
If (Test-Elevated) {
echo "Be careful!"
} Else {
echo "Eh, do whatever."
}
Como esse arquivo contém código que será executado automaticamente mesmo em uma instância administrativa do PowerShell, você não deseja que os programas executados sem elevação tenham acesso de gravação a ele. Sugiro alterar sua ACL para conceder apenas acesso de leitura à sua conta de usuário e ainda permitir controle total aos administradores. (A herança terá que ser desativada primeiro.) Você só poderá editar o script em programas elevados.