win10重新安装powershell,

  win10重新安装powershell,

  从Windows S10 Creator的更新开始,PowerShell正式取代了命令提示符CMD。无论是Windows X右键超级菜单、Shift文件夹空白右键还是文件浏览器中的文件菜单,都没有命令提示符CMD,PowerShell取而代之。长期使用CMD的Windows系统管理员或者Windows命令行极客,怕是一时半会儿还适应不了。使用CMD时,他们只能去开始菜单-所有应用程序-Windows系统-命令提示符打开使用。这么隐蔽,显然是不想让人用。

  图1:如何打开1:PowerShell

  问题来了。PowerShell为什么要逼CMD上位?如果你之前尝试过PowerShell,我敢肯定它没有给你留下好印象。慢慢开!反应慢!命令很奇怪!如果还玩出很多没人能看懂的错误,那PowerShell到底为什么能代替Windows S10创意更新中的命令提示符CMD呢?微软是不是你脑子进水了?

  微软没有脑补,PowerShell用强大的功能代替了CMD。在这里,我们先解释一下下面这个PowerShell是什么,或者说是什么东西?

  Windows PowerShell不是一个东西,它是一个为系统管理员设计的新的Windows命令行Shell。它包括交互式提示和脚本环境。PowerShell定义了许多命令来与操作系统交互,尤其是与文件系统交互,可以启动甚至操纵应用程序;PowerShell允许几个命令在一个文件中组合执行,实现文件级重用,也就是说,它具有脚本的性质;PowerShell可以充分利用。Net类型和COM对象来简单地与各种系统进行交互,并完成各种复杂的自动化操作。

  换句话说,CMD能做的PowerShell可以做,CMD做不到的Powershell也可以做。好自信!不相信我?赶紧打开PowerShell,复制下面这个命令,看看它都做了什么,然后就可以用CMD来制作了!

  #创建新的excel实例

  $ objExcel=New-Object-com Object Excel。应用

  $objExcel。Visible=$True

  $objWorkbook=$objExcel。Workbooks.Add()

  $objWorksheet=$objWorkbook。工作表。项目(1)

  #将信息写入excel文件

  $i=0

  $ first 10=(PS sort ws-Descending select-first 10)

  $ first 10 foreach-Process { $ I;$工作表。Cells.Item($i,1)=$_。姓名;$工作表。Cells.Item($i,2)=$_。ws}

  $otherMem=(ps measure ws -s)。Sum - ($first10 measure ws -s)。总额

  $工作表。Cells.Item(11,1)= Others ;$工作表。Cells.Item(11,2)=$otherMem

  #绘制饼图

  $objCharts=$objWorksheet。图表对象()

  $objChart=$objCharts。加法(0,0,500,300)

  $objChart。chart . set source data($ obj worksheet . range( A1:B11 ),2)

  $objChart。图表。图表类型=70

  $objChart。图表.应用数据标签(5)

  图2:使用PowerShell生成Excel图表

  以上代码是PowerShell中常见的神奇代码,很多初学者都是被它带入PowerShell的。有效代码只有20行,它的作用是将当前系统中占用内存最多的10个进程的数据发送到Excel并绘制成三维饼状图。CMD很难做,应该更换。

  PowerShell被定位为操作系统和应用程序的管理工具。从这个角度来说,它是CMD的升级版,而不是简单的CMD的延伸。事实上,微软并不打算扩展和升级CMD。PowerShell未来将全方位取代CMD。目前CMD和PowerShell还是并存的。

  下面是对PowerShell的正式介绍。

  简单的命令

  在CMD中,命令是可执行程序,从非常简单的(如attrib.exe)到非常复杂的(如netsh.exe)。一旦新用户遇到复杂的命令,他们除了求助于搜索引擎之外别无他法。解决了当前需求后,他们忘记了命令的用法,下次还得重新学习,极其不方便。

  图3:复杂的netsh命令

  PowerShell命令设计非常标准。它的命令由两部分组成:动词和名词。比如get表示检索数据,process表示系统进程。结合了get和process的PowerShell命令是get-process,意思是获取系统进程的列表。这个命令在PowerShell中称为cmdlet(读作“command-process”

  图4:使用get-process命令获取系统进程

  像“get-process”这样的动名结构是有优势的。具有相同“名词”的命令通常是一种命令。例如,带有“process”的命令有:

  图5:带有“process”的命令

  使用动名结构的另一个好处是不同的动词和名词可以自由组合,少量的动词和名词就可以组合出大量可用的命令,大大减少了命令的记忆。只需要背几个简单的单词就可以使用大量的命令,这是包括命令提示符CMD在内的Shell所不具备的,不存在歧义。

  第二,别名制度

  “动名”结构的cmdlet对新手来说比较友好,但也带来了另一个问题。命令名太长,不方便在命令行交互使用。可以使用Tab键在命令行窗口中完成命令输入,但经常使用时还是需要键入大量内容。要是你能缩短命令就好了。在设计中考虑了PowerShell,因此创建了别名系统。之所以叫名字系统,是因为PowerShell中的别名功能非常强大,添加、删除、修改别名都非常方便。它还为它创建了一个别名驱动程序,可以像文件系统驱动程序一样方便地访问它。

  PowerShell非常体贴的为用户创建了大量的内置别名。一方面减少了常用命令的输入长度;另一方面为熟悉其他外壳但不熟悉PowerShell的用户提供了便利。常见的Shell如bash和cmd,PowerShell为用户提供了他们熟悉的别名。以下是可以在Powershell中使用的常见Cmd.exe和UNIX命令的简短列表。

  图6:6个PowerShell兼容性别名的列表

  除了PowerShell自己的别名之外,用户还可以自己创建别名,不仅可以为cmdlet创建别名,还可以为PowerShell函数、带参数的命令和带完整路径的命令行程序创建别名。

  例如,要创建记事本的别名,可以使用以下命令:

  new-Alias NP c:windows notepad . exe

  创建别名后,在命令行输入np直接打开记事本。在命令行中创建的别名只能在当前命令行窗口中使用。如果您以后想使用这个别名,可以将上面的命令保存在PowerShell配置文件中。将来,无论是在命令行中还是通过使用脚本,您都可以在这台机器上使用np alias。可以使用$profile命令查询PowrShell配置文件的位置。

  要查看可以在当前命令行窗口中使用的别名,可以输入别名驱动器来查看它们。您可以使用dir alias:查看所有可用的别名,也可以使用get-alias命令查看别名。

  图7:查看PowerShell别名驱动器

  三。管理任务

  Windows PowerShell的基本目标是使用户能够通过交互模式或脚本更好、更容易地管理和控制系统。为了实现这一目标,PowerShell提供了大量的命令来执行各种管理任务,以便用户可以轻松地完成管理系统的任务。

  1.管理程序

  前面已经提到了管理系统进程的命令。管理进程的常用命令是get-process命令和stop-process命令。获取流程后,可以直接发送get-process命令到stop-process命令来结束流程。例如,要关闭以前打开的记事本,可以使用以下命令方便地关闭记事本。

  获取进程名称记事本停止进程

  2.处理文件和文件夹

  使用PowerShell Get-ChildItem获取文件夹中直接包含的所有项目。它内置了别名dir和ls,使用CMD和BASH的用户可以轻松使用。如果要查看C:中的文件夹和文件,直接使用dir c:即可,PowerShell会立即列出C:中的文件和文件夹。处理文件和文件夹的其他命令包括Copy-Item、New-Item、Remove-Item等。对于具体用法,可以使用get-help,然后按照命令名进行查询。

  3.处理系统服务

  您可以像管理流程一样管理系统服务。Get-Service命令获取服务列表,Stop-Service命令停止服务,Start-Service命令启动服务,Suspend-Service命令暂停服务,Restart-Service命令重新启动服务,Set-Service服务设置服务属性。如果要立即启动已停止的服务,可以使用以下命令:

  get-service where-object {$_。状态-eq 已停止 }-排除

  开始服务

  这一行命名将启动除wisvc之外的所有命令。这只是一个例子。不要在自己的电脑上使用。启动所有服务会消耗大量系统资源。

  4.正在处理注册表

  PowerShell可以非常方便地处理注册表项。与进程和服务不同,PowerShell不提供特殊的注册表命令,而是使用命令来处理文件和文件夹。这并不奇怪。PowerShell为用户提供了注册表驱动,可以很好的处理注册表项。由于注册表对系统非常重要,错误地处理注册表可能会导致系统问题。处理注册表时要非常小心,尤其是删除注册表项。最好在处理注册表项之前备份要处理的项。有些注册表项可以在没有管理员权限的情况下处理,这与regedit注册表编辑器不同,regedit注册表编辑器必须用管理员权限打开才能操作这些项。

  图8:访问HKLM:没有管理员权限的驱动器

  下表列出了访问注册表所需的所有命令。

  图9:处理注册表和预定义注册表驱动程序的命令

  PowerShell只提供了两个注册表驱动HKCU:和HKLM:其中HKLM:是Hkey_LOCAL_MACHINE的缩写,HKCU:是Hkey_CURRENT_USER的缩写。如果你想访问所有的注册表驱动程序,你可以去微软。PowerShell。核心注册表。

  5.处理其他任务。

  PowerShell还可以处理诸如证书、防火墙、appx应用程序、打印机等任务。由于篇幅有限,没有给出具体的例子。您可以使用get-command命令来查找相关的命令。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: