我试图通过另一个函数参数将参数传递给New-module。 但它没有用。
function new-remotenode
{
param
(
$hostName,
$UserName,
$Password,
$UniqueName
)
New-Module -ArgumentList @($hostName,$UserName,$Password) -Name $UniqueName {
$HostName = $hostName
$UserName = $UserName
$Password = $Password
function remoteExec
{
param (
$ScriptBlock
)
"Running the command $Scriptblock in " + $Script:HostName + "With " + $Script:UserName + $Script:Password
#. $ScriptBlock
}
} | Import-Module -PassThru
}
function Remove-remotenode
{
param
(
$name
)
Remove-module $name
}
$remoteNode = New-RemoteNode -hostName "<Some ip address>" -UserName "Admin" -Password "Password1" -uniqueName "Node1"
remoteExec { Get-childitem }
我正在传递用户名,密码和主机名,但我无法在remoteExec函数中访问它们。结果显示如下,没有UserName,Password和hostname
使用
运行命令Get-childitem
我在这里缺少什么?
答案 0 :(得分:1)
声明Module scriptblock中的参数:
New-Module -ArgumentList @($hostName,$UserName,$Password) -Name $UniqueName {
param(
$HostName,
$UserName,
$Password
)
function remoteExec
{
param (
$ScriptBlock
)
"Running the command $Scriptblock in " + $Script:HostName + "With " + $Script:UserName + $Script:Password
#. $ScriptBlock
}
} | Import-Module -PassThru