get-command   查看当前powershell中所有的命令。
Get-Service   获取表示本地计算机上服务的对象,包括正在运行和已停止的服务。可以通过制定服务名或服务的显示名称在只是Get-Service只获取特定的服务,或者也可以使用inputout参数来提供表示要检索的每个服务的服务对象
  Get-Help Get-Service -deiail Help
  Get-Help Get-Service -full Help
  -Name <string[]> 指定检索服务名称
  -Include <string[]> 只检索指定服务
  -Exclude <string[]> 忽略指定服务
  <CommonParameters> -verbose -Debug -ErrorAction -ErrorVaribal -OutVaribal
  -DisplayName <string[]> 指定检索服务的显示名称
  -inputObject <serviceController[]> 指定要检索的serviceController对象
            eg: Get-Service [*] 检索系统上所有服务
Get-Service wmi* 检索以wmi开头的服务
Get-Service -DisplayName *networl* 显示其显示名称中包含network的服务
$service = get-service                   显示以RPC开头的服务。第一条命令获取系统上的服务,并将它们存储在$service变量中。第二个命令获取$service变量中的服务,只包括那些以RPC开头的服务。它使用IputObject参数来将存储在该变量中的对象传递给Get-Service
get-service -inputobject $Service -include RPC*
get-service | where-object {$_.Status -eq "Running"} 只显示当前正在运行的服务。它使用Get-Service cmdlet来获取计算机上的所有服务。管道运算符 | 将结果传递给Where-Object cmdlet,后者只选择Status属性等于"Running"的服务。Status是服务对象的唯一属性。若要查看所有属性,请键入"get-service | get-member"
Resume-Service   恢复一项或多项挂起(暂停的)服务。为每一个指定的服务向Windows服务控制器发送一条恢复消息。如果他们已挂起,则他们将恢复。如果当前正在运行,则忽略。可以通过服务名称或显示名称来指定服务,也可以使用InputObject参数传递一个服务对象来代表您想要恢复的服务。
  -name <string[]> 参数名为可选项。可以使用"-name"或其别名"-ServiceName",也可以忽略该参数名称。
  -Include <string[]>  
  -Exclude <string[]>  
  -passthru <SwitchParameter> 通过管道传递此cmdlet创建的对象。默认情况下,此cmdlet不通过管道传递任何对象。
  -DisplayName <string[]>  
     
  -inputObject <ServiceController[]> 恢复由指定的ServiceController对象表示的服务。请输入包含对象的变量,或者输入可获取对象的命令或表达式。
  -whattif 描述如果执行该命令会发生什么情况
  -confirm 在执行命令之前提示您进行确认。
  <CommonParmeters> get-help about_commonparameters
Start-Service   启动一个或多个已停止的服务
  $s = get-service wmi ##################################################################
  start-service -InputObject $s - passthru | format-list >> services.txt
Stop-Service   停止一个或多个正在运行的服务。
  -force <SwitchParameter> 覆盖阻止命令成功执行的限制,但应确保所做更改不会危及安全性。例如,force将停止具有依赖服务的服务。
Restart-Service   停止并接着启动一个或多个服务
  restart-service -displayname net* -exclude "net logon" 重启显示名称 以"net"开头的服务,"net logon"服务除外。
  get-service net* | where {$_,status -eq "stopped"} | restart-service 重启计算机上所有停止的网络服务。它使用get-service cmdlet获取代表服务名称以"net"开头的服务的对象。(省略了可选的name参数),后者指选择处于"stopped"状态的服务。另一个管道运算符将选定的服务发送至Restart-Service。
Suspend-Service    
  get-service | where-object {$_.canpauseandcontinue -eq "true"} suspend-service -confirm 挂起计算机上所有可挂起的服务。它使用Get-Service cmdlet来获取计算机上表示相应服务的对象。管道运算符 | 将结果传递给Where-object cmdlet,该cmdlet只选择CanPauseAndCantinue属性为"true"的服务。另一个管道运算符将结果传递给Suspend-Service cmdlet。
Set-service    
New-Service    
get-* | get-member   若要查明cmdlet正获取对象的类型,请使用管道运算符|将get命令发送到get-member
  get-service alerter | format-list -property name, CanPauseAndContinue 显示 Alerter 服务的 CanPauseAndContinue 属性的名称和值的列表
  get-service | format-table -property name, CanPauseAndContinue 显示所有服务的 CanPauseAndContinue 属性的名称和值的表
  get-service | format-table name, Servicetype, Canshutdown 使用 Format-Table 命令仅显示服务的 Name、ServiceType 和 CanShutDown 属性
  get-service schedule | format-list -propery * 若要查找特定对象的所有属性值,请使用管道运算符|将get命令的结果发送到Format-List或Format-Table.(查找Schedule服务的所有属性。)
  Page Up 跳转到历史缓冲区的第一个命令
  Page down 跳转到历史缓冲区的最后一个命令
  UpArrow 向后显示历史缓冲区
  DownArrow 向前显示历史缓冲区
  Home 跳跃到命令行的开头
  End 跳跃到命令行的末尾
  Ctrl+LeftArrow 到最左侧字符
  Ctrl+rightArrow 到右侧单词结尾
  Tab  
  f7 显示历史缓冲区(使用向上向下箭头选择)
