相当新,截至下个月我将参加PowerShell培训课程,但管理层现在需要这样做,所以任何帮助都会有所帮助!
脚本需要每小时运行一次,需要查看AD中的每个用户,并且需要执行以下操作。
检查帐户是否已启用,如果是,请继续执行步骤2.
检查它们是否已经是名为“HP”的AD组的一部分,如果是的话 没有。如果他们不属于名为“HP”的广告组,请继续执行第3步。
获取用户所在城市的列表。
如果用户的城市与“伦敦”相匹配,请添加到名为“HP EU”的广告组
END
我拥有的是这个,但它不起作用
似乎不喜欢切换标记
Get-ADGroup -filter {name -like"HP*"}
$Users = get-aduser -Identity testuser -properties City,MemberOf | where{$_.city -ne $Null}
Foreach($user in $Users){
IF(-not($user.memberof -notlike "HP*")
$group = Switch ($User.city){
"London" {"HP EU"}
"Hong Kong" {"HP Asia"}
"New York" {"HP US"}
}
$groupDN = (get-adgroup $group).DistinguishedName
Add-ADGroupMember -Identity $groupDN -Members $user
}
答案 0 :(得分:0)
我已经为您提供了有关如何获取所需详细信息的代码段。但是,我不想给出完整的脚本,因为这会阻止你学习Powershell。我不想阻止你。请使用以下逻辑作为基线构建脚本。 :)
使用" Get-Command -noun AD *"如果您想了解有关Active Directory的更多cmdlet。
Check if user account is enabled/disabled:
------------------------------------------
$UserName = “UserName”
$searcher = new-object DirectoryServices.DirectorySearcher([ADSI]””)
$searcher.filter = “(&(objectClass=user)(sAMAccountName= $UserName))”
$founduser = $searcher.findOne()
$founduser.Properties.useraccountcontrol
$value = $founduser.Properties.useraccountcontrol
if ($Value -eq 514)
{
Write-Output “Account is disabled”
}
if ($Value -eq 512)
{
Write-Output “Account is Enabled”
}
Check if user belongs to group:
------------------------------
$user = "TestUser"
$group = "Domain Admins"
$members = Get-ADGroupMember -Identity $group -Recursive | Select -ExpandProperty Name
If ($members -contains $user) {
Write-Host "$user exists in the group"
} Else {
Write-Host "$user not exists in the group"
}