Powershell自动执行脚本之profile 4


本文索引
[隐藏]

在Powershell控制台的许多更改只会在当前会话有效。一旦关闭当前控制台,你自定义地所有别名、函数、和其它改变将会消失,除非将更改保存在windows环境变量中。这也就是为什么我们需要profile来保存一些基本的初始化工作。

四中不同的profile脚本

Powershell支持四种可以用来初始化任务的profile脚本。应用之前要弄清楚你的初始化是当前用户个人使用,还是所有用户。如果是个人使用,可以使用”当前用户profile“,但是如果你的初始化任务是针对所有用户,可是使用“所有用户profile”。

Profile 描述 位置
所有用户 所有用户共有的profile $pshomeprofile.ps1
所有用户(私有) powershell.exe 中验证。 $pshomeMicrosoft.PowerShell_profile.ps1
当前用户 当前用户的profile $((Split-Path $profile -Parent)”profile.ps1″)
当前用户(私有) 当前用户的profile;只在Powershell.exe中验证 $profile

我们注意到上面的四种profile有两个private。一旦声明为private,只有个microsoft的Powershell自身才会去调用,不会对其它引用powershell的组件有效。

创建自己的profile

Profile脚本并不是强制性的,换言之,profile可有可无。下面会很方便的创建自己的profile。 在控制台执行: notepad $((Split-Path $profile -Parent) + “profile.ps1”) 如果不存在profile默认会创建,在打开的记事本中输入: Set-Alias edit notepad.exe

也就是给notepad添加edit别名,保存关闭,之后重启控制台,输入: edit $((Split-Path $profile -Parent) + “profile.ps1”)

控制台会调用记事本打开之前的profile,可见edit别名已经生效。

创建全局profile

创建全局的profile也是很容易的,如上,只是文件的位置稍有改变; 需要注意的是,创建全局profile需要管理员权限,没有管理员权限,该文件或者文件夹拒绝访问。还有一点也须注意:在vista系统中,即使你拥有管理员权限,但是没有通过administrator登录,并且系统没有禁用UAC,也是拒绝更改的。除非你鼠标右键单击Powershell快捷方式,以管理员权限运行。

本文链接: http://www.pstips.net/powershell-auto-run-profile.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。


Leave a comment

电子邮件地址不会被公开。 必填项已用*标注

4 thoughts on “Powershell自动执行脚本之profile

  • acci

    创建自己的profile并不成功啊。
    notepad $((Split-Path $profile -Parent) + “profile.ps1”)
    Set-Alias edit notepad.exe写到记事本
    edit $((Split-Path $profile -Parent) + “profile.ps1”)执行错误,edit并没有被定义
    但是notepad $(($pshome) + “\profile.ps1”)是可以的

    • Dxh

      原文中有个反斜杠被 过滤掉了,没有正确显示出来。应该是notepad $((Split-Path $profile -Parent) + “\profile.ps1”), 否则你生成的文件在上一级目录中,文件名也不对,当然就没有效果。但重复这个命令是可以打开看到的。