我创建了两个变量,它们从一个特定的文件中选取多个值。下面是我的脚本的一部分:
#Identifying the AccountList.ain File Path
$AccountListPath = "$DataPATH\ADM\AccountList.ain"
#Create Variable for User Description & User ID
[xml]$UserInfoPath = gc $AccountListPath
$UserDescString = $UserInfoPath.AccountList.UserAccount.description
$UserInfoString = $UserInfoPath.AccountList.UserAccount.UserInfo.username
#Create User Description List & User Info (User ID) List
$UserDescObject = $UserDescString | Select-Object @{Name='Description';Expression={$_}}
$UserInfoObject = $UserInfoString | Select-Object @{Name='UserID';Expression={$_}}
以下是$UserDescObject变量的结果:
以下是$UserInfoObject变量的结果:
我尝试将$UserDescObject变量作为第1列导出到csv,将$UserInfoObject作为第2列导出到csv。
我尝试了两种不同的方法(对我来说都失败了)。
方法1:导出到CSV $UserDescObject,然后追加$UserInfoObject
这是我添加到上面脚本中的附加部分:
#Identifying the AccountList.ain File Path
$AccountListPath = "$DataPATH\ADM\AccountList.ain"
#Create Variable for User Description & User ID
[xml]$UserInfoPath = gc $AccountListPath
$UserDescString = $UserInfoPath.AccountList.UserAccount.description
$UserInfoString = $UserInfoPath.AccountList.UserAccount.UserInfo.username
#Export to CSV
$UserDescObject = $UserDescString | Select-Object @{Name='Description';Expression={$_}}
$UserDescObject | Export-Csv .\LDAPCrossWalkTable.csv -Force -NoType
$UserInfoObject = $UserInfoString | Select-Object @{Name='UserID';Expression={$_}}
$UserInfoObject | Export-Csv .\LDAPCrossWalkTable.csv -Append -NoTypeInformation
这是我在运行脚本后看到的错误:
方法#2:导出到CSV $UserDescObject、导入创建的CSV和附加$UserInfoObject
#Identifying the AccountList.ain File Path
$AccountListPath = "$DataPATH\ADM\AccountList.ain"
#Create Variable for User Description & User ID
[xml]$UserInfoPath = gc $AccountListPath
$UserDescString = $UserInfoPath.AccountList.UserAccount.description
$UserInfoString = $UserInfoPath.AccountList.UserAccount.UserInfo.username
#Create User Description List & User Info (User ID) List
$UserDescObject = $UserDescString | Select-Object @{Name='Description';Expression={$_}}
$UserInfoObject = $UserInfoString | Select-Object @{Name='UserID';Expression={$_}}
#Export User Description & User Info (User ID) Lists to CSV
$UserDescObject | Export-Csv .\LDAPCrossWalkTable.csv -Force -NoType
$ImportCSV = Import-CSV .\LDAPCrossWalkTable.csv
$ImportCSV | Select-Object *,@{Name='UserInfo';Expression={$UserInfoObject}} | Export-Csv .\LDAPCrossWalkTable.csv -NoTypeInformation
我几乎可以让两列都正确显示。我收到了两列。但是$UserInfoObject中的所有文本行都被添加到CSV文件的每一行中,而不是正确地分开:
这是我希望在csv文件中显示的内容:
任何投入都非常感谢!!
1条答案
按热度按时间v6ylcynt1#
我可以使用数组来解决这个问题。下面是脚本: