创建服务器时,会创建一个包含服务器名称 (xxxServerNamexxx) 的 AD 组。我有一个预先编写的脚本,用于在服务器上本地安装 IIS。在安装结束时,我想将一个 AD 组添加到服务器 AD 组。服务器的 AD 组名称类似于 xxxServerNamexxx,其中 xxx 是静态的但不同的值(前 xxx 与后 xxx 相比),例如它将类似于 abcServerNamedef,并且 xxx 的值不会改变。我正在尝试执行类似这样的操作,在服务器名称的前面和后面添加 xxx:
ADD-ADGroupMember "abc$env:COMPUTERNAME$def" –members "MyADgrouptoAdd"
我无法让它正确输出 xxxServerNamexxx,因此脚本失败。
答案1
几件事
- 对于计算机对象的字符串名称(
MyADgrouptoAdd
),请确保$
在相同的双引号内将 a 附加到其末尾(即"MyADgrouptoAdd$")
- 假设这实际上是加入域的计算机/服务器的计算机对象帐户。 abc$env:COMPUTERNAME$def
对于由计算机名称环境变量、另一个变量和字符串组成的 连接 AD 组对象( )名称,使用子表达式运算符封装变量,例如$($variable)
,"abc$($env:COMPUTERNAME)$($def)"
等。
PowerShell 示例
Add-ADGroupMember -Identity "abc$($env:COMPUTERNAME)$($def)" -Members "ComputerName$"
或者
$Group = "My Group Name";
$List = (Get-ADComputer -Filter * -Properties *) | ? {$_.Name -like "*xxx*"} | % {$_.Name};
$List | % { Add-ADGroupMember -Identity $Group -Members "$($_)$" };
支持资源
-
标准别名对于 Foreach 对象:'
%
' 符号,ForEach