问题
How can I find what Static Classes and Methods there is available in PowerShell 2.0?
回答1:
You can use any .NET types and their static methods from PowerShell. To enumerate all that are currently loaded into your AppDomain, you can do:
[AppDomain]::CurrentDomain.GetAssemblies() | foreach { $_.GetTypes() } | foreach { $_.GetMethods() } | where { $_.IsStatic } | select DeclaringType, Name | format-table
Remember, you are not limited to static methods, you can also instantiate the types using new-object and call instance methods. You can use get-member on an instance to get the methods on a type.
Also, if you want to list your available CmdLets, just invoke:
Get-Command
回答2:
To get the static members of a type or object, pipe it to Get-Member and specify the Static switch:
[math] | Get-Member -Static
回答3:
You have the classes ( static or otherwise ) from .NET framework.
Once you have the class, you can use Get-Member:
[Environment] | Get-Member
PS: "Windows PowerShell Cookbook" by Lee Holmes has an Appendix which lists some useful classes, from Powershell / SysAdmin point of view. That list( and the book) is very useful.
回答4:
Mr driis, you are the man !!! Totally made my day !
I just took the liberty to modify it a little bit so it returns the whole list without duplicates:
PS C:\Users\Administrator> [AppDomain]::CurrentDomain.GetAssemblies() | foreach { $_.GetTypes() } | foreach { $_.GetMethods() } | where { $_.IsStatic } | select DeclaringType | Out-File assemblies.txt
and then read the assemblies.txt file but only get unique rows :
cat .\assemblies.txt Get-Unique
来源:https://stackoverflow.com/questions/7489804/how-to-find-powershell-static-classes-and-methods