powershell - 使用 for 循环复制具有递增值的属性
问题描述
我想将 CustomAttributes 从我们的 Exchange Online 帐户复制到用户 AD 对象。
CustomAttributes 1-3 将被复制到 AD 的 ExtensionAttribute 值 (1-3)
我创建了一个脚本来自动化这个过程。
<following on from previous code>....
$ExtAttr= "ExtensionAttribute"
$i =1
$CustomAttr = ""
For($i =1; $i -lt 4; $i++)
{
$CustomAttr = get-mailbox $upn | Select CustomAttribute$i
Set-ADUser -server Server -Identity $LocalADUser.SamAccountName -Add @{"$ExtAttr$i"=$CustomAttr."CustomAttribute$i"}
}
这段代码一直有效,直到我到达“$CustomAttr.CustomAttribute$i”
如何修改最后一部分,以便 CustomAttribute$i 属性根据 $i 当前的值复制正确的值?
因此,如果 $i 为 1,则对于 AD 中的当前选择用户,应将 CustomAttribute1 复制到 ExtensionAttribute1,对于 Si=2,然后将 CustomAttribute2 复制到 ExtensionAttribute2 等。
解决方案
使用括号和一些字符串连接应该可以解决这个问题。尝试更换:
-添加@{"$ExtAttr$i"=$CustomAttr."CustomAttribute$i"}
和:
-添加@{"$ExtAttr$i"=$CustomAttr.$("CustomAttribute" + $i)}
推荐阅读
- python - 将 Trie 转换为 JSON 格式
- java - 在 apache log4j 中编码模式布局
- javascript - Javascript - 无法动态创建选中的复选框
- php - PHP获取从url加载的DOMDocument的内容类型头
- java - 在 android adain 中创建 EHCache 实例时出现 java.lang.ExceptionInInitializerError
- java - 如何将 \n 与打印的字符串文字结合使用?
- javascript - 在从更新的项目更新时创建带有云函数引用的 Firestore 文档
- linux - 为什么git的文件模式和linux的文件模式不一样?
- kubernetes - Kubernetes Secret 的管理
- java - Java:如何从终端构建和使用包