2016-03-14 72 views
1

我想枚举Active Directory中的服务器列表,然后将服务器名称作为复制命令的一部分插入到UNC路径中。PowerShell - 将变量传递给ForEach循环的问题

当我执行脚本时,我得到下面的结果。我认为也许我必须转换我的变量,但我不确定将其转换为什么。

VERBOSE:对目标执行操作 “复制文件”,“项目:C:\ davidtemp \ Logo.png目的地:\ @ {名称= NCIDITSTWEB07} \ C $ \ Program Files文件...

$webdev = Get-ADOrganizationalUnit -filter {name -like "*dev*"} | where {$_.DistinguishedName -like "*relativity*"} 
$ServerList = Get-ADComputer -SearchBase $webdev | where {$_.name -like "*web*"} | select name | sort name 


Foreach($server in $ServerList) 
{ 
$scriptBlockwork = { copy C:\davidtemp\Logo.png "\\$server\c$\program files\web\images" -Force -Verbose} 
Invoke-Command -ScriptBlock $scriptBlockwork -verbose 
} 

回答

1

我伸出来一个朋友,谁能够提供帮助。我没有正确定义变量。

我需要使用-ExpandProperty得到的结果到与管道工作的格式

$ SERVERLIST = Get-ADComputer -SearchBase $ webdev |其中{$ _。name-like“web“} |选择-expandProperty name

希望这可以帮助其他人可能有类似的问题。