Jump to content

Zwei Spalten vergleichen bzw. Inhalte löschen


Direkt zur Lösung Gelöst von BOfH_666,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

 

ich stehe gerade vor einem Problem und weiß nicht, wie ich das lösen soll bzw. ob die Lösung, die ich habe, korrekt ist.

 

Folgendes: es existieren zwei Spalten, nennen wir sie AlleUser und WebUser.

Ich möchte jetzt, dass alle User aus Spalte WebUser, die auch in AlleUser auftauchen, von dieser Spalte subtrahieren und das Ergebnis dann in eine dritte Spalte schreiben.

 

Ich hab's mit PowerShell und Compare-Object -IncludeEqual versucht, aber bin mir absolut nicht sicher, ob das Ergebnis das ist, was ich brauche.

Erst habe ich mittels Get-ADUser alle User extrahiert und das Ergebnis in eine Textdatei umgeleitet, dann habe ich alle Mitglieder einer bestimmten Gruppe mit Get-ADGroupMember extrahiert und in eine zweite Datei umgeleitet. Bei beiden Kommandos jeweils nur den SamAccountName. Das sieht dann folgendermaßen aus:

 

user3             ==
user4             ==
                  =>
                  =>
user10            <=
user12		      <=

 

== bedeutet, existiert in beiden Dateien und <= bedeutet, der Wert existiert in einer der beiden Dateien, ich weiß aber nicht, in welcher. Soweit korrekt?

 

Meine zweite Idee war Excel, aber hier fehlt mit der Ansatz. Mittels "Wenn" oder "Zählenwenn" komme ich nicht weiter, auch ein XVERWEIS hilft mir nicht. Ein "Eindeutig" liefert mir irgendwie auch nicht das, was ich brauche.

Hat hier jemand einen Denkanstoß, wie ich das Ganze lösen kann? So schwer kann das doch eigentlich nicht sein...

 

Danke vorab!

Link zu diesem Kommentar
vor 6 Minuten schrieb tesso:

Warum erst in Text? 

Powershell kann doch wunderschön mit Objekten umgehen. 

 

Was möchtest du überhaupt machen? Das riecht wieder nach einem kleinen Teilproblem. 

 

Es geht darum, dass wir für eine Konfiguration beim Proxy einige AD-Gruppen brauchen. Es gibt bereits eine Gruppe mit Mitgliedern, die im Web surfen dürfen. Dann gibt es alle AD-User.

Die Diskrepanz zwischen allen und denen, die dürfen, kommt dann in die Gruppe "darf überhaupt nicht surfen".

Link zu diesem Kommentar

Sowas?

$AlleUser=Get-ADGroupMember AlleUser
$WebUser=Get-ADGroupMember Webuser

Compare-Object $AlleUser $WebUser -Property samaccountname -IncludeEqual |where {$_.SideIndicator -eq '<=' } |select samaccountname
  

 

als Einzeiler 

Compare-Object (Get-ADGroupMember AlleUser) (Get-ADGroupMember Webuser) -Property samaccountname -IncludeEqual |where {$_.SideIndicator -eq '<=' } |select samaccountname
  

 

Link zu diesem Kommentar
  • Beste Lösung
vor 5 Minuten schrieb Stibo:

Die Diskrepanz zwischen allen und denen, die dürfen, kommt dann in die Gruppe "darf überhaupt nicht surfen".

Erscheint mir irgendwie redundant.  :hmmm:

 

Aber egal ...  Du sammelst Dir einfach alle AD User ein

$allADUserList = Get-ADUser -Filter * -SearchBase 'OU=Germany,DC=contoso,DC=de' 

Dann holst Du Dir die Gruppenmitglieder

$DarfSurfen = Get-ADGroupMember -Identity 'DarfSurfen'

Und dann vergleichst Du die 

Compare-Object -ReferenceObject $allADuserList -DifferenceObject $DarfSurfen -Property DistinguishedName 

Was übrig bleibt, packst Du in die andere Gruppe.

Link zu diesem Kommentar

Vielen Dank Euch beiden! Ich habe wohl zu kompliziert gedacht und nicht verstanden, dass man bei Compare-Object ein Reference und ein Difference Object angeben kann.

 

vor 38 Minuten schrieb BOfH_666:

Erscheint mir irgendwie redundant.  :hmmm:

 

 

Ja, ist es auch, weil man explizit Gruppen angeben muss, was bedeutet, dass es jetzt eine Darf-Surfen- und eine Darf-nicht-surfen-Gruppe geben muss.

Link zu diesem Kommentar
vor 15 Stunden schrieb BOfH_666:

Was ist das für ein Produkt? Es sollte doch genügen, die erlaubten Konten durchzulassen und alles andere abzuweisen!? ... hätte ich erwartet.  :hmmm:

 

Ja, das dachten wir hier wohl auch. :D Ich bin erst seit 01.04. hier und kann noch nicht so viel dazu sagen, aber scheint eine Firewall von OpenSystems zu sein.

bearbeitet von Stibo
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...