windows下以管理员打开powershell不能运行脚本,但是用管理员打开cmd就可以?

即便是在目录以管理员身份打开的powershell仍然不能够运行脚本,但是在win打开的可以,
图片.png
都是以管理员身份打开的。

我知道这个跟“允许未签名的脚本运行”那个设置有关,但是为什么同样是终端,都是用管理员打开,怎么就不一样。

阅读 2.5k
2 个回答

原因大概是因为在CMD里面执行hexo和PowerShell执行的hexo,它们不是同一个脚本。

image.png

猜测可能是在powershell中执行命令时,ps1脚本的优先级会比cmd脚本更高,所以总是会去执行hexo.ps1这个文件。
CMD不支持powershell,所以不会执行ps1这个脚本,执行的是hexo.cmd。


有个解决方法,可以尝试把hexo.ps1删除掉,powershell应该就会去执行cmd了。

因为powershell是应用程序。
比如ls命令,在cmd那里是没有这个命令的,但是在powershell里面可以:
图片.png

甚至可以这么说,powershell算是模拟了一个能用Linux终端命令的“模拟器”,先翻译成dos命令,再执行。

所以windows没有给外部应用直接运行脚本的权利。

硬要想,则可通过设置允许“允许未签名的脚本运行”,可以参考https://zhuanlan.zhihu.com/p/493496089

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
Microsoft
子站问答
访问
宣传栏