Как разработчик платформы .NET, мне нравится «исследовать» платформу, фреймворк или API, просматривая документацию API, в которой объясняется, что все такое - все покрыто, и когда я использую такие инструменты, как Reflector или Object Browser, я получаю точно знаю, с чем работаю. Когда я пишу собственное программное обеспечение, я могу использовать такие инструменты, как Object Test Bench, для непосредственного изучения моих классов и работы с ними. Я ищу что-то подобное, но для PowerShell - и те, которые избегают текстового режима.
PowerShell хорош, и в нем есть много интересных вещей, которые можно "обнаружить", например, синтаксис "Verb-Noun", однако, когда я, например, работаю с Exchange Server, я хотел получить список AD. Разрешения на коннекторе получения, и я получил этот список:
[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>
Обратите внимание на то, что первые несколько записей содержат идентичный текст - их невозможно легко отличить. Но если бы был графический интерфейс, то, вероятно, я бы лучше разбирался в различиях.
Есть какие-нибудь инструменты для этого?
Если вам нужен графический интерфейс, обновление до PowerShell 3 поможет, у него есть командлет Show-Command, в котором вы вводите часть имени любой доступной команды и получаете параметры и справку для нее в Windows, а не в командной строке.
Это работает только для команд, но не знает о тысячах объектов, которые вы можете использовать, и их свойствах.
В вашем случае вы используете | format-list (fl) для вывода списка свойств объекта AD. Это обычно отображает некоторые свойства объекта, но не все, попробуйте:
fl *
чтобы показать все свойства объекта, или укажите имена свойств, которые вас интересуют:
fl User,Identity
полный синтаксис:
format-list -property User,Identity