2014-09-18 36 views
0

我只是试图创建一个拉取CSV的小脚本,然后调用Quest AD从密码更改密码标志永不过期,然后将其更改为在下次登录时不必更改密码,希望能够将其纳入默认域策略。我已经单独使用它,但是当我尝试添加一个ForEach变量时,我似乎无法使它工作。这是我的脚本。它可以轮询CSV中的每个条目,但是当我尝试使用QAD中的$ entry变量进行操作时,它将为空。我不是最好的PowerShell,所以我转向你的专家。尝试使用QAD在Powershell中启用变量并获取空例外

Import-Module ActiveDirectory 
Add-PSSnapin Quest.ActiveRoles.ADManagement 

$list = Import-csv “password.csv” 
ForEach($entry in $list) 
{ 
Set-QADUser $entry -UserMustChangePassword $True 
Start-Sleep -Sec 1 
Set-QADUser $entry -UserMustChangePassword $False 
} 

回答

1

$entry将包含一个对象,该对象的属性基于您的csv文件的标题。

Import-csv “password.csv” 

只需输入上述内容即可显示对象。即使你只有一列,你也需要调用它的属性。

在你ForEach循环你需要拨打$entry.Username。答案在你的csv文件中。如果你的文件只包含一列,那么你可以做这样的事情:

$list = Get-Content | Select-Object -Skip 1 

Skip 1会忽略一个CSV标题。或者你可以这样做:

$list = Import-csv “password.csv” | Select-Object -ExpandProperty UserName 

所有这一切都是假设。您的CSV“password.csv”内容包含答案。

+0

马特 - 谢谢。我认为这可能是我的问题。 CSV只有用户名列表,没有标题来定义用户名。这么小的细节。我会给你一个机会,并且如果它能够工作,就给你一个答案。 – 2014-09-19 12:49:54