我们有很多禁用用户,我想写一个脚本来删除memberof
属性并保留默认值(域用户)。我导入的.csv
文件有一个列表5 samaccountname
用于测试目的。当我执行此脚本时,我收到此错误消息。
当我为单个用户运行脚本时,我没有收到此消息但是当我导入带有用户列表的.csv
文件时,我收到此错误。感谢您的帮助。
c:\user\..\Desktop> .\powerAD.ps1
Get-ADPrincipalGroupMembership:无法验证参数' Identity'的参数。该 参数为null或空。提供一个非null或空的参数,然后尝试 命令再次。
这是我写的脚本: 我的语法有问题吗?
Import-Module ActiveDirectory
ForEach ($user in (import-csv -path "C:\users\j\desktop\ADUSER1.csv"))
{
Get-ADPrincipalGroupMembership -Identity $user.samaccountname |
% {Remove-ADPrincipalGroupMembership -Identity $user.samaccountname -MemberOf -confirm:$false $_}
}
.csv文件采用这种格式。
jbry
pbarb
dvan
答案 0 :(得分:1)
问题是你的csv文件。您正在从中调用samaccountname
属性,但没有列作为列标题。要么将其作为带有Get-Content
的文本文件阅读,要么给它一个标题。
ForEach ($user in (Get-Content "C:\users\j\desktop\ADUSER1.csv")) {
Get-ADPrincipalGroupMembership -Identity $user |
? {$_.Name -ne "Domain Users"} |
% {Remove-ADPrincipalGroupMembership -Identity $user -MemberOf $_}
}
答案 1 :(得分:0)
基于上面的评论以及来自Excel的链接图像,BenH可能是正确的。您现在需要做的是将您在PowerShell中string
的名称转换为ADUser
个对象,并将其作为-Identity
参数传递给Get-ADPrincipalGroupMembership
和{{1} }:
Remove-ADPrincipalGroupMembership