2014-09-18 35 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