0

As a developer for the .NET platform, I like to "explore" a platform, framework or API by browsing through the API documentation which explains what everything is - everything is covered and when I use tools like Reflector or Object Browser then I get to know for certain what I'm working with. When I'm writing my own software I can use tools like the Object Test Bench to explore and work with my classes directly. I'm looking for something similar, but for PowerShell - and ones that avoid text-mode.

PowerShell is nice, and there are a lot of cool "discoverability"-things it has, such as the "Verb-Noun" syntax, however when I'm working with Exchange Server, for example, I wanted to get a list of AD Permissions on a Receive Connector and I got this list:

        [PS] C:\Windows\system32>Get-ADPermission "Client SVR6" -User "NT AUTHORITY\Authenticated Users" | fl


User                : NT AUTHORITY\Authenticated Users
Identity            : SVR6\Client SVR6
Deny                : False
AccessRights        : {ExtendedRight}
IsInherited         : False
Properties          :
ChildObjectTypes    :
InheritedObjectType :
InheritanceType     : All

User                : NT AUTHORITY\Authenticated Users
Identity            : SVR6\Client SVR6
Deny                : False
AccessRights        : {ExtendedRight}
IsInherited         : False
Properties          :
ChildObjectTypes    :
InheritedObjectType :
InheritanceType     : All

User                : NT AUTHORITY\Authenticated Users
Identity            : SVR6\Client SVR6
Deny                : False
AccessRights        : {ExtendedRight}
IsInherited         : False
Properties          :
ChildObjectTypes    :
InheritedObjectType :
InheritanceType     : All

User                : NT AUTHORITY\Authenticated Users
Identity            : SVR6\Client SVR6
Deny                : False
AccessRights        : {ExtendedRight}
IsInherited         : False
Properties          :
ChildObjectTypes    :
InheritedObjectType :
InheritanceType     : All

User                : NT AUTHORITY\Authenticated Users
Identity            : SVR6\Client SVR6
Deny                : False
AccessRights        : {ExtendedRight}
IsInherited         : False
Properties          :
ChildObjectTypes    :
InheritedObjectType :
InheritanceType     : All

User                : NT AUTHORITY\Authenticated Users
Identity            : SVR6\Client SVR6
Deny                : True
AccessRights        : {ReadProperty}
IsInherited         : True
Properties          : {ms-Exch-Availability-User-Password}
ChildObjectTypes    :
InheritedObjectType : ms-Exch-Availability-Address-Space
InheritanceType     : Descendents

[PS] C:\Windows\system32>

Note how the first few entries contain identical text - there's no way to tell them apart easily. But if there was a GUI presumably it would let me drill-down into the differences better.

Are there any tools that do this?

Dai
  • 2,290
  • 8
  • 27
  • 43

1 Answers1

1

If you want a GUI, upgrading to PowerShell 3 helps, it has the Show-Command commandlet, where you type a name-fraction of any available command and get the parameters and the help for it in a Windows rather than on the command line.

This only works for commands though, it doesn't know about the thousands of objects that you may use and their properties.

In your case, you are using | format-list (fl) to list properties of an AD object. That usually display some of the properties of the object but not all, try:

fl *

to show all properties for the object, or specify the property names you are interested in:

fl User,Identity

the full syntax would be:

format-list -property User,Identity
Peter Hahndorf
  • 14,058
  • 3
  • 41
  • 58