
Tengo algunas funciones que me gustaría cargar de forma predeterminada cuando abro un PowerShell administrativo. ¿Hay algún equivalente que decir .bashrc
o .profile
que pueda usar para importar automáticamente los scripts cuando inicio el Shell?
Respuesta1
El artículomencionado encomentario de jehadexplica que hay varios lugares desde los cuales PowerShell puede cargar un perfil, que es lo que desea. Probablemente quieras el por usuario para la consola PowerShell normal. La ruta en la que PowerShell buscará ese archivo se proporciona en la $profile
variable. Puede crear ese archivo y el directorio que lo contiene con este comando:
New-Item $profile -Type File -Force
Crea un archivo llamado Microsoft.PowerShell_profile.ps1
en una carpeta llamada WindowsPowerShell
en su carpeta Documentos. Luego puedes abrirlo con un editor de texto:
notepad $profile
Todo lo que contiene se ejecutará cada vez que inicie la consola PowerShell, sin importar si tiene acceso elevado o no. solíaeste otro articulopara producir una función (que puede usar como cmdlet) para verificar si la instancia actual de PowerShell está elevada. Pon esto en tu nuevo archivo 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)
}
Esa función se puede usar en su experiencia normal de PowerShell, pero también puede usarla para ejecutar cosas en el script de su perfil solo cuando ejecuta elevado:
If (Test-Elevated) {
echo "Be careful!"
} Else {
echo "Eh, do whatever."
}
Dado que este archivo contiene código que se ejecutará automáticamente incluso en una instancia administrativa de PowerShell, no desea que los programas que se ejecutan sin niveles tengan acceso de escritura. Sugiero cambiar su ACL para darle solo acceso de lectura a su cuenta de usuario y al mismo tiempo permitir a los administradores un control total. (Primero deberá desactivar la herencia). Entonces solo podrá editar el script desde programas elevados.