我正在嘗試創建一個「初始」文本文件,該文件將包含所有用戶+部門+直接報告的腳本運行。創建該文件後的下一步是以相同的方式創建另一個文件,但將其與原始文件進行比較以查看用戶的部門是否曾更改。 (還不確定如何比較部門價值)輸出部門和直接報告
我目前的問題是,即使該過程與我過去所做的另一個程序相同,該部門也不會打印它。此外,當打印我的直接下屬只會打印第一個與CN的整個延伸= ...,OU = ...等
我想它來打印這種方式:
username | Department(extensionAttribute14) | Direct Reports (as a single string)
we38432 | IT-Security | cm03456: 04555a: ....etc
我原來的腳本中使用此代碼爲部門:
$deps = Get-Aduser -filter {name -like *} -Properties name, extensionAttribute14 | Select name, extensionAttribute14 | Export-CSV $listing -notypeinformation
和這個工作。我嘗試了{name -like *}
,但那給了我當前程序中的錯誤。我知道Export-CSV
使它工作,但我不能再使用這種格式。
的直接報告我原來是這樣的:
foreach ($ID in $directReports){
if ($ID -ne $Null){
$directreports = get-aduser $ID
$directreports.name | Out-File $output -Append
}
此代碼打印一行行的直接報告,但我想他們都在同一列Excel單元格時,我寄過去。
我已經打印了過去使用「:」所有成員的列表,它的工作原理,但直接報告列表並非如此。我剛從我的其他程序中使用這種格式時發生錯誤:
foreach ($member in $empty.members){
$string = $member.substring(3,$member.indexof(",")-3)
$members = $members + ":" + $string
}
我希望有人能幫我解決我的兩個問題。
Import-Module ActiveDirectory
$documentOld = "C:\Temp\Old_Supervisor_list_mo_yyyy.txt"
Clear-Content $documentOld
$Header = `
"User ID" <#+ "|" + `
"Department" + "|" + `
"Direct Reports"#>
$Header | Out-File $documentOld -Append
$Users = Get-AdUser -Filter * -Properties name, Enabled, Manager, extensionAttribute14 | Select Enabled, name, Manager, extensionAttribute14
foreach ($user in $Users){
if ($user.enabled –eq $true) {
$name = $user.name
$directReports = Get-ADUser -Identity $name -Properties directreports | Select -ExpandProperty directreports
$department = $user.extensionAttribute14
foreach ($ID in $directReports){
if ($ID -ne $Null){
$directreports = get-aduser $ID
# $string = $directreports + ":"
}#end if $ID
}#end foreach $ID
$listing = `
$name + "|" + $deparment + "|" + $directreports#$string
$listing | Out-File $documentOld -Append
}# end if
}# end foreach $user
這些字段代表什麼? 'we38432 | IT-Security | cm03456:04555a:.... etc'。我可以假設一個是用戶名,但我希望你告訴我確定。我問,因爲你的直接報道不止一個人? – Matt 2015-03-02 17:32:02
IT安全是部門,是的大部分用戶名都有一個以上的直接報告,如「」:「」@Matt – narue1992 2015-03-02 17:34:46
你知道你的PowerShell版本是什麼嗎? 'Get-Host' – Matt 2015-03-02 17:37:27