这里是新成员。
我正在尝试创建一个Powershell脚本,该脚本可以使用当前日期(dd-MM-yyyy)创建一个新的OU,从文本文件中禁用用户,然后将其移动到新创建的OU中。
到目前为止,除了工作之外,我已经获得了所有东西。我已经读到这可能是因为文本文件包含用户sAMAccountName
,而用户Move-ADObject
无法使用吗?
就记录而言,我一般来说对脚本编制还不是很熟悉,我知道最后一行已经完全写完了。一切都由我在网上找到的东西组成。
代码:
$OU = "$((get-date).toString('dd-MM-yyyy'))"
$PathOU = "OU=DEPARTURES,OU=IT,OU=USERS,OU=DK,DC=xxx"
New-ADOrganizationalUnit $OU -ProtectedFromAccidentalDeletion $false -Path $PathOU
$CN = get-content "\\Server\User Administration\User Deletion\UsersToBeDisabled.txt"
$CN |Foreach {
Get-ADUser $_ | Disable-ADAccount
Move-ADObject -Identity $_ -TargetPath $OU
}
错误:
Move-ADObject:在“ DC = xxx”下找不到标识为“ firstname.lastname”的对象。 ActiveDirectoryCmdlet:Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException,Microsoft.ActiveDirectory.Management.Commands.MoveADObject **
希望您对此有一些想法,谢谢!
BR。米克
答案 0 :(得分:1)
您可以将-PassThru
开关与Disable-ADAccount
配合使用,将用户对象沿画线移至Move-ADObject
Get-ADUser $_ | Disable-ADAccount -PassThru | Move-ADObject -TargetPath "OU=$OU,$PathOU"
这也应该起作用:
$user = Get-ADUser $_
$user | Disable-ADAccount
$user | Move-ADObject -TargetPath "OU=$OU,$PathOU"
答案 1 :(得分:0)
在这里耦合错误;
1-您正尝试将整个AD对象用于-identity标志:而不是$ _,请尝试使用$ _。samaccountname。
2-您正在尝试将adobject移至$ ou,它只是一个字符串。我假设您的new-adOrganizationalUnit命令有效;因此,请在其后添加一行以表示“ $ newOU = Get-ADorganizationalunit” -path [whatever]
对不起,我没有时间输入和测试:(