get-childitem   获取当前位置中的子项,如果当前位置为文件系统目录,则此命令获取当前目录中的文件和子目录。如果该项不具有子项,则此命令将返回提示符,而不显示任何内容。d目录,a存档,r只读,h隐藏,s系统
  get-childitem . -include *.txt -recurse -force 检索当前目录及其子目录中的所有.txt.文件。Path参数值中的点.表示当前目录,而include参数指定文件扩展名。Rescurse参数只是ps递归检索对象,并指示该命令的执行对象为指定目录及其内容。Force参数将隐藏文件添加到显示中。
  get-childitem c:\windows\logs\* -include *.txt -exclude a* 列出log子目录中的.txt文件,但名称以字母a开头的除外。它使用通配符*以指示log子目录的内容,而不是目录容器。因为此命令未包含Recurse参数,所有Get-Childitem不会自动包括目录的内容,您需要制定该内容。
  get-chileitem registry::hklm\software 检索本地计算机内的HKEY_LOCAL_MACHINE\SOFTWARE项中的所有注册表项。
  get-childitem -name 仅检索当前目录中的项的名称
  get-childitem cert:\. -recurse -codesigningcert 获取证书存储区域中具有代码签名颁发机构的所有证书。
  get-childitem * -include *.exe 检索当前目录中具有.exe文件扩展名的所有项。通配符*表示当前目录的内容(而不是容器)。使用include参数且不使用Recurse参数时,路径必须指向内容,而不是容器。
get-alias   获取当前会话的别名。
  get-alias -name g*, s* -exclude get-* 获取所有以g或s开头的别名,但以get-开头的别名除外。
  get-alias -definition Get-chileitem 获取Get-Childitem cmdlet的别名。
  get-alias | where-object {$_.options -match "readonly"} 检索所有其Option属性值为ReadOnly的别名。提供了快速查找windows powershell 中内置别名的方法,因为这些别名具有Readonly选项。
  get-alias -definition "*-pssession" -exclude e* -scope global 获取所有以“-pssession"结尾的命令别名,但以"e"开头的别名除外。该命令使用scopea参数将命令应用到全局作用域。当您希望获取会话中的别名时,这对脚本比较有用。
     
  Get-WmiObject -class win32_networkadapterconfiguration -filter ipenabled=true -ComputerName . |Select-Object -Property IPaddress 查看服务器地址
select-string   查找字符串和文件中的文本
  -AllMatches [<switchparameter>] 在每个文本行中搜索多个匹配项。
  -CaseSensitive [<SwitchParameter>] 使匹配项区分大小写。
  -Context <int[32]> 捕获包含匹配项的行前后的指定行数。
  -Encoding <String[]> 指定 Select-String 在搜索文件时应采用的字符编码。默认值为 UTF8。
  -Exclude <string[]>  排除指定项。
  -Include <string[]> 只包括指定项。
  -InputObject <psobject>  指定要搜索的文本。请输入包含文本的变量,或键入可获取文本的命令或表达式。
  -List [<SwitchParameter>]  只返回每个输入文件中的第一个匹配项。
   -NotMatch [<SwitchParameter>] 查找与指定模式不匹配的文本。
  -Path <string[]>  指定要搜索的文件的路径。允许使用通配符。默认位置为本地目录。
  -Pattern <string[]>  指定要查找的文本。键入字符串或正则表达式。如果您键入字符串,则使用 SimpleMatch 参数。
   -Quiet [<SwitchParameter>] 返回布尔值(True 或 False),而不是 MatchInfo 对象。
   -SimpleMatch [<SwitchParameter>] 使用简单匹配,而不是正则表达式匹配。
