PowerShell предлагает очень удобный способ проверять метод и даже конструктор подписи (перегрузки) :
Просто получить доступ к имени метода без скобок , и PowerShell покажет вам все перегрузки (сигнатуры), определенные для этого метода;.eg:
# Method
PS> 'foo'.ToUpper # Inspect the .ToUpper() method - NO () at the end.
OverloadDefinitions
-------------------
string ToUpper()
string ToUpper(cultureinfo culture)
# Constructors, via a type literal (`[...]`) and its pseudo static new() method:
PS> [xml]::new # Constructors for [xml] (System.Xml.XmlDocument)
OverloadDefinitions
-------------------
xml new()
xml new(System.Xml.XmlNameTable nt)
Этот метод обычно также работает для COM-объектов , например, в вашем случае:
$ie = New-Object -ComObject InternetExplorer.Application
$ie.Navigate('http://example.org')
$ie.Document.getElementById # Get signatures for .getElementById()
В Windows PowerShell v5.1 в Windows10 это приводит к сокращению:
OverloadDefinitions
-------------------
mshtml.IHTMLElement ... getElementById(string v)
mshtml.IHTMLElement ... DispHTMLDocument.getElementById(string v)
mshtml.IHTMLElement ... IHTMLDocument3.getElementById(string v)
Предупреждение : для некоторых COM-объектов , в списке подписи перечислены без имен параметров в версиях до PowerShell Core v7 , что может затруднить понимание его функций.
Например,Это влияет на сервер автоматизации COM WScript.Shell
:
Windows PowerShell и PowerShell Core 6.x:
PS> (New-Object -ComObject WScript.Shell).Popup
OverloadDefinitions
-------------------
int Popup (string, Variant, Variant, Variant) # !! No parameter names.
В PowerShell Core 7.0 (превью 5):
PS> (New-Object -ComObject WScript.Shell).Popup
OverloadDefinitions
-------------------
int Popup (string Text, Variant SecondsToWait, Variant Title, Variant Type) # OK