将Powershell对象作为字符串参数传递

时间:2012-07-03 10:26:44

标签: sharepoint powershell

我目前正在尝试编写以下Powershell脚本,在SharePoint术语中,它检索管理中心URL(在$adminUrl中检索),然后打开带有该URL的Internet Explorer窗口。

我还要将另一个字符串附加到$adminUrl,然后再将其传递给Navigate方法:

$adminUrl = Get-spwebapplication -includecentraladministration | where {$_.DisplayName -eq "SharePoint Central Administration v4"} | select Url

$ie = New-Object -ComObject InternetExplorer.Application
$ie.Navigate($adminUrl + "/someurl") # <= Trying to pass the url here
$ie.Visible = $true

但是在尝试这样做时我遇到了这个例外:

Cannot find an overload for "Navigate" and the argument count: "1".
At \\a\setup.ps1:9 char:1
+ $ie.Navigate($adminUrl)
+ ~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodException
    + FullyQualifiedErrorId : MethodCountCouldNotFindBest

我在这里面临铸造问题吗?

1 个答案:

答案 0 :(得分:1)

$ adminUrl是一个具有url属性的对象,因此您需要使用子表达式来传递:

$ie.Navigate($adminUrl.Url + "/someurl")

或使用子表达式:

$ie.Navigate("$($adminUrl.Url)/someurl")

只有在首先展开Url属性的值时,才能传递$ adminUrl的值:

 ...| select -ExpandProperty Url
 $ie.Navigate("$adminUrl/someurl")