Creating new groups with an array - arrays

I am trying to create an array that will create new groups within the specific OU. If I populate the array with one site ex: $site=#('Dallas') it correctly creates the new groups, however if I place multiple sites in the array ex:$site=#('Dallas','Bedford') Powershell return an error "Can not resolve directory object for given identity 'OU=Dallas Bedford, DC=examplecompany,DC=COM trying to list "Dallas Bedford" as the site. I have tried with single quotations and double quotations.
Here is the foreach statement
foreach ($location in $site) {$pc="OU=$site,OU=Location,DC=examplecompany,DC=COM"
How can I fix this so I do not have to manually enter the site location one by one?
Thanks.

You're embedding the collection itself (e.g $site) instead of $location which holds the current array element, try this:
foreach ($location in $site) {
$pc="OU=$location,OU=Location,DC=examplecompany,DC=COM"
}

Related

Powershell - List View Validation

I'm trying to build a script to ease the access mirroring.
I'm comparing access groups of two users and then displaying only those that the second user is missing.
I have two List Views:
First - Filled in with access groups
Second - Empty view where I want to copy a group name.
I managed to copy the name from the first to second list view although I'm struggling with creating a validation.
Here's the code I have:
Function Add-ItemListView($Item){
if($firstItem -eq $true){
$userGroupsListView.Items.Add($Item)
$global:firstItem = $false
}
else{
foreach($i in $userGroupsListView.Items){
$itemText = $i.Name
if ($itemText -ne $Item){
$userGroupsListView.Items.Add($Item)
}
}
}
}
I think it's actually checking if there already exists an item with the same name, but I'm getting an error message:
Collection was modified; enumeration may not execute.
I will appreciate every direction or tip.
Also is there any documentation for ListView in Powershell?
I could find a bunch of helpful guides and documentation but for C#

Rails update remove number from an array attribute?

Is there a way to remove a number from an attibute array in an update? For example, if I want to update all of an alchy's booze stashes if he runs out of a particular type of booze:
Alchy has_many :stashes
Stash.available_booze_types = [] (filled with booze.ids)
Booze is also a class
#booze.id = 7
if #booze.is_all_gone
#alchy.stashes.update(available_booze_types: "remove #booze.id")
end
update: #booze.id may or may not be present in the available_booze_types array
... so if #booze.id was in any of the Alchy.stash instances (in the available_booze_types attribute array), it would be removed.
I think you can do what you want in the following way:
if #booze.is_all_gone
#alchy.stashes.each do |stash|
stash.available_booze_types.delete(#booze.id)
end
end
However, it looks to me like there are better ways to do what you are trying to do. Rails gives you something like that array by using relations. Also, the data in the array will be lost if you reset the app (if as I understand available_booze_types is an attribute which is not stored in a database). If your application is correctly set up (an stash has many boozes), an scope like the following in Stash class seems to me like the correct approach:
scope :available_boozes, -> { joins(:boozes).where("number > ?", 0) }
You can use it in the following way:
#alchy.stashes.available_boozes
which would only return the ones that are available.

Use content of a tuple as variable session

I extracted from a previous response an Object of tuple with the following regex :
.check(regex(""""idSc":(.{1,8}),"pasTemps":."codePasTemps":(.),"""").ofType[(String,String)].findAll.saveAs ("OBJECTS1"))
So I get my object :
OBJECTS1 -> List((1657751,2), (1658105,2), (4557378,2), (1657750,1), (916,1), (917,2), (1658068,1), (1658069,2), (4557379,2), (1658082,1), (4557367,1), (4557368,1), (1660865,2), (1660866,2), (1658122,1), (921,1), (922,2), (923,2), (1660875,1), (1660876,2), (1660877,2), (1658300,1), (1658301,1), (1658302,1), (1658309,1), (1658310,1), (2996562,1), (4638455,1))
After that I did a Foreach and need to extract every couple to add them in next requests So we tried :
.foreach("${OBJECTS1}", "couple") {
exec(http("request_foreach47"
.get("/ctr/web/api/seriegraph/bydates/${couple(0)}/${couple(1)}/1552863600000/1554191743799")
.headers(headers_27))
}
But I get the message : named 'couple' does not support index access
I also though that to use 2 regex on the couple to extract both part could work but I haven't found any way to use a regex on a session variable. (Even if its not needed for this case but possible im really interessed to learn how as it could be usefull)
If would be really thankfull if you could provided me help. (Im using Gatling 2 but can,'t use a more recent version as its for work and others scripts have been develloped with Gatling2)
each "couple" is a scala tuple which can't be indexed into like a collection. Fortunately the gatling EL has a function that handles tuples.
so instead of
.get("/ctr/web/api/seriegraph/bydates/${couple(0)}/${couple(1)}/1552863600000/1554191743799")
you can use
.get("/ctr/web/api/seriegraph/bydates/${couple._1}/${couple._2}/1552863600000/1554191743799")

How do I remove a member from a large ldap-ad group with over >1500 members

I'm trying to remove a member from a large ldap Active Directory (AD) group. The below code will remove the member if the group is small. However it won't work if it's larger since AD splits the members into multiple range related attributes.
group.removeMember(person.getFullDn());
ldapTemplate.update(group);
I've tried to access those attributes directly using something like the below. IncrementalAttributesMapper allows me to get the list of range related member attributes ie member;Range=0-1499 and I attempt to delete the person from each, but no good. I don't get an error, but the person isn't removed from the group either
DirContextOperations ctx = ldapTemplate.lookupContext(group.getDn());
IncrementalAttributesMapper<?> attributesMapper = new DefaultIncrementalAttributesMapper("member");
while (attributesMapper.hasMore()) {
String[] attributes = attributesMapper.getAttributesForLookup();
for (String attribute: attributes ) {
ldapTemplate.lookup(group.getDn(), attributesMapper.getAttributesForLookup(), attributesMapper);
ctx.removeAttributeValue(attribute, person.getDn() );
ldapTemplate.modifyAttributes(ctx);
}
}
Hopefully someone has had more success with this. Thanks in advance!
I've got the solution as posted
I was getting a malformed attribute error until I just realised that the BasicAttribute is expecting String parameters. I was incorrectly passing in a Name object to it.
ldapTemplate.modifyAttributes(group.getDn(), new ModificationItem[] {
new ModificationItem(
DirContext.REMOVE_ATTRIBUTE,
new BasicAttribute("member", person.getFullDn().toString() ))
});

Symfony session get array value

I'm using Symfony2, and are having trouble getting array values stored in a session, without putting them in a variable or object.
Possible something like:
echo $app['session']->get('shop')->get('name');
Currently I'm achieving it by doing this, but I would like to avoid it for the cause of simplicity:
$temp = $app['session']->get('shop');
echo $temp['name'];
Is it possible?
Thanks in advance
The session object is just a "parameter bag", an object that holds keys & values.
If you want to create another level of that mechanism you would have to instantiate your own bag.
$shop = new \Symfony\Component\HttpFoundation\ParameterBag;
$shop->set('name', 'Fantastic Warehouse');
$app['session']->set('shop', $shop);
// next request
echo $app['session']->get('shop')->get('name');

Resources