O Powershell tem algum tipo de equivalente .bashrc?

12

Eu 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 eu iniciar o shell?

    
por leeand00 16.06.2016 / 20:18

1 resposta

13

O artigo mencionado em o comentário de jehad explica que existem vários lugares dos quais o PowerShell pode carregar um perfil, que é o que você quer. Você provavelmente deseja o usuário por usuário para o console normal do PowerShell. O caminho no qual o PowerShell verificará esse arquivo é fornecido na variável $profile . Você pode criar esse arquivo e seu diretório contendo com este comando:

New-Item $profile -Type File -Force

Cria um arquivo chamado Microsoft.PowerShell_profile.ps1 em uma pasta chamada WindowsPowerShell em sua 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, não importa se você é elevado ou não. Eu usei este outro artigo para produzir uma função (que você pode usar como cmdlet) para verificar se a instância atual do PowerShell está aumentada. Coloque isso no 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 somente coisas em seu script de perfil quando estiver em um 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 sob uma instância administrativa do PowerShell, você não deseja que programas executados não-hierárquicos tenham acesso de gravação a ele. Sugiro que você altere sua ACL para conceder acesso de leitura à sua conta de usuário e, ao mesmo tempo, permitir o controle total dos administradores. (Herança terá que ser desativada primeiro.) Você só poderá editar o script de programas elevados.

    
por 16.06.2016 / 21:22