有人可以帮助我吗?
我必须使用以下格式创建.txt
文件:
user("SamAccountName","GivenName Surname"){}
我能够创造这个:
#Get AD Users Info
cls
$SamAccountName = New-Item 'c:\SamAccountName.txt' -type file -Force
Get-ADUser -Filter * -Properties SamAccountName |
select -First 15 | Sort-Object SamAccountName |
Format-Table SamAccountName | Out-File $SamAccountName
$content = Get-Content $SamAccountName
$content | Foreach {$_.TrimEnd() } | where {$_ -ne ""} | Select-Object -Skip 3 | Set-Content $SamAccountName
#Write quotes (make it nice and readable!)
$ACTIVEDIRECTORY = New-Item 'c:\ACTIVEDIRECTORY.lst' -type file -Force
Clear-Content $ACTIVEDIRECTORY
$quotes= '"'
(Get-Content $SamAccountName) |
ForEach-Object {Add-Content $ACTIVEDIRECTORY "$quotes$_$quotes"}
Get-Content $ACTIVEDIRECTORY
这给了我这个结果:
"GivenName"
"GivenName"
"GivenName"
答案 0 :(得分:0)
我同意@notjustme关于你的问题一团糟,但无论如何我都会在那里提出答案。
您的第一个问题是如何设置这两个变量。它们最终成为对象,但您正试图像文件路径一样使用它们。
$SamAccountName = "c:\SamAccountName.txt"
$ACTIVEDIRECTORY = "c:\ACTIVEDIRECTORY.lst"
这将为您提供逗号分隔的用户列表,这是(某种程度上)代码的哪个部分正在执行。
Get-ADUser -Filter * | Select-Object SamAccountName, GivenName, SurName -First 15 | Sort-Object SamAccountName | Export-Csv $SamAccountName -NoTypeInformation
这将为您提供您在顶部指定的字符串格式的用户列表,这是奇怪的,但无论如何。
Import-Csv $SamAccountName | ForEach-Object {"user(`"$($_.SamAccountName)`",`"$($_.GivenName) $($_.Surname)`"){}"} | Out-File $ACTIVEDIRECTORY