2024年11月PowerShell下载-命令行脚本工具 v7.0.3

发布时间:

  ⑴PowerShell是一个跨平台的自动化和配置工具/框架,支持WindowsLinux和macOS等系统使用,它可以帮助用户配合现有工具进行很好的,并帮助用户针对的处理结构化数据,例如JSONCSVXML等数据编辑;PowerShell这款命令行脚本工具支持EST

  ⑵API和对象模型优化功能,可以很好的进行文本数据处理,帮助用户处理PowerShell包含命令行shell等相关的脚本语言和一个处理cmdlets的框架;该软件操作极简无需安装,下载即用非常方便快捷,欢迎广大朋友下载使用。

  ⑶在macOS上删除对DNS测试连接的依赖 (#)

  ⑷更新. Core至..(内部。

  ⑸尽管您可以通过以文本方式键入命令与 Windows PowerShell 进行交互,但 Windows PowerShell

  ⑹是基于对象的,而不是基于文本的。命令的输出即为对象。

  ⑺可以将输出对象发送给另一条命令以作为其输入。因此,Windows PowerShell

  ⑻为未曾使用过其他外壳程序的人员提供了熟悉的界面,同时引入了新的功能强大的命令行范例。

  ⑼通过允许发送对象(而不是文本,它扩展了在命令之间发送数据的概念。

  ⑽Windows PowerShell 将交互式环境和脚本环境组合在一起,从而允许您访问命令行工具和 对象,同时还可利用 .

  ⑾framework 类库 (FCL) 的强大功能。

  ⑿此环境对 Windows命令提示符进行了改进,后者提供了带有多种命令行工具的交互式环境。此外,还对 Windows Script Host

  ⒀(WSH)脚本进行了改进,后者允许您使用多种命令行工具和 自动对象,但未提供交互式环境。

  ⒁通过将对所有这些功能的访问组合在一起,Windows PowerShell 扩展了交互用户和脚本编写者的能力,从而更易于进行系统管理。

  ⒂您可轻易发现 Windows Powershell 的功能。例如,若要查找用于查看和更改Windows 服务的cmdlet

  ⒃列表,执行:开始->运行->cmd,在命令行下输入 PowerShell 进入 windows PowerShell,再输入如下命令:

  ⒄get-mand *-service

  ⒅在发现可完成任务的 cmdlet 之后,可以使用 Get-Help cmdlet 了解有关该 cmdlet 的详细信息。例如,若要显示有关

  ⒆Get-Service cmdlet 的帮助,请键入:

  ⒇get-help get-service

  ⒈若要充分理解该 cmdlet 的输出,则可通过管道将其输出传递给 Get-Member cmdlet。例如,以下命令将通过 Get-Service

  ⒉cmdlet 显示有关该对象输出的成员的信息。

  ⒊get-service | get-member

  ⒋管理系统可能是一项复杂的任务,而具有统一接口的工具将有助于控制其固有的复杂性。然而,无论是命令行工具还是可编写脚本的

  ⒌对象,在一致性方面都乏善可陈。

  ⒍Windows PowerShell 的一致性是其主要优点中的一项。例如,如果您学会了如何使用 Sort-Object

  ⒎cmdlet,则可利用这一知识对任何 cmdlet 的输出进行排序。而无需了解每个 cmdlet 的不同的排序例程。

  ⒏此外,cmdlet 开发人员也不必为其 cmdlet 设计排序功能。Windows PowerShell

  ⒐为他们提供了框架,而该框架可提供基本的功能,并强制他们在接口的许多方面保持一致。该框架虽然消除了通常会留给开发人员的某些选项,但作为回报,开发强健易于使用的

  ⒑cmdlet 的工作将更加简单。

  ⒒使用 Windows PowerShell,您可以很方便地从以交互方式键入命令过渡到创建和运行脚本。您可以在 Windows

  ⒓PowerShell命令提示符下键入命令以找到可执行任务的命令。随后,可将这些命令保存到脚本或历史记录中,然后将其复制到文件中以用作脚本。

  ⒔点击下载管理找到软件安装压缩包点击进行解压,找到.exe文件双击直接进入软件,点击右键创建桌面快捷键

  ⒕识别你即将使用的Provider 通过识别PowerShell里安装的Provider,你就可以了解默认安装下PowerShell提供了那些能力。

  ⒖Provider可以使用一种简单的访问方式,暴露位于不同储存位置的数据。

  ⒗就像是浏览不同磁盘上的目录结构一样简单。 Provider把不同的信息存放位置,表示成“驱动器”-目录这种结构,这样很容易被用户所理解。

  ⒘就像我们要访问一个位于D盘的WIN目录下的SETUP.exe文件,我们要通过浏览器,单击D盘的图标,然后选择WIN目录并双击一样,如果我们要访问位于“注册表”的数据,

  ⒙那么我们也只需要简单地通过Set-Location命令,来到到“REGISTRY”这个“驱动器”,然后用GET-CHILDITEM命令获取其子数据就行了。

  ⒚注:实际上,PowerShell访问磁盘驱动器,也是通过Provider的,切换驱动器其实和切换其他数据容器是一样地操作。

  ⒛例如: Set-Location d: 这是切换驱动器 Set-Location HKLM: 这是切换到注册表的HKLM键

  ①另外,Get-PSprovider命令,可以查看当前已经安装的所有PROVIDER。

  ②任何熟悉.编程的人,都可以编写Provider。当新的provider被安装后,就叫做snap-in。snap-in其实是一个动态连接库dll文件,可以被安装到powershell中。然而,当一个snap-in安装后,却没有办法卸载。

  ③Get-PSProvider: Name Capabilities Drives ---- ------------ ------ Alias

  ④ShouldProcess {Alias} Environment ShouldProcess {Env} FileSystem Filter,

  ⑤ShouldProcess {C, D, F, A...} Function ShouldProcess {Function} Registry

  ⑥ShouldProcess {HKLM, HKCU} Variable ShouldProcess {Variable} Certificate

  ⑦ShouldProcess {cert} 这些就是我机器上的默认安装后的provider。

  ⑧使用Set-Location和Get-ChildItem浏览数据

  ⑨Set-Location用于改变当前目录,以及选择当前的provider,而Get-ChildItem用于获取当前目录或者指定目录下的子对象: 例子:

  ⑩set-location hkcu:software get-childitem 例子: GCI -path HKLM:software

  Ⅰ有两种连接WMI服务的方法:

  Ⅱl 使用Get-WmiObject可以很容易地连接到WMI服务,并且获取WMI对象。

  Ⅲ使用一个对象,“WbemScripting.SWbemLocator”,可以连接WMI的服务。SWbemLocator对象只有一个方法,就是ConnectServer()。

  Ⅳ该方法接受个参数:用户名,密码,语言代码,验证方法(Kerberos, NTLM等,标志(超时值。

  Ⅴ下例中,我们使用New-Object命令,创建了一个“WbemScripting.SWbemLocator”的实例。

  Ⅵ然后用这个实例的ConnectServer方法连接了到了一个WMI的名字空间(rootcimv,ConnectServer方法返回了一个WMIService对象,接着又用这个对象的subClassesOf(方法,返回了一系列WMI的CLASS:

  Ⅶ$strputer = "." $wmiNS = "

  Ⅷootcimv" $strUsr ="" #Blank for current

  Ⅸsecurity. DomainUsername $strPWD = "" #Blank for current security. $strLocl =

  Ⅹ"MS_" #US English. Can leave blank for current language $strAuth = "" #if

  ㈠specify domain in strUsr this must be blank $iFlag = "" #only two values

  ㈡allowed: and . $objLocator = New-Object -object

  ㈢"WbemScripting.SWbemLocator" $objWMIService =

  ㈣$objLocator.ConnectServer($strputer, ` $wmiNS, $strUsr, $strPWD, $strLocl,

  ㈤$strAuth, $iFLag) $colItems = $objWMIService.subClassesOf() Write-Host "There

  ㈥are: " $colItems.count " classes in $wmiNS" foreach ($objItem In $colItems) {

  ㈦$objItem.path_.class }