powershell编码大全(代码80010106的奇葩)(1)

网管小贾 / sysadm.cc

为了将旧服务器上的文件夹精准无误地迁移到新服务器上,打算通过微软自家的 Windows Server 迁移工具 来实现。

旧服务器端,我通过服务管理器添加了迁移工具的功能,之后却发现这东东一点就一闪而过,无论如何也打不开。

powershell编码大全(代码80010106的奇葩)(2)

反正新服务器这边也是要安装迁移工具的,所以转头先看看新服务器端有没有问题,结果安装打开一切正常!

根据官方相关的迁移说明文档,整个迁移动作必须要在迁移工具下执行,自己开个命令窗口是无效的。

好吧,看来这系统又在搞事情啊!

迁移环境服务器操作系统

旧服务器:Windows Server 2012 R2

新服务器:Windows Server 2016

回到旧服务器这边,无论我是在开始菜单中点击,还是直接找到文件夹中双击执行,这个迁移工具打死都是一闪而过,之后就啥也没有了。

还有,即使你以管理员身体运行,结果一样。

好歹让我看看长啥样啊,换了个方式,先打开命令提示符窗口,然后手输执行看看。

PowerShell.exe -PSConsoleFile %SystemRoot%\System32\ServerMigrationTools\ServerMigration.psc1

powershell编码大全(代码80010106的奇葩)(3)

还是执行不起来,但是很奇迹地出现了错误提示。

如果系统是英文版的,那么应该就有像下面这样的错误。

意思都是一样的,说什么 PowerShell 初始化错误云云......

Internal Windows PowerShell error. COM initialization failed while reading Windows PowerShell console file with error 80010106.

看不太懂,但有了具体的错误提示,至少咱离真相近了一步,上网搜吧。

找来找去都不知道这玩意儿是个啥,最后发现有位大神指出其实只要这样做就行了。

相关帖子链接:

https://social.technet.microsoft.com/Forums/lync/en-US/ecf0a798-46d5-4925-8174-4f47dd5d332e/cannot-open-any-powershell-console-psc1-files?forum=winserverpowershell

powershell编码大全(代码80010106的奇葩)(4)

从图中也可以看出,虽然最初的问题现象描述并不相同,但最终都指向了 PowerShell 运行产生了初始化错误 80010106 。

那么这个错误怎么解决呢?

说实话,我看完大神寥寥数语后仍是一头雾水,好像说什么把最近项目显示数量从2变成10就行了。

这都什么跟什么啊,真是青蛙跳井--不懂不懂不懂!

再找找吧!

直到找到了另一个帖子:

https://grzegorzkulikowski.info/2011/05/16/internal-windows-powershell-error-com-initialization-failed-while-reading-windows-powershell-console-file-with-error-80010106/

powershell编码大全(代码80010106的奇葩)(5)

好像有点那个意思了,大神似乎是说在开始菜单选项卡里有个最近打开项目什么的......

靠想像太难了,动手找找吧,经过一番肉搏,终于被我找到了这个说不上来有啥用的东西。

其实就在 控制面板 > 外观 > 任务栏和导航 (我这儿是 Windows Server 2012 ,其他系统可能不同)。

powershell编码大全(代码80010106的奇葩)(6)

随后真的就找到了他们所说的 最近打开的项目 。

powershell编码大全(代码80010106的奇葩)(7)

我最初打开它的时候,并没有勾选任何项目,而且显示项目数也为 0 。

于是我将第二项打上勾,并将显示项目数设定为 10 ,确定。

然后再尝试打开 Windows Server 迁移工具 ,嘿,奇迹出现了,PowerShell 居然就好使了!

powershell编码大全(代码80010106的奇葩)(8)

我去,这是什么奇葩问题啊!

我试着将那第二项的勾去掉,显示项目数默认变为 0 ,确定后再试着打开 Windows Server 迁移工具 ,居然仍然好使!

我还在怀疑这个故障无法复现时,随手将第二项打上勾,显示项目数再变成 0 后,发现故障又回来了!

这下明白了,这个问题应该与这个显示项目数有关。

至此,这个奇葩问题暂时得到了解决。

至于为什么会是这样,这两者之间到底是什么关系,我功力不够一时半会儿还真是无法搞懂。

不过,小伙伴们,如果你遇到了 PowerShell 在执行时遇到 80010106 错误时,不妨按本文尝试一下。

希望能帮到你们,别忘记关注我并点赞分享哦!

网管小贾 / sysadm.cc

,