什么是你最喜欢的Powershell命令或系统pipe理脚本?

什么是您的最高PowerShell命令? 让我们列出一个清单,然后投票选出最好的!

Get-Member是PowerShell cmdlet的王者。

Get-Member允许您以交互方式探索对象的成员和types(使用-static开关)静态成员。

我喜欢有一个用于查找AD用户的脚本:

$strFilter = "(&(objectCategory=User)(sAMAccountName=[USERNAME]))"; $objSearcher = New-Object System.DirectoryServices.DirectorySearcher; $objSearcher.SearchRoot = "LDAP://dc=[AD_Location]"; $objSearcher.Filter = $strFilter; $objSearcher.SearchScope = "Subtree"; $objSearcher.FindALL() 

我必须得到帮助。 此cmdlet是查找其他cmdletfunction的关键。 接近的第二个将是获得成员。

目前我是Get-WMIObject的粉丝。

“testingpath”发现这有用于检查数据是否已经存在,或者是否需要添加默认值。

对我来说 – 这是最有用的。

CD (变更位置) – 我基本上可以在registry中浏览,就好像它是一个文件系统一样。 基本上你可以为所有的PowerShell提供程序(由Get-PSProviders返回)

 cd HKLM:\ 

没问题 – Get-Member。 我无法想象任何PowerShell会话没有使用它。 可发现性是Windows PowerShell最强大的function之一。

这是比一个特定的cmdlet或函数更多的技术,但我最喜欢的PS的东西是对象的构造:

 $foo=""|select bar, baz, gronk|ft 

给你

 bar baz gronk ----- ----- ------ 

这非常方便将非结构化数据转换为一组对象进行进一步处理。

我最喜欢的之一:

Get-Content“c:\ logfile.log” – 等待

“tail -f”日志文件的powershell版本

我看到Get-Member列出,我不得不同意是最好的,但对我来说同样需要的是:

Format-List

我更常用的方法是在一个pipe道之后向我展示一个对象属性的所有值:

$SomeObject | fl *

GM会告诉你这个对象是什么,并列出它的属性的名称和types,但是这往往不能帮助你真正理解这些属性的使用方式,而不需要查看那些乏味的文档。

$SomeObject | Format-List * $SomeObject | Format-List *将输出对象上可用属性的所有值,以便您可以查看其当前值,并开始查找要select或用于过滤对象的属性。

我经常会发现一个对象有多个基于文档的属性看起来像他们有我想要的数据,但实际上只有一个属性有数据或其中一个数据是根本不是你所期望的单独的文件。

我做了一个小的方法,我添加到我的个人资料。 请参阅http://blog.keystroke.ch/2007/08/30/diskusage-in-powershell/

diskusage myserver

是我的首选命令。

除了Get-Member之外,我还得说Add-Member和New-Object,它们使你可以使用Extensible Type System。

能够在任何时间添加成员到任何对象允许你得到你需要的确切信息,能够对它进行sorting,分组,分片,分片,导出或任何你想要做的事情。