我在准备一些基于PS的有用脚本时遇到了一些问题。
我尝试制作将从Active Directory和Exchange(用户/邮箱)收集数据的脚本,然后这些数据将在脚本的其他部分处理(例如在某些功能中)
function toProcess($userObj, $mailboxObj)
{
echo $userObj.enabled #the output is null
}
$users = get-adusers -Filter * -properties *
foreach($user in $users)
{
$guid = $user.objectGuid.toString()
if($user.mail -ne $null)
{
$mailbox = get-mailbox $guid | select-object *
if($mailbox -ne $null)
{
toProcess($user, $mailbox)
}
}
}
当只为onProcess()分配一个参数($ user)时,函数会正确执行并显示account的状态。当我分配两个对象时,值变为null。 怎么了?
我使用的是powershell 2.0
答案 0 :(得分:3)
调用PowerShell函数时,参数由空格分隔,不需要括号。
你的函数调用应该是这样的。
toProcess $user $mailbox
通过在变量之间放置逗号,您创建的是一个对象数组的参数。