我正在尝试使用PowerShell在AD中将组成员身份从一个用户复制到另一个用户。我得到了下面的错误。似乎想不通了。
Get-ADUser -server "test.server.com" -Identity user11 -Properties memberof |
Select-Object -ExpandProperty memberof
Add-ADGroupMember -Member user22
我收到的错误是
Add-ADGroupMember : Parameter cannot be processed because the parameter name 'Member' is ambiguous. Possible matches include:
-Members
-MemberTimeToLive. At line:3 char:19
+ Add-ADGroupMember -Member user22
+ ~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Add-ADGroupMember], ParameterBindingException
+ FullyQualifiedErrorId : AmbiguousParameter,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
4条答案
按热度按时间xqnpmsa81#
那么,让我们来讨论一下错误模糊是什么意思。
在PowerShell中,您可以写下速记
与之相同
如果我们查看Microsoft在Add-AdGroupMember上的文档
我们可以看到,该命令有两个参数,其中有成员**-MemberTimeToLive和-Members**
错误的意思是它不知道**-Members是在调用-Members还是-MemberTimeToLive**
这叫做模棱两可
解决办法是
6vl6ewon2#
错误消息非常清楚。PowerShell执行参数名称的部分匹配,如果部分参数名称足以唯一标识,则将接受该名称。在您的例子中,部分参数
-Member
不唯一匹配;它可能引用-Members
或-MemberTimeToLive
。要修复它,您应该使用-Members
而不是-Member
。c7rzv4ha3#
它应该是Add-ADGroupMember-Members User22
请注意,该参数的末尾有一个S。当你只使用Members时,PowerShell无法计算出你指的是MemberTimeToLive。
但
您尚未定义应将用户添加到哪个组。您的代码需要是
Add-ADGroupMember-Members用户22-身份(组ID)
您可以通过以下方式之一定义组标识:可分辨名称GUID(对象GUID)安全标识符(对象SID)安全帐户管理器帐户名(SAMAccount)
vbkedwbf4#
当调用调用可执行文件的第二个脚本时,我遇到了参数模糊性的问题。在这里,它变得很麻烦,因为解释器无法识别哪个参数是预期的,并立即假设它是与PowerShell关联的参数。例如,使用类似以下的呼叫:
在本例中,-O和-err是与PowerShell参数变量(即$ErrorAction和$ErrorValue)匹配的不明确调用,但是-O是与$ExecuableName文件相关的参数,-err是可执行文件的日志。
解决方案是使用‘字符定义字符串的文字部分,并按如下方式打包字符串:
希望这对你们中的一些人有帮助,
波奇