使用参数调用远程脚本

使用参数调用远程脚本

我在远程服务器上有一个脚本,如下所示:

function ExtractMetadata()
{

param([string]$url)

add-pssnapin 'microsoft.sharepoint.powershell'

set-alias STSADM "${env:commonprogramfiles}\Microsoft Shared\Web Server Extensions\16\BIN\STSADM.EXE"

STSADM -o mv-populatemetadata -url $url convention1 -usemvprefix

}

我想使用invoke-command从另一台服务器调用此命令,并传入一个url参数。执行此操作的正确语法是什么?

谢谢

答案1

您可以使用 来实现这一点scriptblock。以下将您的函数转换为scriptblock,然后使用-ArgumentListInvoke-CommandURL 作为参数传递。

$ExtractMetadata = {
    param([string]$url)
    add-pssnapin 'microsoft.sharepoint.powershell'
    set-alias STSADM "${env:commonprogramfiles}\Microsoft Shared\Web Server Extensions\16\BIN\STSADM.EXE"
    STSADM -o mv-populatemetadata -url $url convention1 -usemvprefix
}
Invoke-Command -Computer Server456 -scriptBlock $ExtractMetaData -ArgumentList "http://www.serverfault.com"

編輯1

远程服务器上是否已配置 Powershell 远程处理?Test-WSMan如果已配置,则应返回 4 行信息(wsmid、ProtocolVersion、ProductVendor、ProductVersion)

Test-WSMan -Computer Server456

如果启用了 PSR,运行像这样的更简单的远程命令会发生什么?

Invoke-Command -Computer Server456 -scriptBlock { get-wmiobject win32_computersystem }

相关内容