`

PowerShell基础教程(3)——Windows PowerShell 使用初步

阅读更多

PowerShell基础教程(2)——Windows PowerShell 使用初步


若要从开始菜单启动 Windows PowerShell请依次单击开始所有程序Windows PowerShell 1.0 Windows PowerShell<o:p></o:p>

<o:p></o:p>若要从“运行”框启动 Windows PowerShell,请单击“开始”,再单击“运行”,然后键入:<o:p></o:p>

powershell<o:p></o:p>

<o:p></o:p>若要从命令提示符 (cmd.exe) 窗口启动 Windows PowerShell请在命令提示符下键入<o:p></o:p>

powershell<o:p></o:p>

<o:p></o:p>若要查看用于启动 Windows PowerShell 的选项请在命令提示符窗口中键入<o:p></o:p>

powershell -?<o:p></o:p>

<o:p></o:p> Windows PowerShell 打开时可以使用 Get-Help cmdlet 查找帮助。在 Windows PowerShell 命令提示符下,键入:

get-help<o:p></o:p>


使用 Windows PowerShell             <o:p></o:p>

本节介绍使用 Windows PowerShell 的基本知识。首先介绍 Get-Help cmdlet cmdlet 显示有关 Windows PowerShell cmdlet 和概念性主题的信息。然后,介绍几个基本的 cmdlet,说明如何使用 cmdlet 参数,然后说明如何设置 cmdlet 输出的格式以获取有用显示中所需的数据。最后的主题说明如何使用别名以便更容易地使用 Windows PowerShell,如何在 Windows PowerShell 中运行传统的 Windows 程序,以及如何管理错误。<o:p></o:p>

Get-Help获取帮助<o:p></o:p>

Get-Help cmdlet 是用于了解 Windows PowerShell 的有用工具。通过阅读 cmdlet 的说明、了解有关概念并浏览语言主题,您可以开始了解如何使用 Windows PowerShell 了。<o:p></o:p>

感兴趣的第一个主题可能是帮助系统。若要显示有关 Windows PowerShell 中帮助系统的信息请键入<o:p></o:p>

get-help<o:p></o:p>

<o:p></o:p>然后您可能会对了解几个基本的 cmdlet Get-HelpGet-CommandGet-ProcessGet-Service Get-Eventlog感兴趣。

若要显示 cmdlet 的帮助的最简单视图请键入get-help”,后跟该 cmdlet 的名称。例如,若要获取 Get-Command cmdlet 的帮助,请键入:<o:p></o:p>

get-help get-command<o:p></o:p>

<o:p></o:p>如果 cmdlet 帮助的格式设置不正确如果它以 XMLNS 标记开头),则可能是系统上的 Windows PowerShell 执行策略阻止系统加载用于设置 cmdlet 帮助格式的配置文件。有关执行策略的信息,请键入:<o:p></o:p>

get-help about_signing   <o:p></o:p>

<o:p></o:p>若要显示 cmdlet 的详细帮助包括参数说明和示例请使用 Get-Help Detailed 参数。例如,若要获取 Get-Command cmdlet 的详细帮助,请键入:<o:p></o:p>

get-help get-command -detailed<o:p></o:p>

<o:p></o:p>若要显示 cmdlet 的所有可用帮助包括有关 cmdlet 及其参数的技术信息请使用 Full 参数。例如,若要获取 Get-Command cmdlet 的完整帮助,请键入:<o:p></o:p>

get-help get-command -full<o:p></o:p>

<o:p></o:p>也可以显示帮助文件的所选部分。若要仅查看示例请使用 Examples 参数。例如,若要显示 Get-Command cmdlet 的示例,请键入:<o:p></o:p>

get-help get-command -examples<o:p></o:p>

<o:p></o:p>若要仅查看详细的参数说明请使用 Get-Help Parameter 参数。可以指定参数的名称,或者使用通配符 (*) 指定所有参数。例如,若要查看 Get-Command TotalCount 参数说明,请键入:<o:p></o:p>

get-help get-command -parameter totalcount<o:p></o:p>

<o:p></o:p>若要查看 Get-Command cmdlet 的所有参数请键入<o:p></o:p>

get-help get-command -parameter *<o:p></o:p>

<o:p></o:p>也可以使用调用 Get-Help Windows PowerShell 函数之一。Help 函数一次显示一整屏帮助内容。Man 函数显示与 Unix 中的手册页类似的帮助。若要使用 Help Man 函数显示 Get-Command cmdlet 的帮助,请键入:<o:p></o:p>

man get-command<o:p></o:p>

<o:p></o:p><o:p></o:p>

help get-command<o:p></o:p>

<o:p></o:p>请求特定的帮助主题时Get-Help 将显示该主题的内容。但是使用通配符请求多个主题时,Get-Help 将显示一个主题列表。例如,若要查看“Getcmdlet 的帮助主题列表,请键入:<o:p></o:p>

get-help get-*<o:p></o:p>

有关 Windows PowerShell 中概念的帮助以about_开头。若要显示有关 Windows PowerShell 概念的帮助,请键入“get-help”,后跟概念名称。例如,若要获取有关通配符的帮助,请键入:<o:p></o:p>

get-help about_wildcard<o:p></o:p>

<o:p> </o:p>若要显示 Windows PowerShell 中所有概念性帮助主题的列表请键入<o:p></o:p>

get-help about_*<o:p></o:p>

<o:p></o:p>通过阅读帮助主题并尝试示例您将了解 Windows PowerShell 的工作原理以及在您的工作中如何使用它。<o:p></o:p>

使用 Cmdlet<o:p></o:p>

cmdlet读作command-let”)是一个内置到外壳程序中的简单的单一功能命令行工具。可以就像使用传统的命令和实用工具那样使用 cmdlet。首先在 Windows PowerShell 命令提示符下键入 cmdlet 的名称。Windows PowerShell 命令不区分大小写,因此可以用任意大小写键入。<o:p></o:p>

例如,可以尝试 Get-Date cmdlet<o:p></o:p>

C:\PS> get-date<o:p></o:p>

2005 11 10 日,星期四,下午 4:43:50<o:p></o:p>

<o:p> </o:p>若要在会话中列出 cmdlet请使用 Get-Command cmdlet且不带任何命令参数。<o:p></o:p>

PS> get-command<o:p></o:p>

<o:p> </o:p>

CommandType     Name                            Definition<o:p></o:p>

-----------     ----                            ----------

Cmdlet          Add-Content                     Add-Content [-Path] <String[...<o:p></o:p>

Cmdlet          Add-History                     Add-History [[-InputObject] ...<o:p></o:p>

Cmdlet          Add-Member                      Add-Member [-MemberType] <PS...<o:p></o:p>

...

<o:p></o:p>

<o:p></o:p>默认的 Get-Command 显示有以下三列CommandTypeName Definition。列出 cmdlet 时,Definition 列显示 cmdlet 的语法。语法中的省略号 (…) 指示数据被截断。

Get-Command cmdlet 还获取除 cmdlet 之外的命令和命令元素其中包括在 Windows PowerShell 中可用的别名命令昵称、函数和可执行文件。

通过使用 Get-Command Name 参数以下命令列出了在 Windows PowerShell 中可用的可执行文件。<o:p></o:p>

PS> get-command *.exe<o:p></o:p>

<o:p> </o:p>

CommandType Name                   Definition<o:p></o:p>

----------- ----                   ----------

Application 000StTHK.exe           C:\WINDOWS\system32\000StTHK.exe<o:p></o:p>

Application 00THotkey.exe          C:\WINDOWS\system32\00THotkey.exe<o:p></o:p>

Application accwiz.exe             C:\WINDOWS\system32\accwiz.exe<o:p></o:p>

...

<o:p></o:p>列出可执行文件时Defintion 列包含可执行文件的完整路径。<o:p></o:p>

然后尝试一些其他 cmdlet Get-ProcessGet-ServiceGet-EventLog Get-Alias

如果对简单的Get-cmdlet 已非常熟悉请尝试更有趣的 cmdlet Get-WmiObject。此 cmdlet 非常有用,因为使用它可以查看和更改远程计算机的组件。例如,以下命令获取有关 Server01 远程计算机上 BIOS 的信息:<o:p></o:p>

get-wmiobject win32_bios -computername server01<o:p></o:p>

<o:p></o:p>如果需要任何 cmdlet 的帮助请键入<o:p></o:p>

get-help <cmdlet 名称> -detailed<o:p></o:p>

例如<o:p></o:p>

get-help get-alias -detailed<o:p></o:p>

了解对象Get-Member<o:p></o:p>

Get-Member 是最有用的 cmdlet 之一它显示有关命令返回的 .NET 对象的信息。该信息包括对象的类型、属性和方法。<o:p></o:p>

若要使用 Get-Member请使用管道运算符 (|) 将命令结果发送到 Get-Member。例如<o:p></o:p>

get-service | get-member<o:p></o:p>

此命令显示 Get-Service 实际上返回了一组 System.ServiceProcess.ServiceController 对象 -- 计算机上的每个服务都有一个对象。<o:p></o:p>

TypeName:System.ServiceProcess.ServiceController<o:p></o:p>

<o:p> </o:p>

Name                      MemberType    Definition<o:p></o:p>

----                      ----------    ----------

Name                      AliasProperty Name = ServiceName<o:p></o:p>

add_Disposed              Method        System.Void add_Disposed(EventHandler value)<o:p></o:p>

Close                     Method        System.Void Close()<o:p></o:p>

Continue                  Method        System.Void Continue()<o:p></o:p>

CreateObjRef              Method        System.Runtime.Remoting.ObjRef CreateObjRef(Type requestedType)<o:p></o:p>

Dispose                   Method        System.Void Dispose()<o:p></o:p>

Equals                    Method        System.Boolean Equals(Object obj)<o:p></o:p>

ExecuteCommand            Method        System.Void ExecuteCommand(Int32 command)<o:p></o:p>

get_CanPauseAndContinue   Method        System.Boolean get_CanPauseAndContinue()<o:p></o:p>

get_CanShutdown           Method        System.Boolean get_CanShutdown()<o:p></o:p>

get_CanStop               Method        System.Boolean get_CanStop()<o:p></o:p>

get_Container             Method        System.ComponentModel.IContainer get_Container()<o:p></o:p>

get_DependentServices     Method        System.ServiceProcess.ServiceController[] get_DependentServices()<o:p></o:p>

get_DisplayName           Method        System.String get_DisplayName()<o:p></o:p>

get_MachineName           Method        System.String get_MachineName()<o:p></o:p>

get_ServiceHandle         Method        System.Runtime.InteropServices.SafeHandle get_ServiceHandle()<o:p></o:p>

get_ServiceName           Method        System.String get_ServiceName()<o:p></o:p>

get_ServicesDependedOn    Method        System.ServiceProcess.ServiceController[] get_ServicesDependedOn()<o:p></o:p>

get_ServiceType           Method        System.ServiceProcess.ServiceType get_ServiceType()<o:p></o:p>

get_Site                  Method        System.ComponentModel.ISite get_Site()<o:p></o:p>

get_Status                Method        System.ServiceProcess.ServiceControllerStatus get_Status()<o:p></o:p>

GetHashCode               Method        System.Int32 GetHashCode()<o:p></o:p>

GetLifetimeService        Method        System.Object GetLifetimeService()<o:p></o:p>

GetType                   Method        System.Type GetType()<o:p></o:p>

InitializeLifetimeService Method        System.Object InitializeLifetimeService()<o:p></o:p>

Pause                     Method        System.Void Pause()<o:p></o:p>

Refresh                   Method        System.Void Refresh()<o:p></o:p>

remove_Disposed           Method        System.Void remove_Disposed(EventHandler value)<o:p></o:p>

set_DisplayName           Method        System.Void set_DisplayName(String value)<o:p></o:p>

set_MachineName           Method        System.Void set_MachineName(String value)<o:p></o:p>

set_ServiceName           Method        System.Void set_ServiceName(String value)<o:p></o:p>

set_Site                  Method        System.Void set_Site(ISite value)<o:p></o:p>

Start                     Method        System.Void Start(), System.Void Start(String[] args)<o:p></o:p>

Stop                      Method        System.Void Stop()<o:p></o:p>

ToString                  Method        System.String ToString()<o:p></o:p>

WaitForStatus             Method        System.Void WaitForStatus(ServiceControllerStatus desiredStatus), System.Voi...<o:p></o:p>

CanPauseAndContinue       Property      System.Boolean CanPauseAndContinue {get;}<o:p></o:p>

CanShutdown               Property      System.Boolean CanShutdown {get;}<o:p></o:p>

CanStop                   Property      System.Boolean CanStop {get;}<o:p></o:p>

Container                 Property      System.ComponentModel.IContainer Container {get;}<o:p></o:p>

DependentServices         Property      System.ServiceProcess.ServiceController[] DependentServices {get;}<o:p></o:p>

DisplayName               Property      System.String DisplayName {get;set;}<o:p></o:p>

MachineName               Property      System.String MachineName {get;set;}<o:p></o:p>

ServiceHandle             Property      System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}<o:p></o:p>

ServiceName               Property      System.String ServiceName {get;set;}<o:p></o:p>

ServicesDependedOn        Property      System.ServiceProcess.ServiceController[] ServicesDependedOn {get;}<o:p></o:p>

ServiceType               Property      System.ServiceProcess.ServiceType ServiceType {get;}<o:p></o:p>

Site                      Property      System.ComponentModel.ISite Site {get;set;}<o:p></o:p>

Status                    Property      System.ServiceProcess.ServiceControllerStatus Status {get;}<o:p></o:p>

<o:p></o:p>此信息看起来技术性很强但是它实际上非常实用。

·通过类型名称System.ServiceProcess.ServiceController”)可以知道 cmdlet 返回什么类型的 .NET 对象。若要获取有关此 .NET 类中对象的信息,请将类型名称粘贴在 MSDN 上的“Search”(搜索)文本框中。关联的 MSDN 主题包括有关此类中对象的属性和方法的信息,其中包括 Get-Service 返回的对象。<o:p></o:p>

· Property 类型表示对象的属性。每个属性的值是有关服务对象的信息。例如,ServiceController

分享到:
评论

相关推荐

    使用PowerShell发送POST / GET请求

    它支持命令行操作,同时拥有一个强大的脚本语言——PowerShell Scripting Language(PSL)。 2. **网络请求与HTTP协议**: HTTP(超文本传输协议)是互联网上应用最广泛的数据交换协议。POST和GET是HTTP请求的两种...

    【推荐】最新超全的渗透测试学习基础教程集合(84份).zip

    最新超全的渗透测试学习基础教程集合,新手、大佬都可以阅读: 01.入门笔记之看雪Web安全学习及异或解密示例; 02.Chrome浏览器保留密码功能渗透解析及登录加密入门笔记; 03.Burp Suite工具安装配置、Proxy基础用法...

    windows操作系统课件

    掌握如何使用事件查看器、系统日志和错误报告来诊断问题,以及如何使用系统恢复点或重置电脑来解决问题,是提高Windows使用经验的关键。 10. **多任务与窗口管理** Windows支持多任务并行处理,理解窗口的排列、...

    DOS环境——批处理教程

    执行批处理文件的平台主要是DOS系统,尽管现在多数用户使用的是Windows操作系统,但Windows仍然支持DOS命令和批处理脚本。 在批处理中,一些常用的命令包括: 1. `&gt;` 和 `&gt;&gt;`:这两个符号用于重定向输出。`&gt;` 会...

    lab-programmation-script-powershell:编程脚本zh-cn PowerShell

    - WS-Man(Windows Management Instrumentation):使用PowerShell进行远程系统管理的基础。 - Enter-PSSession:开启远程PowerShell会话,执行远程操作。 7. **自动化任务**: - 计划任务:配置PowerShell脚本...

    linux+windows操作系统

    在Windows部分,可能会涉及系统安全、注册表编辑、故障排除以及使用PowerShell进行自动化管理的知识。 学习操作系统不仅有助于提升日常的计算机使用效率,更是进入系统管理员、软件开发者、网络安全等领域的基础。...

    教程| 在Windows和Linux上快速启动.NET Core

    这篇教程将指导你如何在两种主要的操作系统——Windows和Linux上快速开始使用.NET Core进行开发。 首先,我们来了解.NET Core的基础知识。.NET Core包含了运行时环境、框架和编译器,使得开发者可以使用C#、F#或VB...

    《Windows Azure入门指南》

    1. **云服务模型**:Azure支持三种主要的云服务模型——基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。IaaS允许用户租用计算资源,如虚拟机;PaaS提供了一个平台来构建、运行和管理应用程序;...

    WMI入门教程(微软版)之二

    本文档提供了两个具体的脚本实例——清单1和服务信息脚本,清单2和操作系统信息脚本,这两个脚本展示了如何使用WMI和VBScript来获取系统的相关信息。 ##### 清单1:服务信息脚本 ```vb strComputer="." Set ...

    Internet时间同步

    NTP工作在TCP/IP模型的第四层——传输层,使用UDP协议,端口号为123。它通过比较客户端和服务器之间的往返时间来估算时间偏差,并进行相应的调整。 要实现"Internet时间同步",我们需要编写或使用现成的控件和源码...

    Active Directory 循序渐进系列指南.rar

    《Active Directory 循序渐进系列指南》是一个深入学习和理解Windows操作系统中核心组件——Active Directory(活动目录)的综合教程。本指南旨在帮助IT专业人员逐步掌握如何规划、部署、管理和维护Active Directory...

    初学者的实用DOS学习软件

    总的来说,DOS虽然在现代计算机环境中已不再主流,但它的核心思想——命令行操作和脚本自动化,依然在各种高级操作系统(如Linux和Windows PowerShell)中得到延续和发展。因此,学习DOS不仅可以了解计算机历史,还...

    dos 概述及入门

    **DOS概述** DOS(Disk Operating System,磁盘操作系统)是个人计算机上最早期...虽然现在DOS的使用已经大大减少,但其精髓——命令行操作和高效的工作方式,仍然在现代的命令提示符(CMD)和PowerShell中得以延续。

    记事本_自动化

    标题中的“记事本_自动化”表明我们讨论的主题是关于使用自动化技术来操作或扩展Windows系统内置的简单文本编辑器——记事本。记事本虽然功能基础,但通过自动化工具,我们可以实现一些高效和复杂的任务,比如批量...

    5. 第一个Java程序_java_

    首先,我们需要了解Java开发环境的基础——Java Development Kit (JDK)。JDK是Java程序员必备的工具,它包含了Java编译器、Java虚拟机(JVM)和其他开发工具。确保下载并安装最新版本的JDK到你的计算机上。 接下来...

    Cooolis.github.io:Cooolis是一个操作系统命令技巧指南

    例如,你可以在这里找到如何使用grep命令在大量文本中快速查找信息,或者如何使用Powershell在Windows环境中实现高级任务自动化。 接着,我们讨论一下LOLBAS的概念。LOLBAS的理论基础是,攻击者往往不依赖外部工具...

    查看django版本的方法分享

    然后,打开命令行工具,这可以是Windows系统中的命令提示符(cmd)或PowerShell,也可以是Unix/Linux系统中的终端。 在命令行输入: ``` python -m django --version ``` 这条命令利用了Python的模块执行功能,它...

Global site tag (gtag.js) - Google Analytics