regex - 如何在PowerShell中增量重命名计算机对象
问题描述
基本上我想要的是搜索给定的 OU 并确定下一个计算机名应该是什么。
我们的计算机对象命名如下:LONDON10、LONDON11、LONDON12。
然而,它有点棘手,因为我们还删除了旧的计算机对象。因此,假设没有 LONDON03,而我安装的最后一台计算机名为 LONDON25。所以下一个应该是 LONDON26 而不是 LONDON03。
我们将笔记本命名为 NB-LONDON01、NB-LONDON02 等的额外部分。
任何帮助,将不胜感激 :)
解决方案
我目前的角色没有 AD cmdlet,因此您可能需要对其进行调整,但它应该如下所示:
$nextNumber = (Get-ADComputer -Filter * -SearchBase "OU=IT, DC=contoso, DC=com" |% { if ($_.name -match '^(?:NB-)?LONDON([0-9]+)$' ) {[Int]$Matches[1]} } | measure -Maximum).Maximum + 1
如果您需要更改正则表达式,我建议使用http://regexstorm.net/tester
推荐阅读
- asp.net-core - 在 Asp.net Core Web API 中控制器的授权属性上设置请求的标头
- r - 用 R 中的列中存在的值过滤列
- vuejs3 - 如何将道具传递给插槽,Vue 3
- reactjs - 当用户导航到反应本机应用程序中的第二个选项卡时,一个选项卡中的关闭“警报”会重新打开
- html - 我可以将 Gmail 地址实现为 png 的链接吗?
- python - 网络不同交换机的延迟和丢包分解
- node.js - Node.js Officegen 为生成的 Excel 的单元格分配颜色
- javascript - Angular:单击外部时模态窗口消失
- html - 如何创建只有 1 个 html 元素的 CSS 颜色网格?
- azure - 是否有 ARM 模板可以在其下创建 ASE(应用服务环境)和多个 ASP(应用服务计划)