eg: "HELLO" , "hello" | select-string -pattren "HELLO" -casesensitive  此命令为通过管道传递给 Select-String 命令的文本执行区分大小写的匹配。因此,Select-String 只查找“HELLO”,因为“hello”不匹配。因为每个带引号的字符串都被视为一行,所以若不使用 CaseSensitive 参数,Select-String 会将这两个字符串都识别为匹配项。
  select-string -path *.xml -pattern "the the" 此命令在当前目录中搜索所有扩展名为 .xml 的文件,并显示这些文件中包含字符串“the the”的各行。
  select-string -path $pshome\en-US\*.txt -pattern "@" 此命令在 Windows PowerShell 概念性帮助文件 (about_*.txt) 中搜索有关 at 符号 (@) 用法的信息。为了指示路径,此命令使用 $pshome 自动变量的值,该变量存储 Windows PowerShell 安装目录的路径。在此示例中,该命令搜索 en-US 子目录,该目录包含 Windows PowerShell 的美国英语版帮助文件。
   C:\PS>function search-help
    {
        $pshelp = "$pshome\es\about_*.txt", "$pshome\en-US\*dll-help.xml"
        select-string -path $pshelp -pattern $args[0]
    }
    这一简单函数使用 Select-String cmdlet 在 Windows PowerShell 帮助文件中搜索特定字符串。在此示例中,该函数在“en-US”子目
    录中搜索美国英语语言文件。
  $events = get-eventlog -logname application -newest 100               $events | select-string -inputobject {$_.message} -pattern "failed" ##################################################################
  get-childitem c:\windows\system32\* -include *.txt -recurse | select-string -pattern "Microsoft" -casesensitive 此命令检查 C:\Windows\System32 子目录中所有扩展名为 .txt 的文件,并搜索字符串“Microsoft”。CaseSensitive 参数指明“Microsoft”中的“M”必须大写,其余字符必须小写,以便 Select-String 按此条件查找匹配项。
  select-string -path process.txt -pattern idle, svchost -notmatch 此命令查找 Process.txt 文件中不包括“idle”或“svchost”字词的文本行。
get-date   获取系统时间
get-command get-command -name -*.exe 列出在 Windows PowerShell 中可用的可执行文件
get-process   获取在本地计算机或远程计算机上运行的进程。
  -ComputerName <String[]>     获取指定计算机上运行的进程。默认值为本地计算机。键入一台或多台计算机的 NetBIOS 名称、IP 地址或完全限定的域名。要指定本地计算机,请键入计算机名称、句点 (.) 或“localhost”。此参数不依赖于 Windows PowerShell 远程处理。即使您的计算机未配置为运行远程命令,您也可以使用 Get-Process 的 Computer
        Name 参数。
  -FileVersionInfo [<SwitchParameter>] ##################################################################
   -Id <Int32[]> 过进程 ID (PID) 指定一个或多个进程。若要指定多个 ID,请使用逗号分隔 ID。要查找进程的 PID,请键入“get-process”。-InputObject <Process[]>指定一个或多个进程对象。输入一个包含对象的变量,或键入可获取对象的命令或表达式。
  -InputObject <Process[]> 指定一个或多个进程对象。输入一个包含对象的变量,或键入可获取对象的命令或表达式。
  -Module [<SwitchParameter>]  获取已由进程加载的模块。
eg: >Get-Process winword, explorer | format-list *  此命令获取计算机上的有关 Winword 和 Explorer 进程的所有可用的数据。它使用 Name 参数来指定进程,但省略可选的参数名。管道运算符 (|) 将数据传递给 Format-List cmdlet,后者将显示 Winword 和 Explorer 进程对象的所有可用属性 (*)。也可通过其进程 ID 来标识这些进程。例如,“get-process -id 664, 2060”。
  get-process | where-object {$_.WorkingSet -gt 20000000} 此命令获取所有工作集大于 20 MB 的进程。它使用 Get-Process cmdlet 来获取所有正在运行的进程。管道运算符 (|) 将进程对象传递给 Where
    -Object cmdlet,后者只选择 WorkingSet 属性的值大于 20,000,000 字节的对象。WorkingSet 是进程对象的许多属性中的一个。要查看所有属性,请键入“Get-Process | Get-Member”。默认情况下,所有数量属性的值以字节为单位,尽管默认显示以千字节和兆字节为单位列出这些值。
  $a = get-process               get-process -inputobject $a | format-table -view priority
    
第一个命令获取计算机上的所有进程,然后将其存储在 $a 变量中。
 第二个命令使用 InputObject 参数将存储在 $a 变量中的进程对象传递给 Get-Process cmdlet。管道运算符将对象传递给 Format-Tab
    le cmdlet,该 cmdlet 使用 Priority 视图设置进程的格式。
  get-process powershell -fileversioninfo 此命令使用 FileVersionInfo 参数来获取 PowerShell.exe 文件的版本信息,该文件是 PowerShell 进程的主模块。
  get-process sql* -module 此命令使用 Module 参数来获取已由进程加载的模块。此命令获取名称以“sql”开头的进程的模块。
  $p = get-wmiobject win32_process -filter "name='powershell.exe'"
$p.getowner()
此命令演示如何查找进程的所有者。因为 Get-Process 返回的 System.Diagnostics.Process 对象没有返回进程所有者的属性和方法,所以该 命令将使用Get-WmiObject cmdlet 来获取表示该进程的 Win32_Process 对象。第一个命令使用 Get-WmiObject 来获取 PowerShell 进程。此命令将其保存在 $p 变量中。第二个命令使用 GetOwner 方法来获取 $p 中进程的所有者。
cd function:   进入函数驱动器
clear-host   删除控制台窗口内的所有文本
import-module <module-name>   将模块从默认模块位置导入到当前会话中