我正在编写一个Powershell脚本来获取Active Directory帐户的CSV文件,验证每个帐户,并将验证状态写回单独的CSV文件。我需要协助编写CSV;我已经查看了Export-Csv cmdlet,但是当我导入CSV时,我有点困惑它是如何工作的。到目前为止,这是我的代码:
Import-Csv C:\Users\drives.csv | Foreach-Object{
$user = ([ADSISEARCHER]"(samaccountname=$($_.SamAccountName))").FindOne()
if($user)
{
New-Object -TypeName PSObject -Property @{
SamAccountName = $user.SamAccountName
IsDisabled = $user.GetDirectoryEntry().InvokeGet('AccountDisabled')
}
}
else
{
Write-Warning "Can't find user '$($_.SamAccountName)'"
}
}
有关如何导出帐户名称(从一个CSV导入)和帐户状态(我当前脚本提供)的任何想法?
答案 0 :(得分:1)
这是一种可能性 - 未经测试,但它旨在说明export-csv。所有标准警告均适用:)
$resultList = @()
Import-Csv C:\Users\drives.csv -header("SamAccountName") | Foreach-Object{
$user = ([adsisearcher]"(samAccountName=$($_.SamAccountName))").FindOne()
$resultList += New-Object -TypeName PSObject -Property @{
SamAccountName = $_.SamAccountName
IsDisabled = if ($user) {
$user.GetDirectoryEntry().InvokeGet('AccountDisabled')
} else {
"User not found."
}
}
}
$resultList | export-csv -Path c:\users\driveresult.csv -NoTypeInformation
答案 1 :(得分:0)
$exportCsv = @()
Import-Csv C:\Users\drives.csv | Foreach-Object{
$user = ([ADSISEARCHER]"(samaccountname=$($_.SamAccountName))").FindOne()
if($user)
{
$exportCsv += New-Object -TypeName PSObject -Property @{
SamAccountName = $user.SamAccountName
IsDisabled = $user.GetDirectoryEntry().InvokeGet('AccountDisabled')
}
}
else
{
Write-Warning "Can't find user '$($_.SamAccountName)'"
}
}
$exportCsv | Export-Csv -Path $myOtherCsvFilePath
在这里,您将PSERS的Powershell数组添加到另一个CSV文件
答案 2 :(得分:0)
您应该稍微更改一下代码。
public class A {
public static final CONSTANT = "i am a static final member";
}
现在你不会通过管道丢失对象信息。