2016-08-24 33 views
0

我不是一个scripter,我试图找出如何让用户选择哪个OU来运行脚本。Powershell - 如何提供哪个AD OU的运行选择?

我有过一个OU枚举并列出了一些基本的用户对象信息到CSV文件中的以下基本的脚本:

[email protected]{ 
'Server' = 'ServerDC' 
'Searchbase' = 'OU=ToBeDeleted,DC=domain,DC=com' 
'Searchscope'= 'Subtree' 
'Filter' = '*' 
'Properties' = '*' 
} 

#This is where to change if different properties are required. 

[email protected]{ 
'Property' = 'SAMAccountname', 'CN', 'HomeDirectory' 
} 

get-aduser @ADUserParams | select-object @SelectParams | export-csv "c:\temp\tempoutput_users.csv" -Append -NoTypeInformation 
Get-content "c:\temp\tempoutput_users.csv" | select -Skip 1 | Set-Content "C:\temp\UserOutput.csv" 
Remove-Item "c:\temp\tempoutput_users.csv" 

不过,我想,而不是目前的脚本运行一个选择是能够选择“ToBeDeleted”OU中的哪个子OU来运行脚本的其余部分。

例如,如果在“ToBeDeleted”OU中有一个名为“September2016”的OU和一个名为“October2016”的OU,我希望脚本询问“你想违反哪个OU? “并给他们一个编号的选择,如:

  1. September2016
  2. October2016

,然后他们做出选择和脚本针对特定子OU仅运行,并得到用户对象信息在选定的OU。

我抬头看看几个网站上提供的“选择”,但它似乎更像是/不选择,我迷路了。

任何人都可以指出我正确的方向来完成这件事吗?

回答

0
Function Select-Array 
{ 
    Param 
    (
     $Array 
    ) 
    $Count = 0 
    Write-Host "Select Item" 
    foreach ($Item in $Array) 
    { 
     Write-Host "$Count. $Item" 
     $Count ++ 
    } 
    $Selection = Read-Host 
    return $Array[$Selection] 
} 

$OU = (Get-ADOrganizationalUnit -SearchBase 'OU=ToBeDeleted,DC=domain,DC=com' -Filter * -SearchScope OneLevel).DistinguishedName 

[email protected]{ 
'Server' = 'ServerDC' 
'Searchbase' = $OU 
'Searchscope'= 'Subtree' 
'Filter' = '*' 
'Properties' = '*' 
} 

[email protected]{ 
'Property' = 'SAMAccountname', 'CN', 'HomeDirectory' 
} 

Get-ADUser @ADUserParams | select-object @SelectParams | export-csv "c:\temp\tempoutput_users.csv" -Append -NoTypeInformation 
Get-Content "c:\temp\tempoutput_users.csv" | select -Skip 1 | Set-Content "C:\temp\UserOutput.csv" 
Remove-Item "c:\temp\tempoutput_users.csv" 
+0

谢谢......它很接近,但是$ OU获得了所有的子OU,因此搜索库已关闭......我需要玩弄这个$ OU数组并且询问该函数哪个挑 – TheCleaner

+0

做: -SearchScope OneLevel 帮助还是他们在同一级别? –

+0

他们处于同一水平。我收到一个错误,因为$ OU数组试图将所有内容传递给搜索库。 – TheCleaner