powershell脚本读取目录中的文件夹并输出到文件并修改以创建AD组

时间:2015-09-04 14:25:08

标签: powershell active-directory

我希望创建一个可以执行许多操作的长脚本。

首先,脚本将获取目录中的文件夹列表并输出到文件 我有以下代码

Get-ChildItem -Path "filepath" | Select-Object Name | Out-File c:\dir.txt

文件的输出看起来像

  • 名称
  • -
  • 1234556说明1
  • 1244556说明2
  • 1234456说明3

我想删除前两行,然后删除列表中除前七个数字之外的所有字符,并将相同的文本添加到每个目录名的末尾,如下所示:

  • 1234556Descript
  • 1244556Descript
  • 1234456Descript

然后,在此之后,我想从这个名单列表中创建一个AD组。

1 个答案:

答案 0 :(得分:1)

您可以在不使用文本文件存储文件名的情况下执行此操作。

$Endding = "EnddingToGroup"
$path = "C:\FolderPath\"

Get-ChildItem -Path $path `
    | Select-Object -ExpandProperty Name `
    | %{ "$(($_).SubString(0,7))$Endding" } `
    | %{ New-ADGroup -Name $_ -GroupCategory Security -GroupScope Global -DisplayName $_ }

这将获取文件夹中的项目列表,然后获取每个项目名称的前7个字符,并添加您的' $ endding'到最后。然后它将使AD全局安全组具有名称。

如果您想在运行之前查看将要制作的组,只需运行脚本的以下部分而不使用New-ADGroup部分:

$Endding = "EnddingToGroup"
$path = "C:\FolderPath\"

Get-ChildItem -Path $path | Select -ExpandProperty Name | %{ "$(($_).SubString(0,7))$Endding" }