如何访问 Invoke-Command 中的本地目录?

How do I access a local directory inside Invoke-Command?

我有一些文件和脚本,我 运行 在某人桌面上的提升会话中,我这样做是因为有多个步骤涉及将文件夹复制到受保护的区域并弄乱注册表。为此,我使用 Invoke-Command。我提供的凭据允许我这样做,但我遇到了一个问题。

脚本与我要复制的文件位于同一文件夹中。当我得到该脚本的位置时,它给了我错误的目录。

我想要 c:\Users\TheLocalUser\Files,但我得到了 c:\Users\TheCredentialsIProvided\Files.

因此,我的脚本在技术上无法找到我想要复制的文件。我如何使用脚本的位置引用存储在某人计算机上的这些文件?

如果不行,有没有更好的方法?

不要在用户目录中使用任意目录,而是为您的脚本设置一个集中位置。如果您需要查找用户目录,如果您不能设计允许从用户上下文中执行的进程,则让脚本询问用户名。例如,当您使用凭据 运行 Invoke-Command 时,您可以让用户启动脚本,这意味着用户的家就是您所期望的。

获取脚本中带$PSScriptRoot的脚本位置。或者使用 Enter-PSSession 进入交互式会话并手动工作。