如何修复损坏的Powershell安装?

7
在Windows Server 2008 R2 SP1机器上,我使用chocolatey安装了AWSTools.Powershell软件包。这样,PowerShell 3就被安装了。现在,PowerShell已经完全崩溃,我无法找到任何解决方法或卸载并重新安装它。
我担心唯一的答案是完全重建机器,但想知道是否有修复它的方法。
实际上,PowerShell可以运行,但似乎找不到任何内置的cmdlet。它似乎能找到别名,但无法执行它们下面的内容。例如,发出ls命令查看目录内容会产生以下结果:
PS C:\Users\Administrator> ls
ls : The term 'Get-ChildItem' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ ls
+ ~~
    + CategoryInfo          : ObjectNotFound: (Get-ChildItem:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

可能是因为在开始时缺少某些脚本的执行来设置环境。如果您比我更了解并能提供一些帮助,并且可以使我不必重新构建这台机器,我会非常高兴。


@Peter,谢谢。我已经尝试过了。它只是告诉我一个对话框,说它已经安装好了,我没有其他选项,只有一个关闭安装程序的确定按钮。我开始寻找卸载并重新安装的方法,但没有看到任何这样的选项。 - Dave Rael
1
从提升的提示符中运行“sfc /scannow”。 - x0n
@DaveRael 请查看此链接 http://www.microsoft.com/en-us/download/details.aspx?id=34595。如果您单击“下载”,您将看到几个版本的Windows管理框架V3(我相信其中一个x64在您的计算机上)。将此列表与控制面板/程序和功能/查看安装的更新中的任何内容进行比较,您应该能够看到包含当前运行的PowerShell的更新。找到它并以此方式删除它。 - Peter
1
@x0n - 现在正在运行扫描,稍后会汇报结果。 - Dave Rael
1
扫描确实发现并修复了一些损坏,但 PowerShell 的问题仍然存在。 - Dave Rael
显示剩余3条评论
2个回答

10

我有点晚来到这个游戏,但最近遇到了这个问题。 我发现我的PSModulePath没有包含一个重要的路径。 您可以通过运行此命令查看您的PSModulePath:

$env:PSModulePath

要添加所需的路径,您可以运行此命令:

$env:PSModulePath = $env:PSModulePath + ";C:\Windows\system32\WindowsPowerShell\v1.0\Modules\"


谢谢您,先生!我的输出是“\[A Server]\Users[My USerName]\My Documents\WindowsPowerShell\Modules;C:\Program Files (x86)\Microsoft SQL Server\120\Tools\PowerShell\Modules\”,显然无法工作!但是您的修复方法有效。 - user917170
我再也没有遇到这个问题了,但是有几个投票表明这个答案显然是有帮助的。接受。 - Dave Rael
这对我解决了问题;我们那些无能的IT管理员推送了一个他们可能不应该推送的更新,把我的开发机搞炸了。谢谢! - honestduane
这个对我有用 -- 从v4升级到v5似乎清除了$ PSModulePath环境变量; 重新创建它可以解决所有问题。 - Ewen Cartwright

3

这是一个非常古老的帖子,但由于我在解决完全相同的问题时找到了它,所以我想提一下我是如何解决的。

首先,我遇到了以下问题:

我在Windows 7上安装了PowerShell 2.0,然后使用choco安装/升级到PowerShell 4.0:

choco upgrade powershell

我的系统更新到了4.0版本,但是当我打开PowerShell时,升级导致大多数基本的cmdlets(例如Get-ChildItem,也称为dir)失效。

在网上摸索了一段时间后,我想着要从Microsoft网站重新安装...但首先我需要从choco卸载它。

choco uninstall powershell

由于是 choco 导致的问题,因此我想再试一次使用以下命令干净地安装:

choco install powershell --force

问题解决了。于是我就停在这里了。希望对某人有所帮助。祝你好运!


1
卸载和重新安装似乎是一个简单易行的方法 - 太久以前了,不记得我是否尝试过,但很高兴为那些发现这个问题的人提供这个方法。 - Dave Rael
是的,完全正确——我希望用 choco 来阐述这个过程,因为这是一种独特的方式,但奇怪的是我之前没有想到。我原本计划通过微软网站来进行操作。 - Ejoso

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接