- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经构建了一个脚本,用于查询整个森林中的用户并执行一些操作:
当我针对林的根域中的 GC 运行此命令时,根域中的用户处理得很好。子域中的用户仅处理步骤 #3 文件,但步骤 #1 和 #2 会导致错误。
编辑澄清:这些命令是针对根目录林中的 2012 域 Controller 运行的,该 Controller 也是全局目录服务器。我以有权访问所有子域的企业管理员身份运行这些命令。使用这些相同的凭证和相同的服务器,我可以使用 Active Directory 用户和计算机手动进行所有这些编辑。
这是我创建的脚本:
$csvpath = ".\users.csv"
$groupcbr = Get-ADGroup "CN=test group,OU=Test OU,DC=contoso,DC=com"
Import-CSV -Path $csvpath | Foreach-Object {
$userprincipalname = $_.userprincipalname
$activationkey = $_.activationkey
Get-ADUser -Filter {userprincipalname -like $userprincipalname} -SearchBase "DC=contoso,DC=com" -Server "ROOTGC.contoso.com:3268" | Foreach-Object {
$dn = $_.DistinguishedName
#Set default as root domain
$domain = "contoso"
$domainserver = "ROOTGC.contoso.com"
$groupscript = Get-ADGroup -Identity "$domain Test Group Users"
If ($dn -like "*DC=childdomain1*") {
$domain = "childdomain1"
$domainserver = "childgc1.childdomain1.contoso.com"
$groupscript = Get-ADGroup -Identity "$domain Test Group Users" -Server "ROOTGC.contoso.com:3268"
}
If ($dn -like "*DC=childdomain2*") {
$domain = "childdomain2"
$domainserver = "childgc2.childdomain2.contoso.com"
$groupscript = Get-ADGroup -Identity "$domain Office 365 Users" -Server "ROOTGC.contoso.com:3268"
}
Write-Host "$domain | $userprincipalname [$($_.SamAccountName)] will get $activationkey added, and put into groups: $groupscript | [$dn]"
#Set ExtensionAttribute2
SET-ADUSER -Identity $dn -replace @{ExtensionAttribute2="$activationkey"}
#Add the user to their own domain-based group
Add-ADGroupMember -Identity $groupscript -Members $_
#Add the user to the root domain's universal group
Add-ADGroupMember -Identity $groupcbr -Members $_
}
}
同样,根域中的用户进程正常。子域中的用户在 #1(设置扩展属性 2)和 #2(添加他们的本地域组)时遇到错误。
错误如下:
设置扩展属性2:
SET-ADUSER : A referral was returned from the server
At C:\***\Untitled1.ps1:52 char:3
+ SET-ADUSER -Identity $dn -replace @{ExtensionAttribute2="$activationkey"}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceUnavailable: (CN=User1...contoso,DC=com:ADUser) [Set-ADUser], ADReferralException
+ FullyQualifiedErrorId : ActiveDirectoryServer:8235,Microsoft.ActiveDirectory.Management.Commands.SetADUser
添加到本地域组:
Add-ADGroupMember : The server is unwilling to process the request
At C:\***\Untitled1.ps1:53 char:3
+ Add-ADGroupMember -Identity $groupscript -Members $_
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (CN=ChildDomain1 Tes...contoso,DC=com:ADGroup) [Add-ADGroupMember], ADInvalidOperationException
+ FullyQualifiedErrorId : ActiveDirectoryServer:8245,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
我到处搜索,但还没有找到解决这个问题的方法。我尝试了以下(以及更多):
我错过了什么?请帮帮我!!我不得不手动查看我的 CSV 文件并设置需要设置的内容,因为它必须在今晚完成,但我将在接下来的 2 周内处理数千名用户。
最佳答案
您运行它的服务器必须有一个全局目录的副本,否则它将无法解析引用。或者您必须针对目标域的 DC 运行该命令。此外,您的用户必须具有企业管理员权限才能在林的其他域中创建/修改/删除对象(或者必须在目标域中进行适当的委派)。
另一个问题是,如果没有 Active Directory Web 服务, Shiny 的 AD cmdlet 将无法工作,该服务在 Windows Server 2008 R2 之前不可用,在所有相关的 DC 上运行。不过,您可以通过自己处理外部安全主体和目录对象来解决这个问题:
$fsp = New-Object Security.Principal.NTAccount('DOM1', 'username')
$sid = $fsp.Translate([Security.Principal.SecurityIdentifier]).Value
$dn = Get-ADGroup -Identity 'groupname' | select -Expand distinguishedName
$group = New-Object DirectoryServices.DirectoryEntry("LDAP://$dn")
[void]$group.member.Add("<SID=$sid>")
$group.CommitChanges()
$group.Close()
话虽如此:您确实意识到 Windows Server 2003 将在后天达到生命周期结束,不是吗?为什么您的 DC 仍在运行那个古董版本?
关于powershell - 在子域(跨林)中使用 Set-ADUser 和 Add-ADGroupMember 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31364085/
我确定这只是一个语法错误,但我正在尝试搜索 AD 用户,但我无法弄清楚为什么这不起作用: Write-Host "Enter LastName or UserName:" $x = Read-Host
我在 DomainA 下的服务器上。我可以用 Get-ADUser它工作正常。 现在在 DomainA 和 DomainB 之间建立了信任。我想切换到 DomainB 并获取 OU=New Users
目前我有一个创建用户帐户的脚本。 注意:并非所有用户都具有相同的 UPN (UserPrincipalName) 用户帐户的格式如下: 。 如果冲突,格式将更改为: 最近我遇到了一个问题,用户的pro
Powershell 的新手,仍在尝试了解逻辑。 我想过滤掉特定 OU 中事件目录中的 samaccountname,该 OU 在字符串 (phil_test_adm) 的末尾也包含“adm”。找到用
希望您能提供帮助。当我发出以下命令时: $g = get-ADGroupMember -Server sbintldirectory.com -Identity group1 $n = get-ADG
我正在尝试将一些变量输入Powershell cmdlet New-ADuser中以自动创建用户。如果我对值进行硬编码,则此方法很好,但是当我尝试将其传递给变量时,出现以下错误: New-ADUser
我想从这个脚本中排除禁用的用户,但似乎无法找到我如何尝试 -exclude 但没有运气。 如果你也有更好的方法来接受建议 import-module ActiveDirectory; $maxPass
我尝试使用CSV文件设置属性“serialNumber”,但在按Enter键后仍然收到错误消息。 这是我的剧本 ipmo activedirectory $users = Import-Csv -Pa
我正在寻找您关于最佳方法的想法。 目标只是根据不同的可能输入来找到给定的用户。 可能是: $input = "John,Smith" $input = "John Smith" $input = "J
运行脚本时出现以下错误: Get-ADUser : A referral was returned from the server At line:25 char:70 + ... -Identity
这个问题在这里已经有了答案: Why doesn't $PSItem behave as expected when using a bracket-based -Filter argument? (
我正在尝试为 Powershell 编写一个脚本,该脚本将显示每个用户上次登录的日期/时间和上次更改密码的日期/时间,并根据他们在 Active Directory 中的组织单位分离数据。 我收到了许
这是我上一个问题Invoking powershell cmdlets from C#的继续 我想从C#中调用 Activity 目录cmdlet get-aduser,它采用的第一个参数是过滤器。我
我想检查系统中是否已存在用户帐户。 $SamAc = Read-Host 'What is your username?' $User = Get-ADUser -Filter {sAMAccount
我似乎无法解决这个问题来挽救我的生命。 我想捕获所有 AD 用户的 SAMAccountName 长度 等于 6。 我希望有这样的事情 Get-ADuser -filter "samaccountna
我需要在 AD 中查询自定义 extensionAttribute10 未设置或不等于特定值的用户。我使用该命令成功获得了值不等于 100 的用户: Get-ADUser -SearchBase "o
$users = get-aduser -filter 'extensionAttribute10 -notlike "*" -and proxyaddresses -like "*"' -Prope
很抱歉,如果这是之前已经回答过的问题,但我已经搜索了好几天,但找不到我正在寻找的任何东西(这令人困惑,因为这似乎是最简单的请求)。 我有一个跟踪委托(delegate)树(无关)的脚本,在其中,我需要
$name="d4rkcell" Get-ADUser -LDAPFilter "(sAMAccountName=$Name)" -Properties extensionAttribute12 我正
我正在尝试获取 AD 中具有电子邮件(邮件属性)的所有用户的列表。我有这个命令 Get-AdUser -filter * -Properties mail | Select SAMAccountNam
我是一名优秀的程序员,十分优秀!