如何在无法访问 $profile 时使 PS 文件在全局范围内可见?
How to enable a PS file to be globally seen when $profile isn't accessible?
通常我将所有脚本放在 $PROFILE 文件中。但是,现在我在公司网络中,虽然路径似乎已设置(当我在控制台中键入 $profile 时我可以看到路径),但我不能访问它(当我执行 type $profile 或 notepad.exe $profile 时出现路径错误)。
最理想的是,我希望能够像往常一样访问该文件,但客户是一家相当大的公司,与来自 Dilbert 的 Murdoc 配对安全,所以我确信与该服务交谈毫无意义办公桌。
所以,我唯一的选择是创建一个本地文件(例如 c:\scripts\utils.ps)并编辑它包含我所有的实用程序。问题是我不知道如何使该文件中的函数在控制台中作为 runanble 命令可用。
如何在 PS 控制台中指向自定义文件作为可执行命令的容器?
(也欢迎提出其他方法建议。)
你能试试下面的方法吗?
如果可能,请创建配置文件。
New-Item $PROFILE -ItemType File
看看您是否可以创建任何其他配置文件。
$PROFILE | gm | ? MemberType -eq "NoteProperty" | % { $PROFILE.($_.Name) }
创建一个 powershell 快捷方式到..
powershell.exe -NoExit -Command ". "C:\Path\To\File.ps1""
如果您不能执行任何这些操作,则需要请求您的管理员授予您更多权限,您也可以将其添加到您的 PATH
并手动 运行它在启动时..
将实用程序脚本转换为 module 并将路径添加到 PSModulePath
环境变量。从您的模块导出的任何函数都将被即时加载。与配置文件脚本不同,但可能达到大致相同的目的。
您可能仍然需要处理阻止您的脚本 运行 的政策,例如执行政策。如果将其存储在网络驱动器上,您可能会遇到路径是可信位置的问题,在这种情况下,您希望在 $PSModulePath
变量中完全限定 UNC 路径。
通常我将所有脚本放在 $PROFILE 文件中。但是,现在我在公司网络中,虽然路径似乎已设置(当我在控制台中键入 $profile 时我可以看到路径),但我不能访问它(当我执行 type $profile 或 notepad.exe $profile 时出现路径错误)。
最理想的是,我希望能够像往常一样访问该文件,但客户是一家相当大的公司,与来自 Dilbert 的 Murdoc 配对安全,所以我确信与该服务交谈毫无意义办公桌。
所以,我唯一的选择是创建一个本地文件(例如 c:\scripts\utils.ps)并编辑它包含我所有的实用程序。问题是我不知道如何使该文件中的函数在控制台中作为 runanble 命令可用。
如何在 PS 控制台中指向自定义文件作为可执行命令的容器?
(也欢迎提出其他方法建议。)
你能试试下面的方法吗?
如果可能,请创建配置文件。
New-Item $PROFILE -ItemType File
看看您是否可以创建任何其他配置文件。
$PROFILE | gm | ? MemberType -eq "NoteProperty" | % { $PROFILE.($_.Name) }
创建一个 powershell 快捷方式到..
powershell.exe -NoExit -Command ". "C:\Path\To\File.ps1""
如果您不能执行任何这些操作,则需要请求您的管理员授予您更多权限,您也可以将其添加到您的 PATH
并手动 运行它在启动时..
将实用程序脚本转换为 module 并将路径添加到 PSModulePath
环境变量。从您的模块导出的任何函数都将被即时加载。与配置文件脚本不同,但可能达到大致相同的目的。
您可能仍然需要处理阻止您的脚本 运行 的政策,例如执行政策。如果将其存储在网络驱动器上,您可能会遇到路径是可信位置的问题,在这种情况下,您希望在 $PSModulePath
变量中完全限定 UNC 路径。