Schranz 10 Geschrieben 23. April 2012 Melden Teilen Geschrieben 23. April 2012 Moin nochmal. Die mit --------------> markierten Aufrufe (MIT Variablen) gegen kein Ergebnis zurück. Direkt daruter (aktuell auskommentiert) steht genau der selbe Aufruf OHNE Variablen im Aufruf. Jener funktioniert. Was mache ich falsch? remove-item c:\skripte\result.txt wait-event -timeout 3 $oulist = @(Get-ADOrganizationalUnit -SearchScope 1 -Searchbase "OU=ou3,OU=ou2,OU=ou1,DC=domain,DC=local" -Filter 'Name -like "*"' | foreach {$_.Name}) #$oulist foreach ($ou in $oulist) { "#######################$ou#######################" | out-file c:\skripte\result.txt -Append Get-ADUser -filter {(description -notlike "*") -and (userAccountControl -eq 512)} -SearchBase "OU=$ou,OU=ou3,OU=ou2,OU=ou1,DC=domain,DC=local" | foreach {$_.SamAccountName} | out-file c:\skripte\results.txt -Append $anzahl = (Get-ADUser -filter {(description -notlike "*") -and (userAccountControl -eq 512)} -SearchBase "OU=$ou,OU=ou3,OU=ou2,OU=ou1,DC=domain,DC=local" | foreach {$_.SamAccountName}).count -------------->$officegroups = @(Get-ADGroup -filter {(name -like "*MSOffice*")} -SearchBase "OU=$ou,OU=ou3,OU=ou2,OU=ou1,DC=domain,DC=local" | foreach {$_.name}) #$officegroups = @(Get-ADGroup -filter {(name -like "*MSOffice*")} -SearchBase "OU=ou4,OU=ou3,OU=ou2,OU=ou1,DC=domain,DC=local" | foreach {$_.name}) $office = $null $officegesamt= $null foreach ($officegroup in $officegroups) { -------------->$office = (Get-ADUser -filter {(description -notlike "*") -and (userAccountControl -eq 512) -and (memberof -recursivematch "CN=$officegroup,OU=$ou,OU=ou3,OU=ou2,OU=ou1,DC=domain,DC=local")} -SearchBase "OU=$ou,OU=ou3,OU=ou2,OU=ou1,DC=domain,DC=local" | foreach {$_.SamAccountName}).count #$office = (Get-ADUser -filter {(description -notlike "*") -and (userAccountControl -eq 512) -and (memberof -recursivematch "CN=cn1,OU=ou4,OU=ou3,OU=ou2,OU=ou1,DC=domain,DC=local")} -SearchBase "OU=ou4,OU=ou3,OU=ou2,OU=ou1,DC=domain,DC=local" | foreach {$_.SamAccountName}).count $officegesamt = $officegesamt + $office } "Anzahl: $anzahl" | out-file c:\skripte\result.txt -Append "Anzahl MS Office: $officegesamt" | out-file c:\skripte\result.txt -Append } Zitieren Link zu diesem Kommentar
NilsK 2.958 Geschrieben 24. April 2012 Melden Teilen Geschrieben 24. April 2012 Moin, versuch mal, deine SearchBase-Variable vor dem Aufruf komplett zusammenzubauen und dann die ganze Variable statt eines gemischten Strings zu übergeben. Ich nehme mal an, dass die Cmdlets nicht damit klarkommen, innerhalb eines übergebenen Strings Ersetzungen vorzunehmen. Also in der Art: VariableA = VariableB + "Text" + VariableC Cmdlet -Parameter VariableA Gruß, Nils Zitieren Link zu diesem Kommentar
Schranz 10 Geschrieben 24. April 2012 Autor Melden Teilen Geschrieben 24. April 2012 Beim debuggen habe ich gesehen das die Variablen gefüllt sind. Allerdings deute ich die Fehlermeldung so, dass die Variabel nicht übersetzt wird. Get-ADUser : Eine leere Suchbasis wird nur unterstützt, wenn eine Verbindung mi t einem globalen Katalog besteht. Bei C:\skripte\get-member.ps1:27 Zeichen:22 + $office = (Get-ADUser <<<< -filter {(description -notlike "*") -and (userAcc ountControl -eq 512) -and (memberof -recursivematch "$memberof")} -SearchBase " $searchsbase2" | foreach {$_.SamAccountName}).count + CategoryInfo : InvalidArgument: (:) [Get-ADUser], ArgumentExcep tion + FullyQualifiedErrorId : Eine leere Suchbasis wird nur unterstützt, wenn eine Verbindung mit einem globalen Katalog besteht.,Microsoft.ActiveDirect ory.Management.Commands.GetADUser Ich probiere mal den ganzen Aufruf in eine Variable zu packen. Also nur noch: Get-ADUser $variable Zitieren Link zu diesem Kommentar
NilsK 2.958 Geschrieben 24. April 2012 Melden Teilen Geschrieben 24. April 2012 Moin, ob das mit dem ganzen Aufruf als Variable klappt - da bin ich skeptisch. Ich meinte den Wert, den du an -SearchBase übergeben willst. Gruß, Nils Zitieren Link zu diesem Kommentar
Schranz 10 Geschrieben 24. April 2012 Autor Melden Teilen Geschrieben 24. April 2012 (bearbeitet) $officegroups = @(Get-ADGroup -filter {(name -like "*MSOffice*")} -SearchBase "$searchbase1" | foreach {$_.name}) $office = (Get-ADUser -filter {(description -notlike "*") -and (userAccountControl -eq 512) -and (memberof -recursivematch "$memberof")} -SearchBase "$searchsbase2" | foreach {$_.SamAccountName}).count So sahs nach deinem ersten Post aus, leider ohne Erfolg. Edit: Ok das klappt tatsächlich so nich..... Wie man in meinem ersten Post aber sieht, funktioniert da aber ein Get-ADUser Aufruf mit $ im in der Searchbase. Sonderbar. bearbeitet 24. April 2012 von Schranz Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.