Hjälp med en kontroll i Powershell

Permalänk

Hjälp med en kontroll i Powershell

Hej!

Har börjat grotta in mig i Powershell, men har stött på ett problem jag inte riktigt har någon bra lösning på.
Jag har följande del, där $UserOne är en array med användare:

foreach ($Item in $UsersOne) { Add-ADGroupMember $($Item) -Identity ($objSecondGroup.SelectedItem) }

Kör man denna så kommer alla användare som finns med i $UserOne läggas till i $objSecondGroup. (Som ni kan se är det en AD-grupp)

Så långt är allt rätt och det fungerar, men vad händer om användaren som redan finns med i $objSecondGroup?
Jo, då får man ett fel och den går vidare i loopen, så det fungerar, men det är inte direkt snyggt

Min tanke var att lägga in en kontroll så att om användaren redan finns med i gruppen, så läggs den med i en ny array som jag sedan kan använda mig av. Låt oss kalla den $x ($x = @() )för att göra det enkelt.

Det jag inte får rätt på är hur detta kommer att se ut i kod, min tanke var att göra någon form av IF-sats, ungefär som denna:

IF($Item -ne ???){ $x += $Item } Else{ Add-ADGroupMember $($Item) -Identity ($objSecondGroup.SelectedItem) }

Ett annat alternativ är att skapa en hash-tabell och jämföra med vad som redan finns med i gruppen, men jag har absolut ingen aning om hur tusan man gör det. Läste något med en foreach i en foreach som innehåller en if-sats...

All hjälp uppskattas! Och detta är inget till skola eller liknande, utan detta är för nöjes skull bara under tiden jag inte har något att göra på jobb

Permalänk
Medlem

Kan du inte bara ta göra en hashtabell sen ta contains med ifsats?

Tog en snabb google kanske finns nåt du kan få använding av.
http://blogs.technet.com/b/heyscriptingguy/archive/2011/10/16...

Visa signatur

Corsair 16GB (4x4096MB) CL9 1600Mhz | Asus P8Z77-V PRO |
Samsung SSD Basic 830-Series 256GB | Intel Core i7 3770K 3,5Ghz |
Asus Xonar Essence STX | Noctua NH-U9B SE2 | Antec Performance One P280 | Corsair HX 850W 80+ Gold Modulär | MSI GTX 770

Permalänk
Skrivet av NoPaiN^:

Kan du inte bara ta göra en hashtabell sen ta contains med ifsats?

Tog en snabb google kanske finns nåt du kan få använding av.
http://blogs.technet.com/b/heyscriptingguy/archive/2011/10/16...

Det var det jag tänkte också, men jag lyckas inte få rätt på hur den skall se ut...
Har du möjlighet att hjälpa mig med hur den skall se ut?

Permalänk
Medlem

Vet inte vilken version du använder, sen var det ett tagsen jag körde PC.
Vet dessutom inte riktigt vad du är ute efter, men här kommer ett exempel på hur du kan göra iaf.

$hash = @{} $hash2 = @{} $array = @("Kalle", "Greta", "Ola", "Ola", "Ola", "Sven", "Greta") $array2 = @() foreach($item in $array) { If($hash.ContainsKey($item)) { $temp = [int]$hash.item($item) + 1 $hash.item($item) = $temp If($hash2.ContainsValue($item)) { $temp2 = [int]$hash2.item($item) + 1 $hash2.Add($temp2, $item) } ELSE { $hash2.Add($hash2.Count, $item) } $array2 += $item } ELSE { $hash.Add($item, "1") } } "*******" $hash "" "*******" $hash2 "" "*******" $array2

Dold text

Nu är väl inte allt 100% korrekt men det var årsen jag greja nåt med detta, håll till godo.
//NP^

Visa signatur

Corsair 16GB (4x4096MB) CL9 1600Mhz | Asus P8Z77-V PRO |
Samsung SSD Basic 830-Series 256GB | Intel Core i7 3770K 3,5Ghz |
Asus Xonar Essence STX | Noctua NH-U9B SE2 | Antec Performance One P280 | Corsair HX 850W 80+ Gold Modulär | MSI GTX 770

Permalänk
Skrivet av NoPaiN^:

Vet inte vilken version du använder, sen var det ett tagsen jag körde PC.
Vet dessutom inte riktigt vad du är ute efter, men här kommer ett exempel på hur du kan göra iaf.

$hash = @{} $hash2 = @{} $array = @("Kalle", "Greta", "Ola", "Ola", "Ola", "Sven", "Greta") $array2 = @() foreach($item in $array) { If($hash.ContainsKey($item)) { $temp = [int]$hash.item($item) + 1 $hash.item($item) = $temp If($hash2.ContainsValue($item)) { $temp2 = [int]$hash2.item($item) + 1 $hash2.Add($temp2, $item) } ELSE { $hash2.Add($hash2.Count, $item) } $array2 += $item } ELSE { $hash.Add($item, "1") } } "*******" $hash "" "*******" $hash2 "" "*******" $array2

Dold text

Nu är väl inte allt 100% korrekt men det var årsen jag greja nåt med detta, håll till godo.
//NP^

Härligt!
Jag hänger med på ett ungefär om hur jag skall göra, men det borde lösa sig!

Tack för hjälpen!