PowerShell: 入门

释放双眼,带上耳机,听听看~!

From:Wrox_-Professional_Windows_PowerShell(2008)

PowerShell
是基于.Net Framework2.0
的,另外它在一个运用到另一个运用中传递的是对象(.Net Framework
对象)而不是字符串或文本。

在运行时可通过
get-member
命令获取.Net
类的成员。PowerShell
也提供语法允许利用.net FrameWork2.0
类的静态成员,例如$now=[System.DateTime]::Now.
为了调用.net framework
的静态类成员,需要将类名有方括号括起来,用两个冒号指定需要的属性名或静态方法。

PowerShell
提供get-wmiobject
命令,允许获取机器状态信息。 例如get-wmiobject Win32-currentTime
可返回当前使用WMI
的日期和时间。还可以运用WMI
访问远端机器(核心的Powershell
命令只能访问本地机器)

Windows PowerShell team
的目标是下一代的微软管理控制台(MWC3.0)
, PowerShell
命令之上的图形化用户接口。

-Whatif
参数可让你看见当命令执行时将发生什么,用此参数可防止不必要的系统损坏。

Where-object
用于过滤对象,sort-object
用于排序对象

PowerShell
有两个命令Start-transcript,Stop-transcript
。可用于将在命令行中输入的命令和显示的相关信息copy
到指定的文件中。


Powershell
中几个数据存储都作为Dirve
,比如files, folders, registry, aliases, cerfificates, environment variables, functions… get-psdrive
命令可返回所有系统中定义的drive
。另一个方法是get-psprovider.
由于注册表也是作为drive
使用,可像文件系统那样导航。Set-location,
设置当前位置,比如 set-location HKLM:
, 也可用命令cd HKLM:
, 设置当前位置是HKEY_LOCAL_MACHINE.

当起路径保存在
$pwd
中。 Dir
命令等同于get-childitem
可返回指定路径下符合查询条件的文件

Active Directory provider

在以前的版本中有但是PowerShell1.0
中给去掉了,可能在以后的版本中还会出现。现在可以用.Net Framework2.0
相关类来呈现或维护Active Directory
。例如$AD=new-object System.DirectoryServices.DirectoryEntry

证书(
Certificates
)在PowerShell
中用cert drive
呈现证书信息。证书有层次结构,例如CurrentUser, LocalMachine
。PowerShell
为drives
提供一套统一的参数,但是一些特殊情况也有自己的参数,比如Certificate
有codesigning
参数而其它的就没有。

可以用
new-alias
自定义别名,用get-alias
获取当前的别名信息。

在未来的
PowerShell
版本上,COM
将用越来越少。WMI
对象可弥补PowerShell
对访问远程文件的缺陷。

通配符

?
         
指点位置精确匹配一个字符.

*
         
匹配0
到多个字符.

[abc]
   
匹配一类字符.
方括号中的任意字符出现就算匹配

[a-c]
   
匹配一定范围的字符.
如果连字符前的字符与连字符后面字符之间的字符出现就算匹配

 

自动变量

Variable  Description 描述
$$ Contains the last token received from the last line of code received by the command shell. 保存最后一个从最后一个代码行接收到的token
$?  Contains the success/fail status of the last operation carried out by the command shell. Holds the boolean value True or False. 保存最后一个操作执行后的成功或失败状态,Ture/False
$^ Contains the first token received from the last line of code received by the command shell. 保存第一个从最后一个代码行接收的token
$_ Contains the current pipeline object. Used by the where-object cmdlet, for example. 保存当前的pipeline对象,例如where-object命令使用
$Args An array of the parameters, not explicitly defined by name, passed to a function. 参数数组,没有特别地用名字指定传到函数
$ConfirmPreference Specifies what to do before PowerShell carried out an action that has side effects. 指定Powershell执行一个有副作用的动作前做什么
$ConsoleFileName The name of the current console file. 当前的console文件名
$DebugPreference Specifies the debugging policy. 指定debuging策略
$Error An array of error objects. 错误对象数组
$ErrorActionPreference Specifies how errors are to be responded to. 指定错误如何响应
$ErrorView Specifies the mode for displaying errors. 指定显示错误的方式
Variable  Description 描述
$ExecutionContext Specifies the execution objects available to cmdlets. 指定对cmdlet有效的执行对象
$False The boolean value False. 布尔值False
$FormatEnumerationLimit Specifies the limit on the enumeration of IEnumerable objects. 指定列举接口对象的列举限制
$Home Specifies the home directory for the current user. 指定当前用户的主目录
$Host Contains information about the PowerShell console. 保存PowerShell console的信息
$Input Specifies the input to a script block in a pipeline. 指定一个pipeline中脚本段的输入
$MaximumAliasCount Specifies the maximum number of aliases allowed. 指定允许的Alias最大数
$MaximumDriveCount Specifies the maximum number of drives allowed. 指定允许的drive最大数
$MaximumErrorCount Specifies the maximum number of errors stored in the $Error array. 指定允许的存储在Error数组中的error最大数
$MaximumFunctionCount Specifies the maximum number of functions allowed in a session. 指定一个session中最大函数数
$MaximumHistoryCount Specifies the maximum number of PowerShell commands stored in history. 指定Powershell命令最大历史保存数
$MaximumVariableCount Specifies the maximum number of variables available in a session. 指定一个session中最大变量数
$MyInvocation Contains information about how a script was called. 保存一个脚本如果调用信息
$NestedPromptLevel  The level of nesting of a PowerShell prompt. The level is 0 for the outermost shell. PowerShell提示的嵌套级别。级别是0到最外层
$null The NULL value. 空值
$PID The process ID for the PowerShell process.$pi.  
$Profile  The location of a user’s profile file (Profile.ps1). 用户profile文件位置
$ProgressPreference  Specifies the action taken when progress records are delivered. 当progress记录deliver时应采取的行动
$PSHome  The directory that PowerShell is installed into. PowerShell的安装目录
$PWD The current (or present) working directory. 当前的工作目录
Variable  Description 描述
$ReportErrorShow InnerException When set to TRUE (1) causes the chain of inner exceptions to be  displayed. 设置为True(1)时显示异常的内部链
$ReportErrorShowSource When set to TRUE (1) causes the assembly names of exceptions to be displayed. 设置为True(1)时显示异常的assemble名
$ReportErrorShowStackTrace When set to TRUE (1) causes the stack trace for exceptions to be  displayed. 设置为True(1)时显示异常的stack trace
$ShellId Name of the PowerShell shell running (default is Microsoft.PowerShell. Shell运行的名
$True  The boolean value TRUE.  
$VerbosePreference  Specifies the action to take when the write-verbose cmdlet is used in a script to write data. 当write-verbose cmdlet在脚本中使用时指定的动作
$WarningPreference  Specifies the action to take after text is written using the writewarning cmdlet. 当用writewarning cmdlet用于写文本完成后采取的动作
$WhatIfPreference  Specifies whether or not –whatif is enabled for all command 指定-whatif是否对所有命令启用

1
1

 

给TA打赏
共{{data.count}}人
人已打赏
安全技术安全运维

Windows服务器如何发现被黑

2018-5-20 12:24:31

安全技术

详解Node.js API系列 Crypto加密模块(2) Hmac

2021-12-21 16:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索