繁体   English   中英

在Powershell中将用户移动到禁用的OU

[英]Moving users to a disabled OU in Powershell

我正在尝试将残疾用户转移到AD中适当的OU。 我已经尝试使用此代码一段时间了,逻辑对我来说似乎很合理。 请让我知道你的想法:

$disalbled= Search-ADAccount -AccountDisabled -UsersOnly | Select SamAccountName | export-csv -Path 'C:\Users\andrew.schilling\Desktop\test\Test.csv' -NoTypeInformation

$disbaledlist = import-csv 'C:\Users\andrew.schilling\Desktop\test\Test.csv' 

foreach ($aduser in $disabledlist) { 
 Move-ADObject -Identity $aduser -TargetPath $OUTransfer 
 }

复制您的代码似乎正在尝试执行的最简单方法是:

$OUTransfer = "CN=Disabled Users Accounts,DC=Company,DC=local"

$DisabledUsers = Search-ADAccount -AccountDisabled -UsersOnly
$DisabledUsers |
    Select-Object -ExpandProperty SamAccountName |
    Export-Csv -Path 'C:\Users\andrew.schilling\Desktop\test\Test.csv'

$DisabledUsers | Move-ADObject -TargetPath $OUTransfer

但是,您将包括$OUTransfer OU中已经存在的所有用户。 那是浪费时间。 我将这样替换最后一行:

$DisabledUsers |
    Where-Object DistinguishedName -notlike "*$OUTransfer" |
    Move-ADObject -TargetPath $OUTransfer

如果您根本不需要CSV,而只是将其用作某种形式的临时存储,则可以进一步简化它:

$OUTransfer = "CN=Disabled Users Accounts,DC=Company,DC=local"

Search-ADAccount -AccountDisabled -UsersOnly |
    Where-Object DistinguishedName -notlike "*$OUTransfer" |
    Move-ADObject -TargetPath $OUTransfer

并且目标OU是$ OUTransfer =“ CN =禁用的用户帐户,DC =公司,DC =本地”

这有两个可能的问题:

  1. 如果是OU,则应以OU=开头。 可能是“容器”而不是“ OU”。 如果是这种情况,那就很好。
  2. =后面有一个空格。 不应有空间。

首先,您需要具有每个用户的DN才能移动他们。

Get-Help Move-ADObject -Examples

概要将Active Directory对象或对象容器移动到其他容器或域。

 -------------------------- EXAMPLE 1 -------------------------- C:\\PS>Move-ADObject -Identity "OU=ManagedGroups,DC=Fabrikam,DC=Com"TarrgetPath "OU=Managed,DC=Fabrikam,DC=Com" 

更改此:

$disalbled= Search-ADAccount -AccountDisabled -UsersOnly | Select SamAccountName | export-csv -Path 'C:\Users\andrew.schilling\Desktop\test\Test.csv' -NoTypeInformation

为此:

$disalbled= Search-ADAccount -AccountDisabled -UsersOnly | Select DistinguishedName | export-csv -Path 'C:\Users\andrew.schilling\Desktop\test\Test.csv' -NoTypeInformation

其次,您需要指定要在CSV中选择的列(在foreach循环中)

您可以这样做:

foreach ($aduser in $disabledlist) { 
 Move-ADObject -Identity $aduser.DistinguishedName -TargetPath $OUTransfer 
 }

完整解决方案:

$OUTransfer = "CN=Disabled Users Accounts,DC=Company, DC=local"
$disalbled= Search-ADAccount -AccountDisabled -UsersOnly | Select DistinguishedName | export-csv -Path 'C:\Users\andrew.schilling\Desktop\test\Test.csv' -NoTypeInformation
$disabledlist = import-csv 'C:\Users\andrew.schilling\Desktop\test\Test.csv'

foreach ($aduser in $disabledlist) { 
    Move-ADObject -Identity $aduser.DistinguishedName -TargetPath $OUTransfer  
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM