lee*_*d00 39 windows windows-7 powershell
当我打开管理 powershell 时,我希望默认加载一些功能。当我启动 shell 时,是否有任何等效的说法.bashrc或.profile我可以用来自动导入脚本?
Ben*_*n N 37
jehad 的评论中提到的文章解释说,PowerShell 可以从多个地方加载配置文件,这正是您想要的。您可能需要普通 PowerShell 控制台的每个用户。PowerShell 将检查该文件的路径在$profile变量中给出。您可以使用以下命令创建该文件及其包含的目录:
New-Item $profile -Type File -Force
Run Code Online (Sandbox Code Playgroud)
它会在 Documents 文件Microsoft.PowerShell_profile.ps1夹WindowsPowerShell下的文件夹中创建一个文件。然后你可以用文本编辑器打开它:
notepad $profile
Run Code Online (Sandbox Code Playgroud)
每当您启动 PowerShell 控制台时,其中的所有内容都会运行,无论您是否被提升。我使用另一篇文章生成了一个函数(您可以将其用作 cmdlet)来检查当前的 PowerShell 实例是否已提升。把它放在你的新配置文件中:
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)
}
Run Code Online (Sandbox Code Playgroud)
该函数可以在您的正常 PowerShell 体验中使用,但您也可以使用它来仅在运行提升时运行配置文件脚本中的内容:
If (Test-Elevated) {
echo "Be careful!"
} Else {
echo "Eh, do whatever."
}
Run Code Online (Sandbox Code Playgroud)
由于此文件包含即使在管理 PowerShell 实例下也会自动运行的代码,因此您不希望未升级的程序对其具有写访问权限。我建议更改其 ACL 以仅授予您的用户帐户读取访问权限,同时仍允许管理员完全控制。(必须先禁用继承。)然后您将只能从提升的程序中编辑脚本。
| 归档时间: |
|
| 查看次数: |
16636 次 |
| 最近记录: |