[英]How can I read in user names from a CSV column and add relevant data from Active Directory to their row?
使用這個奇妙的腳本 ,我能夠掃描計算機列表,並將其本地管理員帳戶輸出到一個漂亮的CSV文件中。 下面是一個示例:
ComputerName LocalGroupName Status MemberType MemberDomain MemberName
Computer1 Administrators SUCCESS LocalUser Computer1 LocalBob
Computer1 Administrators SUCCESS DomainUser DomainXYZ User99874
Computer1 Administrators SUCCESS DomainGroup DomainXYZ Group123
Computer2 Administrators SUCCESS DomainGroup DomainXYZ GroupABC
Computer2 Administrators SUCCESS DomainUser DomainXYZ User18834
我想在上述腳本的末尾添加更多Powershell腳本,以將活動目錄中本地管理員的“部門”和“名稱”字段添加到列中,這將有助於生成有關誰擁有本地管理員以及原因的更有意義的報告。 以下是我希望輸出看起來像的示例:
ComputerName LocalGroupName Status MemberType MemberDomain MemberName Name Department
Computer1 Administrators SUCCESS LocalUser Computer1 LocalBob
Computer1 Administrators SUCCESS DomainUser DomainXYZ User99874 Nick IT
Computer1 Administrators SUCCESS DomainGroup DomainXYZ Group123
Computer2 Administrators SUCCESS DomainGroup DomainXYZ GroupABC
Computer2 Administrators SUCCESS DomainUser DomainXYZ User18834 Adam Sales
作為對Powershell還是很陌生的人,我可以理解從AD提取信息並創建新CSV文件的示例,但是我似乎無法確定如何將這些詳細信息附加到預先存在的CSV文件中。 我的解決方法是:
導入CSV文件
從MemberName列的每一行中提取用戶名
針對AD中的每個用戶的每個相關字段執行查詢
使用該用戶的查詢結果填充“ 名稱”和“ 部門”行。
希望這一切都有道理。 我敢肯定這一切都是很基本的,但是我已經盯着看了一段時間了,我不確定從哪里開始。
謝謝!
如果您的計算機上安裝了RSAT (建議這樣做),則從AD中提取信息很簡單:
$sInFile = "C:\input.csv" # Change to actual path
$sOutFile = "C:\ouput.csv" # Change to actual path
Import-Module -Name "ActiveDirectory"
# If you don't need last names, remove "sn" from the collection.
$cProperties = @("givenName", "sn", "depatment")
$cCsv = Import-Csv -Path $sInFile
foreach ($oRow in $cCsv) {
if ($oRow.MemberType -eq "DomainUser") {
$oUser = Get-ADUser -Identity $oRow.MemberName -Properties $cProperties
foreach ($sProperty in $cProperties) {
$oRow | Add-Member -MemberType "NoteProperty" -Name $sProperty `
-Value $oUser.$sProperty
}
}
}
$cCsv | Export-Csv -Path $sOutFile -NoTypeInformation -Encoding "UTF8"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.