【发布时间】:2011-11-03 22:56:10
【问题描述】:
我有两个不同的 CSV。一个是全球组、本地组和系统的报告。另一个是用户、登录 ID 和全局组的列表。
如您所见,全局 AD 组是通用列,在两个文件中都标记为“成员”。成员中的某些项目实际上是本地用户或域用户。本地用户需要被过滤掉,域用户需要被移植到结果中。
使这项任务变得困难的原因是连接是多对多的。此外,我需要能够轻松地将新列添加到脚本中。我已经知道如何获取您创建的任何脚本的输出并根据需要重新排序列。
理想情况下,每个 CSV 文件中的列都无关紧要,脚本应根据公共列将两个文件中的所有列连接在一起。不过,如果可以在调用函数时指定公共列,那就太好了。
因此示例数据如下所示:
$CSV1
"Members","LocalGroup","System"
"System1\local-user","Guests","System1"
"adminaccounts","Administrators",System2"
"adminaccounts","Auditors","System2"
"System3\User1","Administrators","System3"
"System3\Temp","Guests","System3"
"System4\Temp","Guests","System4"
"System5\Temp","Guests","System5"
"Domain1\ngd","Users","System6"
"Domain1\Group1","Administrators","System7"
"Domain1\Group1","Administrators","System8"
"Domain1\Group1","Administrators","System9"
"Domain1\Group1","Administrators","System10"
"Domain1\Group2","Administrators","System1"
"Domain1\Group2","Administrators","System4"
"Domain1\Group2","Administrators","System7"
"Domain1\Group3","Administrators","System3"
"Domain1\Group3","Administrators","System1"
"Domain1\Group4","Administrators","System4"
"Domain2\Group1","Administrators","System5"
"Domain2\Group1","Administrators","System6"
"Domain2\Group1","Administrators","System2"
$CSV2
"Members","Username","Logon ID"
"Domain1\Group1","Pauline S. Trotter","pst"
"Domain1\Group1","Caroline T. Gartner","ctg"
"Domain1\Group1","Albert F. Hollis","afh"
"Domain1\Group1","Todd C. Cope","tcc"
"Domain1\Group1","Rebecca D. Bergman","rdb"
"Domain1\Group1","Robert A. Wagner","raw"
"Domain1\Group2","Daniel R. Dalton","drd"
"Domain1\Group2","Christopher V. Alderbrook","cva"
"Domain1\Group2","Brittany L. Stone","bls"
"Domain1\Group2","Susan K. Holman","skh"
"Domain1\Group2","Mark P. Bett","mpb"
"Domain1\Group2","Francine U. Zen","fuz"
"Domain1\Group2","Holly M. Fulton","hmf"
"Domain1\Group3","Edgar X. Indiana","exi"
"Domain1\Group3","John Q. Pullit","jqp"
"Domain1\Group3","Victor E. Emmerson","vee"
"Domain1\Group3","Robert A. Wagner","raw"
"Domain1\Group3","Pauline S. Trotter","pst"
"Domain1\Group4","Noreen G. Dulles","ngd"
"Domain1\Group4","Lois H. Crantz","lhc"
"Domain1\Group4","Brad F. Quilt","bfq"
"Domain1\Group4","Zoren T. Maranda","ztm"
"Domain1\Group4","William K. Entz","wke"
"Domain1\Group4","Quils U. Naruz","qun"
"Domain2\Group1","Zoren T. Maranda","ztm"
"Domain2\Group1","Robert A. Wagner","raw"
"Domain2\Group1","Holly M. Fulton","hmf"
"Domain2\Group1","Brad F. Quilt","bfq"
"Domain2\Group1","Pauline S. Trotter","pst"
"Domain2\Group1","Noreen G. Dulles","ngd"
提前感谢您的帮助。
问候,
亚历克斯
以下是一些带有示例输出的简化数据:
$CSV1
"Members","LocalGroup","System"
"System1\local-user","Guests","System1"
"adminaccounts","Administrators",System2"
"adminaccounts","Auditors","System2"
"System3\User1","Administrators","System3"
"System3\Temp","Guests","System3"
"System4\Temp","Guests","System4"
"System5\Temp","Guests","System5"
"Domain1\ngd","Users","System6"
"Domain1\Group1","Administrators","System7"
"Domain1\Group1","Administrators","System8"
"Domain1\Group2","Administrators","System1"
"Domain1\Group3","Administrators","System3"
"Domain1\Group3","Administrators","System1"
"Domain1\Group4","Administrators","System4"
"Domain2\Group1","Administrators","System5"
$CSV2
"Members","Username","Logon ID"
"Domain1\Group1","Pauline S. Trotter","pst"
"Domain1\Group1","Caroline T. Gartner","ctg"
"Domain1\Group1","Albert F. Hollis","afh"
"Domain1\Group2","Daniel R. Dalton","drd"
"Domain1\Group2","Christopher V. Alderbrook","cva"
"Domain1\Group3","Pauline S. Trotter","pst"
"Domain1\Group4","Noreen G. Dulles","ngd"
"Domain1\Group4","Quils U. Naruz","qun"
"Domain2\Group1","Zoren T. Maranda","ztm"
"Domain2\Group1","Noreen G. Dulles","ngd"
Output
"Username","Logon ID","Members","LocalGroup","System"
,,"System1\local-user","Guests","System1"
,,"adminaccounts","Administrators",System2"
,,"adminaccounts","Auditors","System2"
,,"System3\User1","Administrators","System3"
,,"System3\Temp","Guests","System3"
,,"System4\Temp","Guests","System4"
,,"System5\Temp","Guests","System5"
"Pauline S. Trotter","pst","Domain1\Group1","Administrators","System7"
"Pauline S. Trotter","pst","Domain1\Group1","Administrators","System8"
"Pauline S. Trotter","pst","Domain1\Group3","Administrators","System3"
"Pauline S. Trotter","pst","Domain1\Group3","Administrators","System1"
"Caroline T. Gartner","ctg","Domain1\Group1","Administrators","System7"
"Caroline T. Gartner","ctg","Domain1\Group1","Administrators","System8"
"Albert F. Hollis","afh","Domain1\Group1","Administrators","System7"
"Albert F. Hollis","afh","Domain1\Group1","Administrators","System8"
"Daniel R. Dalton","drd","Domain1\Group2","Administrators","System1"
"Christopher V. Alderbrook","cva","Domain1\Group2","Administrators","System1"
"Noreen G. Dulles","ngd","Domain1\Group4","Administrators","System4"
"Noreen G. Dulles","ngd","Domain2\Group1","Administrators","System5"
"Quils U. Naruz","qun","Domain1\Group4","Administrators","System4"
"Zoren T. Maranda","ztm","Domain2\Group1","Administrators","System5"
【问题讨论】:
标签: powershell csv many-to-many