誰かが助けてくれることを願っています。残念ながら私はPowershellの専門家ではありません
これは私が欲しいものです:
ユーザー名の最初の文字に基づいて、特定の OU 内の AD 内のユーザーを検索します。それらが AD グループのメンバーであるかどうかを検証し、そうでない場合は検証します。ユーザーの特定のプロファイル ファイルをいくつか削除し、その特定のグループにユーザーを追加します。
私が試したコードの一部:
Import-Module ActiveDirectory
# OUs needed to be searched for users
$OU1 = 'name of first OU'
$OU2 = 'name of 2nd OU'
$OU3 = 'name of 3rd OU'
# AD group where users needs to be added
$Group = 'name of group'
# Ask for 1st letter of username
$usernameletter = Read-Host -Prompt 'First letter(s) username'
# Create an array with corresponding users
$userslist= @()
$users1 = Get-ADUser -Filter "SamAccountName -like '$usernameletter*'" -SearchBase $OU1 | select -ExpandProperty samAccountName
$users2 = Get-ADUser -Filter "SamAccountName -like '$usernameletter*'" -SearchBase $OU2 | select -ExpandProperty samAccountName
$users3 = Get-ADUser -Filter "SamAccountName -like '$usernameletter*'" -SearchBase $OU3 | select -ExpandProperty samAccountName
$userslist += $users1,$users2,$users3
# check membership of group
$members = Get-ADGroupMember -Identity $Group -Recursive | Select -ExpandProperty sAMAccountName
# Delete userpref files of user when user is not member of the -name of group-
foreach ($user in $userslist)
{
If ($members -contains $user)
{
Write-host "$user exists in group, so userpref files won't be deleted"
}
Else
{
#if users doesn't exist in AD Group - delete userpref files of user
Write-host "$user doesn't exist in group, deleting userpref files of user"
Remove-Item -Path E:\users\$user\pwrmenu\UserPref\{F5BE2CE1-BF67-44E2-B5B3-5E081344A70E}* -Force
}
}
# check if user is part of the group. if not, add it to the group
foreach ($user in $userslist)
{
If ($members -contains $user)
{
Write-host "$user exists in group, so user won't be added to group $group"
}
Else
{
#if users doesn't exist in AD Group - add them to AD Group
Write-host "$user doesn't exist in group, adding user to group $group"
Add-ADGroupMember $Group -Members $userslist
}
}
#end of script
何らかの理由で $userslist 配列が埋められますが、$userslist の foreach ループ $user が機能せず、$user が埋められず、次のようなエラーが発生します
Remove-Item : 存在しないため、パス 'E:\users\pwrmenu\UserPref' が見つかりません。Add-ADGroupMember : パラメータ 'Members' の引数を検証できません。引数が null、空、または引数コレクションの要素に null 値が含まれています。
誰かが私を助けてくれることを願っています! ありがとう!
編集 @Andrew Ryan Davis、
申し訳ありませんが、このウェブサイトにはまだあまり慣れていません
$userslist の内容:
PS C:\Users\serverw> $userslist
WGoossensTest
wgoossenstest2
$members の内容:
PS C:\Users\serverw> $members
ユーザー名1
ユーザー名2
ユーザー名3
等