图1:在PowerShell中执行ping命令测试网络连通性
图2:用Test-Connection命令测试网络连通性
2、执行外部命令要注意的地方
外部命令毕竟不是PowerShell亲儿子,有时执行外部命令时会遇到一些问题,可是会使大家困惑,接下来我为大家说明一下执行外部命令要注意的地方,只要看完,就知道那些问题都不是个事儿。
通常遇到的问题都是外部命令的名称与内置别名相冲突,或者命令的语法与PowerShell语法不同造成的,解决方法也很简单,名称冲突就用完整的名称,语法冲突就用PowerShell的语法,要不就干脆使用具有相同功能的PowerShell命令。
例如,sc在CMD是常用的服务有关命令,sc在PowerShell是命令Set-Content的别名,在PowerShell中使用sc会被认为是Set-Content命令,这时只要输入完整的sc.exe命令,就能在PowerShell中正常运行了。如果想用sc命令查询Spooler服务的状态,Spooler是打印机服务,首先执行sc query Spooler,没有任何输出,这是因为PowerShell把sc当作Set-Content命令的别名了,之后我执行sc.exe query Spooler,就正常了。
图3:使用sc命令查询Spooler服务
有时我们从网络中下载一些命令行程序,比如著名的下载工具curl命令,可以通过PowerShell执行,明明是很简单的事情,PowerShell偏偏就不把它做好,这里我用软媒魔方(广告费,谢谢)做个演示。假设我的电脑之前蓝屏了,我想用软媒蓝屏助手查看原因,于是在PowerShell命令窗口中输入bsodhelper.exe,然后PowerShell就报个错,好像是不想执行它,敢罢工,信不信我一口盐汽水喷死你!
图4:打开bsodhelper.exe报错
CMD就从来不会有这种破事,PowerShell为什么这么麻烦?之所以会报这个错误,绝对不是微软吃饱了撑的,是为了用户安全,想想看,为了破解某个软件,从网上下载一个命令行破解工具,浏览器不让下载,就先找教程关了SmartScreen,下完后被Windows Defender秒删,一气之下接着找教程把Windows Defender干掉,费劲千辛万苦终于把破解工具下载下来了,CMD立刻就能执行,PowerShell却能让你犹豫一下,尽管可能最后你成功执行了并破解了某软件,但是电脑却中毒了,于是去网上发帖“Windows垃圾,Windows太不安全了,下个软件就能中毒,苹果系统才是世上最好的系统”。相信我,这种人不但有,还绝非少数。
废话了这么多,说说怎么才能执行这个bsodhelper.exe,很简单在输入bsodhelper.exe之前,先输入一个半角的“.”,然后打个同样是半角的“\”,“/”也行,反正PowerShell都认,正确输入方式:
.\bsodhelper.exe
当然还有一种办法,就是把这个文件的完整的绝对路径输进去,比如我把bsodhelper.exe放在c:\PCMaster下,就直接输入:
c:\PCMaster\bsodhelper.exe
如果以后每次都想执行这个命令,那就请把命令所在的路径添加到系统环境变量,就不细说了。
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。