Powershell的新手,仍在尝试获取逻辑。

我想过滤掉特定OU中 Activity 目录中的samaccountname,它在字符串(phil_test_adm)的末尾也包含“adm”。当找到用户时,我想用“tst”替换为“adm”。到目前为止,我已经掌握了以下内容,我仍然在逻辑上挣扎。

import-module activedirectory
$Path = 'OU=Example, OU=Users,DC=uk,DC=random,DC=com'
$users = Get-ADUser -filter 'SamAccountName -like "*adm"' -SearchBase $Path | select-object samaccountname, name
#foreach ($user in $users)
#{
#Set-ADUser $user.samaccountname -Replace {
#if $user.sammaccountname -eq "*adm"  }

如您所见,foreach是从哪里开始的。
感谢您的任何帮助!

最佳答案

假设您的前几行正在工作以检索正确的结果,则此foreach块应该工作:

foreach ($user in $users)
{
    $newSamAccoutname = $user.SamAccountName.replace("adm","tst")
    Set-ADUser $user -Replace @{samaccountname=$newSamAccoutname}
}

10-06 08:58