Phi*_*old 5 csv powershell scripting filenames active-directory
好吧,我可能会让事情变得比实际情况更困难,所以请告诉我是否是这样。
我的最终目标:我有一个将被删除的计算机备份列表。每个文件都以计算机名称和备份日期命名。我试图解析每个备份的文件名以获取用户本身的用户名,这样我就可以创建一个列表发送给经理。我们的计算机名称要么是 FIRST-LAST 要么是 FLAST,这又增加了一层难度。
例如,我的列表中有两台计算机:
FIRST-LAST 2016.1.12
FLAST 2015.9.8
我想完全删除这些数字,留下:
第一个-最后一个
FLAST
然后,我想更改第一个计算机的名称以反映原始计算机所有者的用户名(我们在公司中使用 FLAST 作为用户名),这样我最终得到: FLAST FLAST (显然是本示例之外的不同用户)
然后,我可以使用此信息在活动目录中搜索这些用户,将他们的姓名导出到列表中,然后将列表发送给经理,通知他们即将删除。
这很复杂,我认为也许只需要改变我们的流程,以便更容易获取这些信息,但这是一个有趣的难题,所以我很好奇我们是否能找到解决方案。
最简单的方法是使用正则表达式删除您不需要的字符。
$string1 = 'FIRST-LAST 2016.1.12'
$string2 = 'FLAST 2016.1.12'
$string1 = $string1 -replace '[^a-zA-Z-]',''
$string2 = $string2 -replace '[^a-zA-Z-]',''
Run Code Online (Sandbox Code Playgroud)
这将为您提供 FIRST-LAST 和 FLAST。'[^a-zA-Z-]','' 将用空字符串替换所有非 alpha/- 字符。从那里,您可以使用 - 作为拆分条件将 FIRST-LAST 拆分为两个字符串,并使用它们从 AD 中查找您要查找的信息。
$splitstring = $string1 -split '-'
$first = $splitstring[0]
$last = $splitstring[1]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13927 次 |
| 最近记录: |