Peterzz 11 Posted February 17, 2017 Report Share Posted February 17, 2017 Hallo zusammen, ich habe ein Powershell Script bei dem ich ein Problem mit einer IF-Abfrage und der Bedingung "not equal" (-ne) habe. Folgendes Testscript soll mein Problem veranschaulichen. param ( [Parameter(Mandatory=$True,Position=1)] [string]$Benutzername ) If (Get-ADUser -filter {SamAccountName -ne $Benutzername}) { Write-Host "Benutzer nicht da" } Else { Write-Host "Benutzer ist da" } Das Script gibt mir immer "Benutzer nicht da" aus, obwohl der Benutzername gleich einem SamAccountName ist. Benutze ich anstelle von "-ne" "eq" wird immer die richtige Auswahl (Text müsste natürlich getauscht werden) angezeigt. Warum funktioniert die Bedingung -ne anders als -eq? Quote Link to comment
NilsK 2,940 Posted February 17, 2017 Report Share Posted February 17, 2017 Moin, vielleicht mal richtigrum gefragt: Was willst du denn erreichen? Deine Abfrage würde dir alle User zurückgeben, die nicht den überreichten Logonnamen haben. Also je nach Domäne schon mal zigtausend Stück in einem Array. Schon ziemlich klar, dass das "falsch" ist, wenn du es mit einem String vergleichst. Gruß, Nils Quote Link to comment
Peterzz 11 Posted February 17, 2017 Author Report Share Posted February 17, 2017 Ich möchte im AD nachschauen, ob es diesen Benutzer (händische Eingabe) schon gibt und wenn nicht, dann soll z.B. ein Text erscheinen und wenn ja dann ... . Mit einer equal-Bedingung scheint es auch zu funktionieren. Quote Link to comment
NilsK 2,940 Posted February 17, 2017 Report Share Posted February 17, 2017 Moin, warum deine Abfrage nicht funktioniert, habe ich ja schon geschrieben. Bei sowas musst du die dahinter stehende Logik immer genau im Blick behalten. In deinem Fall wäre es wohl am besten, den gewünschten User mit "equals" abzufragen und darauf zu reagieren: if (Get-ADUser -Filter {samaccountname -eq $Suchwert}) { 'gibts' } else { 'gibts nicht' } Gruß, Nils Quote Link to comment
Peterzz 11 Posted February 17, 2017 Author Report Share Posted February 17, 2017 Danke, dann werde ich es mit einem -eq bewerkstelligen. Quote Link to comment
daabm 1,360 Posted February 17, 2017 Report Share Posted February 17, 2017 Erinnert mich an WMI-Filter auf "ist nicht vorhanden", geht ja auch nicht :-) Anders formuliert: Einen User, der anders heißt, gibt es immer. Deshalb landet Deine Abfrage immer im ersten Teil. Du mußt die Logk umbauen. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.