使用powershell更改属性

问题描述 投票:0回答:1

首先:我是一个完全陌生的Powershell-脚本。

想通过powershell修改一些用户的属性 "preferredLanguage",这些用户是用txt-filetestUser000testUser001等写的。

我的第一次尝试是成为一个带有用户和一些属性的列表。

     $users = ForEach ($user in $(Get-Content C:\Temp\users.txt)) {

    Get-AdUser $user -Properties Department, Mail, preferredLanguage

}

 $users |
 Select-Object SamAccountName,Department,Mail, preferredLanguage |
 Export-CSV -Path C:\temp\outputUsers.csv -NoTypeInformation

目前为止还算成功

"SamAccountName","Department","Mail","preferredLanguage""tesUser000","dept1","[email protected]","DE""testUser0001","dept2","[email protected]"。

testUser000在preferredLanguestUser0001中有一个条目,但没有。当我完成 users.txt后,有超过100个用户在'preferredLanguage'中没有条目。

现在我想改变preferredLanguage,我在互联网上做了一些调查。

$users = ForEach ($user in $(Get-Content C:\Temp\users.txt)) {

    Get-AdUser $user -Properties Department, Mail, preferredLanguage

}

 $users |
 Set-AdUser $users -Replace @preferredLanguage="DE" |

 Select-Object SamAccountName,Department,Mail, preferredLanguage |
 Export-CSV -Path C:\temp\outputUsers.csv -NoTypeInformation

如果我对这个脚本的理解正确,那么它就会从我的txt文件中获取每个用户的属性,然后它就会改变txt文件中用户的 "preferredLanguage "属性,然后再选择它,然后它就会把输出保存在csv文件中。

也许有人可以看一下这个脚本,并且会很友好地给我反馈,或者有更好的方法,因为我很害怕在AD-Server上使用这个脚本。

powershell active-directory command
1个回答
0
投票

只是一些事情。

  • Get-AdUser $user 意味着你必须确定有这个身份的用户存在,否则会产生异常。
  • 句法 -Replace 经营者应 @{preferredLanguage="DE"}
  • Set-ADUser不会产生任何输出,除非是在 -PassThru 参数。
  • 如果您使用 ForEach-Object你可以在一个循环中完成所有这些工作

试着用这个改一下代码。

(Get-Content C:\Temp\users.txt) | ForEach-Object {
    $account = Get-AdUser -Filter "SamAccountName -eq '$_'" -Properties Department, Mail, preferredLanguage -ErrorAction SilentlyContinue
    if ($account) {
        $account | Set-AdUser -Replace @{preferredLanguage="DE"} -PassThru |
        Select-Object SamAccountName,Department,Mail, preferredLanguage
    }
    else {
        Write-Warning "User '$_' does not exist"
    }
} | Export-CSV -Path C:\temp\outputUsers.csv -NoTypeInformation

希望能帮到你

© www.soinside.com 2019 - 2024. All rights reserved.