Export von AD-Info CSV-basiert auf der Eingabe des Benutzernamens CSV powershell-Skript
Ich übergeben zu müssen, in eine Liste von Benutzern und wieder eine CSV mit Name, SamAccountName, E-Mail
Mein Input CSV ist wie folgt:
"John Doe"
"Jane Doe"
Hier der aktuelle code, den ich verwende. Ich bin mir nicht sicher, was das problem ist. Der Benutzer tatsächlich existieren unter dem "DC" angegeben...
Import-Module ActiveDirectory
Function Get-ADUsersDetailsCSV
{
[CmdletBinding()]
Param
(
[Parameter(Mandatory=$True,Position=1)]
[String]$InCSV,
[Parameter(Mandatory=$True)]
[String]$OutCSV
)
If($InCSV)
{
If(Test-Path -Path $InCSV)
{
$USERS = Import-CSV $InCSV -Header Name
$USERS|Foreach{Get-ADUser $_.Name -Properties * |Select Name, SAMAccountName, mail}|Export-CSV -Path $OutCSV
} #End Test that the files exist
Else
{
Write-Warning "Cannot find path '$InCSV' because it does not exist."
}
} #End Ensure Input and Output files were provided
} #End Function Get-UsersDetailsCSV
Hier der Fehler:
Get-ADUser : Cannot find an object with identity: 'John Doe' under: 'DC=blah,DC=com'.
At U:\data\GetADUserInfo PS Script\GetADUsersDetailsCSV.psm1:19 char:28
+ $USERS|Foreach{Get-ADUser $_.Name -Properties * |Select Name, SAMAcc ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Name:ADUser) [Get-ADUser], ADIdentityNotFoundException
+ FullyQualifiedErrorId : Cannot find an object with identity: 'John Doe' under: 'DC=blah,DC=com'.,Microsoft.ActiveDirectory.Management.Commands.GetADUser
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie Get-Help Get-ADUser, finden Sie diese Beschreibung für den parameter Identity:
Beachten Sie, dass Namen nicht eine der Identitäten wird es akzeptieren. Name nicht ein indiziertes Attribut im AD, denn es ist nicht garantiert einzigartig. Es ist wahrscheinlich in Ihrem Bereich, sondern AD weiß das nicht. Ein Benutzer von jedem anderen Attribut, müssen Sie einen filter verwenden, damit dein script würde wie folgt Aussehen ( ich nahm mir die Freiheit der Faltung für die Lesbarkeit)
Beachten Sie auch, dass Name und SAMAccountName zu den gemeinsamen Eigenschaften, die Get-ADUser wird immer zurück, so dass die einzige andere Eigenschaft, die Sie angeben müssen, ist E-Mail.
Ich denke, dieser kümmert sich dann um die zusätzlichen Anforderungen, aber ich habe nicht testen Sie es:
Der Grund, warum dies nicht funktioniert ist, dass die
-Identity
parameter, dieGet-ADUser
- cmdlet verwendet wird, ist auf der Suche-ANZEIGE auf denSamAccount
Eigenschaft, nicht dieName
- Eigenschaft zum abrufen der Benutzer. Damit die Suche nach "John Doe" nicht arbeiten, sondern es wird erwartet, dass Sie auf der Suche mit der SamAccount name: "JDoe"Um nach Namen zu suchen, müssen Sie die Ergebnisse filtern, indem Namen wie diese:
So, Ihr code: