首页 > 解决方案 > 如何在PowerShell中增量重命名计算机对象

问题描述

基本上我想要的是搜索给定的 OU 并确定下一个计算机名应该是什么。

我们的计算机对象命名如下:LONDON10、LONDON11、LONDON12。

然而,它有点棘手,因为我们还删除了旧的计算机对象。因此,假设没有 LONDON03,而我安装的最后一台计算机名为 LONDON25。所以下一个应该是 LONDON26 而不是 LONDON03。

我们将笔记本命名为 NB-LONDON01、NB-LONDON02 等的额外部分。

任何帮助,将不胜感激 :)

标签: regexpowershell

解决方案


我目前的角色没有 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


推荐阅读