【问题标题】:Can't run my own powershell Cmdlet because access to "Templates" folder is denied?无法运行我自己的 powershell Cmdlet,因为对“模板”文件夹的访问被拒绝?
【发布时间】:2011-06-20 16:53:50
【问题描述】:

我刚开始使用 Powershell,但遇到了一个奇怪的错误,我无法找到我们的朋友 Google 先生的详细信息。

在你问之前,是的,我肯定是以管理员身份运行 Powershell。

我创建了一个简单的 Cmdlet,用于计算当前目录中指定扩展名的文件。

我可以很好地构建和运行 installutil。

我可以在调用 Get-PSSnapin -Registered 时看到管理单元,我可以使用 Add-PSSnapin 添加它

但是当我运行我的 cmdlet 时,我收到以下错误:

PS C:\work\Enterprise> Get-PSSnapin -Registered


Name        : FileCountCmdlet
PSVersion   : 2.0
Description : Returns a file count



PS C:\work\> Add-PSSnapin FileCountCmdlet
PS C:\work\> Get-FileCount
Get-FileCount : Access to the path 'C:\Users\{My-User-Name}\Templates' is denied.
At line:1 char:14
+ Get-FileCount <<<<
    + CategoryInfo          : NotSpecified: (:) [Get-FileCount], UnauthorizedAccessException
    + FullyQualifiedErrorId : System.UnauthorizedAccessException,FileCount.FileCountCmdlet

任何想法或帮助将不胜感激!

【问题讨论】:

    标签: powershell


    【解决方案1】:

    听起来您可能会遇到此链接描述的内容:

    连接点

    http://www.svrops.com/svrops/articles/jpoints.htm

    如果是这样,您需要更新 cmdlet 以跳过这些连接点。

    【讨论】:

    • 这是一个合理的理论,但是 cmdlet 只在当前目录中查找文件,这意味着如果我尝试一个不包含任何连接点的文件夹,我应该能够得到不同的结果....事实并非如此-无论我在哪个文件夹上运行,我都会得到这些...
    • 因此,如果您在 c:\test 创建一个文件夹,将一些文件/子文件夹添加到该文件夹​​,将目录更改为 c:\test 并运行它,您将收到一条错误消息,指出 c:\test被拒绝?
    • 听起来当前工作目录仍然指向你的 c:\Users\,如果你运行 [Environment]::CurrentDirectory 它应该会显示它的设置
    猜你喜欢
    • 2017-09-15
    • 1970-01-01
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多