所有函数抛出错误

时间:2016-02-01 13:18:21

标签: powershell

我的powershell脚本今天早上都抛出错误,说明所有功能都无效,New-ObjectGet-Content等功能我试过了

  • 重新启动服务器(无效)。
  • 检查powershell版本(5.0)。
  • 检查执行政策(不受限制)。
  • 验证正在调用脚本的帐户的权限(罚款),以及我用来登录的帐户。
  • 手动执行某些任务,例如打开文件和复制内容,这些任务都有效。尽可能直接 - 我可以做脚本正在做的所有事情,但我是通过界面做的,比如手动点击文件,点击CTRL C然后将其粘贴到另一个文件夹(以及其他类似的任务)脚本的目的是为了做到这一点。)

我想说,"我用"但我不能。在等了几分钟思考它可能是什么之后,我再次尝试运行一个脚本,它运行起来了。

有没有人碰到这样的事情,这里的问题可能是所有的PowerShell功能都没有用?

更新

错误看起来完全相同:

The term 'New-Object' is not recognized as the name of a cmdlet ... The term 'Get-Content' is not recognized as the name of a cmdlet ...

根据回复,这证实这是非常不寻常的行为,可能更像是Windows问题。

1 个答案:

答案 0 :(得分:2)

您的PSModulePath系统环境变量可能缺少C:\windows\system32\WindowsPowerShell\v1.0\Modules,这是PowerShell中所有内置模块的位置。当编写错误的模块替换 PSModulePath的值而不是追加新路径时,可能会发生这种情况。

验证,运行:

[environment]::GetEnvironmentVariable("PSModulePath","Machine")

C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\丢失了吗?如果是这样,请添加它。

没有PowerShell的最简单方法是使用如下所述的GUI:http://www.computerhope.com/issues/ch000549.htm

如果是临时的,则可能已修改了流程级别的变量。可以使用以下方法读取流程级变量:

[environment]::GetEnvironmentVariable("PSModulePath","Process")