使用CSV文件的AD用户的Ceate文件夹会生成错误的文件夹名称

时间:2017-03-13 15:19:50

标签: powershell csv active-directory

我创建了一个列出某些Active Directory用户的CSV文件。现在我想使用此CSV为这些用户创建一定数量的文件夹。我从

开始
alter table dbo.mytable alter column mycolumn INT NOT NULL;
go
alter table dbo.mytable add primary key (mycolumn);

继续

$UserList = Import-Csv .\users.csv

我希望每个文件夹ForEach ($UserName in $UserList) { $UserName New-Item -Name $Username -ItemType directory -Path .\Download\$UserName New-Item -Name $Username -ItemType directory -Path .\Home\$UserName New-Item -Name $Username -ItemType directory -Path .\Publishing\$UserName } DownloadHome都包含一个具有用户名的子文件夹,例如Publishing。 当我运行此脚本时,文件夹名称的结果为testuser,这不是预期的结果。

如何解决这个命名问题?

1 个答案:

答案 0 :(得分:3)

您需要取消引用该属性。

如果你运行:

$UserList = Import-Csv .\users.csv
$UserList[0]

你应该看到这样的事情:

name
----
testuser

name标题告诉您它是对象$UserList的属性。

对于解决方案,您可以这样做:

ForEach ($User in $UserList) {
$UserName = $User.Name
$UserName
New-Item -Name $Username -ItemType directory -Path .\Download\$UserName
New-Item -Name $Username -ItemType directory -Path .\Home\$UserName
New-Item -Name $Username -ItemType directory -Path .\Publishing\$UserName
}

或者这个:

ForEach ($User in $UserList) {
$User.Name
New-Item -Name $Username -ItemType directory -Path .\Download\$($User.Name)
New-Item -Name $Username -ItemType directory -Path .\Home\$($User.Name)
New-Item -Name $Username -ItemType directory -Path .\Publishing\$($User.Name)
}

或者,或者,您可以像这样在导入时获取名称:

$UserNameList = Import-Csv .\users.csv | Select-Object -ExpandProperty Name

ForEach ($UserName in $UserNameList) {
$UserName
New-Item -Name $Username -ItemType directory -Path .\Download\$UserName
New-Item -Name $Username -ItemType directory -Path .\Home\$UserName
New-Item -Name $Username -ItemType directory -Path .\Publishing\$UserName
}

但是,如果您要使用的CSV文件中还有其他值,则最后一个选项不是一个很好的解决方案,因为您导入名称。