Jump to content

Cmdlet geht mit nicht mit Variablen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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
}



Link zu diesem Kommentar

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

$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 von Schranz
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...