On Tue, Aug 25, 2015 at 11:37 AM, Kelley, Matthew
<[email protected]> wrote:
> Good for you on liking the Quest product.

Didn't mean to come off as if I was dismissing you, I just happen to
have a lot of scripts written using the Quest commandlets. Sorry if it
seemed otherwise.

>The filter is what you asked for. I mistyped that is gets users where last 
>name is blank. If you look at the filter it has the "not" symbol - "!" - so 
>lastname not equal null is what the filter gets you.

I missed that, the first time.

>You could just add a property to $User, instead of creating a temporary 
>$CustomizedObject variable.  Something like:

Ah, that could help some. Thanks.

>
> $AllCustomizedObjects = @()
>  ForEach ($User in $AllActiveUsers
> {
>         $AllCustomizedUsers +=  $User | Add-Member -MemberType NoteProperty 
> -Name Matched -Value $false
> }
>
> But actually, it sounds like you already have a better solution than the list 
> can offer. Nice Work!

Thanks. I try and muddle through. :-)


>
>
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]] 
> On Behalf Of Michael Leone
> Sent: Tuesday, August 25, 2015 11:16 AM
> To: [email protected]
> Subject: Re: [powershell] Add-Member question
>
> On Tue, Aug 25, 2015 at 10:55 AM, Kelley, Matthew <[email protected]> 
> wrote:
>>
>> If you are using Posh v3 or higher you can just use the MS commandlets. Try 
>> this:
>
> I am, but I like the Quest commandlets. Effectively the same, for what I do 
> with them.
>
>> $AllCustomizedObjects = @()
>> ForEach ($User in Get-ADUser -LDAPFilter "(!(lastname=\00))")
>>        {
>>        $CustomizedObject = $User
>>        $CustomizedObject | Add-Member -MemberType NoteProperty -Name Matched 
>> -Value $false
>>        $AllCustomizedUsers += $CustomizedObject
>>        }
>>
>> It will give you all users where lastname is blank. It looks like that is 
>> what you were asking for.
>
> Exact opposite, actually. I want AD accounts where the LastName field isn't 
> blank (well, not $null) ...
>
> We try and make it a point that only humans get lastname entries. So service 
> accounts, console logins, generic departmental logins, etc are supposed to 
> have a blank firstname and last name, and we just use the DisplayName for 
> those type of accounts. Not perfect, but it's surprising how effective it can 
> be ... if you follow the protocol, of course ... LOL)
>
> So looking for active AD accounts with a blank lastname is a pretty good 
> first approximation of accounts belong
>> If you want all those other attributes (you aren’t using them in the
>> snippet you provided)
>
> I need to output those fields later, if they match a search criteria further 
> down (matching a name in a CSV provided by another department). That's why I 
> want the customized property - to indicate that this AD account matched one 
> provided in the CSV. Then later, I will output into a CSV only the objects 
> that didn't match. (and I can also output in a separate CSV all the accounts 
> that did match, since I know my guys will eventually want that, too).
>
>>you can use a select statement on $user within the loop to dump that data 
>>into an array.
>>
>>
>>
>> Matt
>>
>>
>>
>> From: [email protected]
>> [mailto:[email protected]] On Behalf Of Michael Leone
>> Sent: Tuesday, August 25, 2015 10:07 AM
>> To: [email protected]
>> Subject: [powershell] Add-Member question
>>
>>
>>
>> So I have a list of AD users, that I created using Quest cmdlets (Get-ADUser 
>> ..). I need to add a new NoteProperty to each object (I want to add a 
>> boolean member, to indicate that this object meets certain criteria, 
>> determined later in the script). And I seem to be confused. (I know, what 
>> else is new).
>>
>>
>>
>> Do I need to:
>>
>> Do a ForEach-Object loop through all the returned users
>>
>> Create a new CustomObject
>>
>> Set it to the value of the user
>>
>> Add-Member boolean field to the custom object
>>
>> save custom object into new list?
>>
>>
>>
>> $AllActiveUsers = Get-QADUser <OneUser> -Enabled -SizeLimit 0
>> -IncludedProperties employeeID, departmentNumber| Select
>> givenName,LastName,DisplayName,Email,sAMAccountName,employeeID,departm
>> entNumber| Where-Object {$_.LastName -ne $null} | sort
>> LastName,givenName
>>
>>
>>
>> $AllCustomizedObjects = @()
>>
>>
>>
>> ForEach ($User in $AllActiveUsers)
>>
>>             {
>>
>>             $CustomizedObject = $User
>>
>>             $CustomizedObject | Add-Member -MemberType NoteProperty
>> -Name Matched -Value $false
>>
>>             $AllCustomizedUsers += $CustomizedObject
>>
>>             }
>>
>>
>>
>> That works, but is there a better way?
>>
>>
>>
>> I could come at it from the other direction; get my list of all users; when 
>> I find one that matches the criteria later, at that point create a new 
>> object with my boolean field; save all those objects; use those customized 
>> objects later in output. That would double up memory use, but possibly 
>> shorten execution time, since I wouldn't have to loop through all users 
>> first, adding an object. Instead only adding objects when I find a match 
>> (which should only be about 20% of the users, I am expecting).
>>
>>
>>
>>
>>
>>
>>
>>
>> ================================================
>> Did you know you can also post and find answers on PowerShell in the forums?
>> http://www.myitforum.com/forums/default.asp?catApp=1
>>
>> **********************************************************
>> Electronic Mail is not secure, may not be read every day, and should
>> not be used for urgent or sensitive issues
>>
>>
>> ================================================
>> Did you know you can also post and find answers on PowerShell in the forums?
>> http://www.myitforum.com/forums/default.asp?catApp=1
>
>
> ================================================
> Did you know you can also post and find answers on PowerShell in the forums?
> http://www.myitforum.com/forums/default.asp?catApp=1
>
> **********************************************************
> Electronic Mail is not secure, may not be read every day, and should not be 
> used for urgent or sensitive issues
>
> ================================================
> Did you know you can also post and find answers on PowerShell in the forums?
> http://www.myitforum.com/forums/default.asp?catApp=1


================================================
Did you know you can also post and find answers on PowerShell in the forums?
http://www.myitforum.com/forums/default.asp?catApp=1

Reply via email to