powershell - Strange behaviour with Add-Member. Get-Member doesn't return any value -


if write following code and, u can see, use get-member null:

$usertoadd = new-object psobject $usertoadd | add-member -membertype noteproperty -name "name" -value ([adsi]$_.path).name[0] $usertoadd | add-member -membertype noteproperty -name "email" -value ([adsi]$_.path).mail[0] $usertoadd | add-member -membertype noteproperty -name "daysleft" -value $daystillexpiring $usertoadd | add-member -membertype noteproperty -name "expirationtimestamp" -value $expirationtimestamp.tostring("dd/mm/yyyy alle ore hh:mm:ss ") $usertoadd | add-member -membertype noteproperty -name "samaccountname" -value ([adsi]$_.path).samaccountname[0] $usertoadd | get-member -verbose get-content $usertoadd 

but variable have value, because when use get-content following error, containing correct value:

get-content : cannot find drive. drive name '@{name=xxxxxxxxx; email=xxxxxxxxxx; daysleft=13; expirationtimestamp=27/04/2014 alle ore 10' not exist.

share|improve question
    
what's ps version? – raf apr 14 '14 @ 10:58
    
ps c:\windows\system32> get-host | select-object version version ------- 4.0 – s4rg0n apr 14 '14 @ 13:46

i can't reproduce problem on ps 4.0. works fine after remove get-content part should never there in first place.

$usertoadd = new-object psobject $usertoadd | add-member -membertype noteproperty -name "name" -value "hei" $usertoadd | add-member -membertype noteproperty -name "email" -value "epost" $usertoadd | add-member -membertype noteproperty -name "daysleft" -value 3 $usertoadd | add-member -membertype noteproperty -name "expirationtimestamp" -value ((date).tostring("dd/mm/yyyy alle ore hh:mm:ss ")) $usertoadd | add-member -membertype noteproperty -name "samaccountname" -value "ops" $usertoadd | get-member -verbose      typename: system.management.automation.pscustomobject  name                membertype   definition                                                      ----                ----------   ----------                                                      equals              method       bool equals(system.object obj)                                  gethashcode         method       int gethashcode()                                               gettype             method       type gettype()                                                  tostring            method       string tostring()                                               daysleft            noteproperty system.int32 daysleft=3                                         email               noteproperty system.string email=epost                                       expirationtimestamp noteproperty system.string expirationtimestamp=14.04.2014 alle ore 16:40:48  name                noteproperty system.string name=hei                                          samaccountname      noteproperty system.string samaccountname=ops   

if get-member returns null, never created object in first place, because without add-member lines, get-member still display this:

$usertoadd = new-object psobject $usertoadd | get-member -verbose      typename: system.management.automation.pscustomobject  name        membertype definition                     ----        ---------- ----------                     equals      method     bool equals(system.object obj) gethashcode method     int gethashcode()              gettype     method     type gettype()                 tostring    method     string tostring()  
share|improve answer
    
thank but, u can see, on line 7 wrote get-member debug problem returns null. – s4rg0n apr 14 '14 @ 13:39
    
ahh, bad. still, get-content command fail, remove , error. it's confusing. script before get-content: works on ps 4.0 when run here(with dummy values). see updated answer. – frode f. apr 14 '14 @ 14:39
    
actually works, cause part of bigger script. i'm modifying cause want add functionality cant add $usertoadd.name cause null. appears nonsensical because, in end, whole script works , part fundamental it. in sense strange get-member returns null. – s4rg0n apr 14 '14 @ 15:00
    
also check second piece of code posted... here get-content returns error, cause used test on content, returns in error (i edited find xxxxxx) right. when use value null, if recall without cmdlet. way tried put in variable first noteproperty (which ([adsi]$_.path).name[0] ) and, when recall variable, returns null... seems related powershell itself. it's strange... – s4rg0n apr 14 '14 @ 15:19
    
the logical reason can come @ point object in different scope, long run commands script or pressing green play-button in ps ise, shouldn't problem. i'm sorry, can't reproduce error. – frode f. apr 14 '14 @ 15:25

your answer

 
discard

posting answer, agree privacy policy , terms of service.

not answer you're looking for? browse other questions tagged or ask own question.

Comments