将变量传递给远程导入的PowerShell模块

时间:2011-08-12 10:17:46

标签: powershell active-directory powershell-remoting invoke-command

我正在尝试创建新的PSSession,在远程计算机上导入ActiveDirectory模块,然后将pssession导入到我的本地工作站 - 这很好用。代码如下:

$rs = New-PSSession -ComputerName RemoteMachine
Invoke-Command -Session $rs -scriptblock {import-module ActiveDirectory}
Import-PSSession -Session $rs -Module Active Directory

现在我可以调用ActiveDirectory cmdlet,例如Get-ADUser -Filter *工作正常。

BUT

我无法将变量传递给ActiveDirectory cmdlet,我无法执行以下操作:

$name = 'John Smith'
Get-ADUser -Filter {name -eq $name}

它说$name没有定义。我无法将变量传递给Get-ADUser

有什么建议吗?

由于

1 个答案:

答案 0 :(得分:1)

我现在无法测试它,但尝试使用双引号而不是脚本块,这样变量的值可以在移动到目标之前展开,

Get-ADUser -Filter "name -eq $name"