Working with arrays in Powershell

Hello everyone,
It has been an hour since I started to work on a new script in Active Directory. It is desired to query user LastLogin among all domain controllers in a domain. In a nutshell it will be used for:
 Query LastLogin of ALL user accounts from ALL domain controllers and compare them to determine the best result.
I know it might takes quite long time for this query to process but since I am not a third-party person, so far I have written this script block:
$DC = Get-ADGroupMember "domain controllers"
$Allusers = get-aduser -Filter * -searchbase "ou=AllUsers,dc=Contoso,dc=Net" -Properties Samaccountname
$i = 0
$j = 0
#Main Part Of The Script#
foreach ($User in $AllUsers)
$LastLogin = $null
$UserArray[$i] = $User.Samaccountname
foreach ($DC in $AllDC)
$UN = Get-ADUser $User -Properties lastlogin -Server $DC
if ([DateTime]::FromFileTime($UN.LastLogin) -ge $LastLogin)
$LastLogin = $UN.LastLogin
$LoginArray[$j] = $LastLogin
$i += 1
$j += 1
Well the questions are:
Is it Optimized?
Since I used two different arrays for this purpose, please kindly suggest me ideas on how to output this two arrays next to each other? ( I am not so professional in Powershell and Arrays especially) :)
Regards.
Mahdi Tehrani Loves Powershell
Please kindly click on Propose As Answer or to mark this post as
and helpfull to other poeple.

Thank you jrv. I highly admire you and David skills in scripting and helping me out. All of the solutions provided works well for me but it seems it does not check the value in first DC. Check below example:
User A
DC 1 = 2/2/2014
DC 2 = 6/3/2013
DC 3 = Null
Result = 6/3/2013
It is really strange. I do not really understand why it should happen. I traced the code manually and IMO it must return 2/2/2014 as the result.
Mahdi Tehrani Loves Powershell
Please kindly click on Propose As Answer
or to mark this post as
and helpfull to other poeple.
Yes.  Both code examples can miss a DC.  Add this to the first line: "-Server $DC[0]"  which will force the first query to use the first DC and not the GC.  This would not happen with DAvids code and I will post an updated and faster
version next.
¯\_(ツ)_/¯
 Thanks again for all the helpful replies. Since they were really helpful I voted them all as helpful posts. I thing I have found why it does not return values on first DC. I did apply some slight changes to track query progress:
$domainControllers = @(Get-ADGroupMember "domain controllers")
Write-host "Running The First Query On " $domainControllers[2].Name
$users=Get-ADUser -Filter * -searchbase "ou=AllUsers,dc=Contoso,dc=Net" -Properties Samaccountname,LastLogon -Server $domainControllers[2].name |
Select-Object -Property 'SamAccountName', 'LastLogon'
Write-host -foreground green "Values on" $domainControllers[2].Name
foreach ($US in $Users)
$US.LastLogon = [DateTime]::FromFileTime($US.lastLogon)
$users
Write-host
Write-host -foreground green "Final Values"
#Main Part Of The Script#
foreach ($user in $users){
foreach ($DC in $domainControllers){
if($UN=Get-ADUser -Identity $user.SamAccountName -Properties lastlogon -Server $DC.Name -ea 0){
if($UN.lastLogon -ne 0){
$lastLogon = [DateTime]::FromFileTime($UN.lastLogon)
if($lastLogon -gt $user.LastLogon){
$user.LastLogon=$lastLogon
$users
Using this code I found out that the LastLogon's in first DC is returned as null. It is strange that when you navigate to the user properties in first DC, the LastLogon is set to 2/9/2014. It is clear that due to wrong values returned as 1/1/1601 the
condition in the main part of the script will never meet true for first DC.
I tested this code in a multi-domain environment but unfortunately I faced the same results.
Mahdi Tehrani Loves Powershell
Please kindly click on Propose As Answer or to mark this post as
and helpfull to other poeple.

Similar Messages

  • Working with collections in powershell

    Hi,
    I'm struggeling with collections in Powershell in general.
    I have a variable of type SPWebCollection created and want to add
    1) a single SPWeb - Object
    2) another collection of SPWeb - Objects
    Can someone tell me please why the following doesn't work:
    [Microsoft.Sharepoint.SPWebCollection]$allWebs += Get-SPWeb $URL1
    or this
    [Microsoft.Sharepoint.SPWebCollection]$allWebs += $site.AllWebs | Where-Object {$_.Url -like $URL2}
    Finally I want to empty the $allWebs collection i.e. remove all objects. How do I do that?
    I appreciate any feedback
    Thank you

    Hi,
    According to your description, you might want to gather all the SPWeb object into a collection object in order to delete all of them finally.
    As we can see, there is no such method in
    SPWebCollection object can meet you requirement, as a workaround, we can push all the SPWeb objects into an array, then operate
    these SPWeb objects in this array would do the trick.
    Here is a link about how to create a generic collection for a list of objects:
    http://www.andreasbijl.com/powershell-create-collections-of-custom-objects/
    More information about using collection in PowerShell:
    https://www.simple-talk.com/sysadmin/powershell/powershell-one-liners--collections,-hashtables,-arrays-and-strings/
    Best regards,
    Patrick
    Patrick Liang
    TechNet Community Support

  • How does flatten to string work with arrays?

    Hi all,
    I'm currently trying to get my head around how flatten to string works in terms of using it to write a configuration file which is loaded on startup in my VI. Writing and loading the configuration file is no problem and it is working beautifully. However... this is for a data acquisition system and the configuration file stores all the calibration data in the system which is entered through arrays. Anyway, the data recorded by my VI is to be post processed using MATLAB and needs to apply the calibration data stored in the configuration file.
    So I've been trying to work out how to get MATLAB to decypher the configuration file, but... I can't make heads or tails as to how the data is written into the file. I made a mock up of the saving file routine as you can see below, and run it a number of times by changing the input array dimensions and the values.
    Then opened the saved file to see if I can find a pattern... but I can't! Simply changing the element values changes the number of "\   \'s" Here is what I produced from my trials:
    [1x1 0]
    Config=\00\00\00\01\00\00\00\00\00\00\00\00      (1x1 array of 0's)
    [1x1 1]
    Config=\00\00\00\01?ð\00\00\00\00\00\00            (1x1 array of 1's)
    [1x1 2]
    Config=\00\00\00\01@\00\00\00\00\00\00\00       (1x1 array of 2's)
    [1x2 0]
    Config=\00\00\00\02\00\00\00\00\00\00\00\00\00\00\​00\00\00\00\00\00      (1x2 array of 0's)
    [1x2 1]
    Config=\00\00\00\02?ð\00\00\00\00\00\00?ð\00\00\00​\00\00\00                  (1x2 array of 1's)
    [1x2 2]
    Config=\00\00\00\02?ð\00\00\00\00\00\00?ð\00\00\00​\00\00\00                  (1x2 array of 2's) etc. etc. etc
    [2x2 0]
    Config=\00\00\00\02\00\00\00\02\00\00\00\00\00\00\​00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00​\00\00\00\00\00\00\00\00\00     
    [2x2 1]
    Config=\00\00\00\02\00\00\00\02?ð\00\00\00\00\00\0​0?ð\00\00\00\00\00\00?ð\00\00\00\00\00\00?ð\00\00\​00\00\00\00
    [2x2 2]
    Config=\00\00\00\02\00\00\00\02@\00\00\00\00\00\00​\00@\00\00\00\00\00\00\00@\00\00\00\00\00\00\00@\0​0\00\00\00\00\00\00
    Could someone explain to me how flatten to string flattens the array information? Particularly when the array elements are double precision? I look forward to any help that anyone can offer!
    Thanks,
    Stirling
    Message Edited by stirlsilver on 09-08-2007 08:47 AM
    Attachments:
    saveconfig.png ‏7 KB

    There are optional inputs to "flatten to string" That you can use to modify the outcome as needed. For example you can do little endian.
    You can also omit the array size from the flattened data (definitely not recommended for 2D arrays).
    LabVIEW Champion . Do more with less code and in less time .

  • How to work with Arrays (or Lists) in WebService responses?

    Good Evening!
    In a BPEL process I invoked a some Webservice which return me a list of persons. Like this:
    <response>
    <personList>
    <person>Person1</person>
    <person>Person2</person>
    <person>Person3</person>
    </persons>
    </respons>
    Now i need to do something with Every returned element (like to invoke another webservice with parameter "person" (so i need to invoke a webservice for a 3 times))
    How i can do this?
    In Assign element CopyRules i see only:
    response |_
    personList|_
    person
    Like a person is a simple element, not a list.
    Should i use a For Each Element? And what to do next?
    Thank you.

    http://download.oracle.com/docs/cd/E12483_01/integrate.1013/b28981/manipdoc.htm#BABCHBFB
    http://clemensblog.blogspot.com/2006/03/bpel-looping-over-arrays-collections.html
    http://oraclebpelindepth.blogspot.com/2008/09/arrays-in-bpel_21.html
    you indeed need for each and loop over every person element in
    in the loop you can do the invokes of the other service with the input-data of the corresponding person-element-data
    person[1]/name
    person[2]/name
    etc

  • Working with array variables defined in the BPM process

    Hello,
    I have created an array variable in my process. This array was created based on a custom type that contains 2 strings variables.
    How can I set/get and add new items to this array variable using java code?
    The only thing I know is that, if this was a simple variable I would do something like this:
    DCBindingContainer bc = (DCBindingContainer)FacesContext.getCurrentInstance().getApplication().evaluateExpressionGet(FacesContext.getCurrentInstance(), "#{bindings}", BindingContainer.class);
    JUCtrlAttrsBinding dc = (JUCtrlAttrsBinding) bc.findNamedObject("myVar");
    dc.setInputValue("theValue".toString());
    thank you
    fwu

    Hi
    I've been working on TZ's recently... see this post:
    https://supportforums.cisco.com/discussion/12474756/how-check-daylight-saving-within-uccx-script
    My approach in the scripts was that basically I allow the department to set their opening hours in the timezone of their choice.
    They have a management web page served from CCX that accepts start/end times each day, and a timezone. That all gets stored in XML.
    In the script, based on that information I get the current time in whatever timezone is set, and compare that to the XML open/close times.
    Similarly for holidays, I get the current date/time in the holiday TZ and compare the holidays to that.
    Aaron

  • Working with array

    hi?!
    I have a array, example: (1, 2, 3, 4)
    and I want to change the position the "1" with "4", how can
    I?
    and delete "1"?
    thanks
    Mello

    You can use splice to remove items from an array.
    example (watch for wrapping)
    var a:Array = new Array(1, 2, 3, 4);
    trace(a);
    var part:Array = a.splice(2, 1); // 2 points to index, not to
    value in
    array, 1 is number of items to delete
    trace(a);
    trace(part); // part now holds an array with the removed
    items
    If you want to switch positions of certain items in the
    array, store the
    removed items and insert them at the proper position.
    Manno
    Jo?o Mello wrote:
    > it's only to change the place between "1" and "4"
    > and to delete, it's like... i want to delete "3" for
    example...
    >
    > understand? ;x
    >
    > thanks

  • Working with CSV files -Powershell

    Hello all,
                 Here is a senario where am struck for past 2 days and i thought some one here can help.
    I am trying to get unique lines out of a csv file based on one particular column. Lets take a rough example , below is a sample csv i have pasted.. where i need to get only one last row from each category
    Problem
    Severity
    Category
    1
    Warning
    Event
    2
    critical
    Alert
    3
    Warning
    Alert
    4
    Warning
    Event
    5
    Warning
    Alert
    So the end result should have the complete row of problem 4&5 as that is the last appearing of unique data. Just to add an information that my csvhas 25 columns and as big as 11MB of data. Any thoughts would be greatly appreciated.
    S.Arun Prasath HP ARDE TEAM

    If I understand your scenario, this does the job...
    $testdata=import-csv 'c:\temp\test.csv'
    $categories=$testdata | Select Category -Unique
    foreach($cat in $categories){
    $testdata | Where-Object{$_.Category -eq $cat.Category} | Select -Last 1
    Result:
    Problem                                                  
    Severity                                                
    Category                                               
    4                                                        
    Warning                                                 
    Event                                                  
    5                                                        
    Warning                                                 
    Alert  
    Just a humble SysAdmin

  • NXT Flatten to String Not Working with Clusters and Arrays

    Hello,
    My name is Joshua and I am from the FIRST Tech Challenge Team 4318, Green Machine. We are trying to write a program that will write to a configuration file and read it back. The idea is that we will be able to write to a config file from our computer that will be read by our autonomous program when it runs. This will define what the autonomous program does.
    The easiest way to do this seems to be flattening a data structure to a string, saving it to a file, and then reading back and unflattening it. The issue is that the flatten to string and unflatten from string VIs don't seem to work with arrays and clusters on the NXT. It does work when running on the computer. We've tried arrays, clusters, clusters in arrays and arrays in clusters, none seem to work. Thinking it was something to do with reading the string from a file, we tried bypassing the file functionality, still not working. It does work with basic data types though, such as strings and numbers.
    No error is thrown from what we can tell. All you get is a blank data structure out of the unflatten VI.
    The program attached is a test program I've been working on to get this functionality to work. It will display the hex content of what is going into the file, coming out of the file, and then the resulting data from the unflatten string, as well as any errors that have been thrown. The data type we are using simulates what we would like to store. There is also a file length in and out counter. The out file is a little larger because the NXT write file VI adds a new line character on to the end (thus the use of the strip white space VI). This character was corrupting even basic data types saved to file.
    I would like to know if there is a problem with what we are doing, or if it is simply not possible to flatten arrays on the NXT. Please ask if you have any questions about the code. Thank you in advanced!
    Joshua
    Attachments:
    ReadableTest.vi ‏20 KB

    Hi jfireball,
    This is a very interesting situation. Take a look at what kbbersch said. I also urge you to post in the FTC Forums. You posted your question to the general LabVIEW forums, but by posting to the FTC Forums, you will have access to others that are using the NXT hardware.
    David B.
    Applications Engineer
    National Instruments

  • Math with arrays

    I haven't had much experience working with arrays in labview and I'm looking for a way to do more complicated math than the "add/multiply array elements."
    More specifically, I have a 2-D, 4 row, 3 column matrix ( lets call them x, y, and z, with elements x1, x2, x3, and x4, and the same for y and z.
    I need to compute the average for the elements in the 1st and 3rd columns: (x1+z1)/2 = xz1 avg
    And then I need to use that result: (xz1 avg - y1)/xz1 avg
    For each row in the array.
    Do I need to split the array into 3, one for each column, to do this?  Or is there a formula node that lets me specify which array column/row/element to use?

    By default, autoindexing FOR loops iterate over Rows, so once you have the math for one row, simply place it inside a FOR loop and iterate over all rows.
    Here's an example:
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    ArrayOps.png ‏16 KB

  • Working with ExtensionData attribute (byte arrays)

    Hello all,
    I am working with the ExtensionData attribute in PowerShell, which is in byte array form. What I am wanting to do is change a part of this ExtensionData attribute, but still keep the byte array form. What I am currently trying makes the change successfully,
    but I lose the byte array form. For example, before changing the ExtensionData attribute, Group1's ExtensionData attribute is populated on several lines within the attribute. After changing the attribute, Group1's ExtensionData attribute has all the same values,
    but is now contained on a single line. Here is the code used:
    #Finding Group1's ExtensionData attribute, in string form
    $ExtensionData = Get-ADGroup "Group1" -Properties extensiondata | select -ExpandProperty extensiondata | ForEach-Object {
    [System.Text.Encoding]::ASCII.GetString($_)
    #Let's assume Group1's ExtensionData attribute looks like this (multiple lines):
    #OldLine1
    #OldLine2
    #OldLine3
    $StringOld = "OldLine1"
    $StringNew = "NewLine1"
    #making sure line I want to change is present in string form of ExtensionData attribute, then we change the part we want
    If($ExtensionData -match $StringOld){
    $ExtensionData -replace "$StringOld","$StringNew"
    #Now we convert our new ExtensionData string form back to ASCII form
    $change = [System.Text.Encoding]::ASCII
    $NewExtensionData = $change.GetBytes($ExtensionData)
    #Now, we can replace Group1's ExtensionData attribute with our new ExtensionData attribute
    Set-ADGroup Group1 -Replace @{extensiondata=$NewExtensionData}
    #However, now Group1's ExtensionData attribute looks like this (no multiple lines):
    #NewLine1OldLine2OldLine3
    How can I replace a line in the ExtensionData attribute and still keep the multiple lines within the attribute?

    David,
    Thanks again for taking time to help me out with this problem! I've solved my problem, but had to perform a few steps along the way. Long story short, I slightly modified the code you provided using -match and -replace for the strings, and then
    when I tried to use -replace on the set-adgroup cmdlet, PowerShell griped and said value already present.
    However, I was able to get it to work by clearing the extensiondata attribute first and then using -add. This put the bytes into the extensiondata attribute as expected, but there were 2 problems with this. First, it looked like each byte was it's own array
    within the attribute. Second, the original ExtensionData attribute had strings in it, not bytes. I have since realized that bytes is how PowerShell reads the array, but not how ADUC displays it.
    What I did was use the following code:
    cls
    $ExtensionData = @(
    Get-ADGroup "Group1" -Properties extensiondata |
    Select-Object -ExpandProperty extensiondata |
    ForEach-Object {
    [System.Text.Encoding]::ASCII.GetString($_)
    $StringOld = "OldString"
    $StringNew = "NewString"
    for ($i = 0; $i -lt $ExtensionData.Count; $i++)
    if ($ExtensionData[$i] -match $StringOld)
    $ExtensionData[$i] = $ExtensionData[$i] -replace "$Stringold","$StringNew"
    Set-ADGroup SmartDL-test -replace @{extensiondata=$ExtensionData}
    As you can see, I still use -match and -replace to swap out the part of ExtensionData that I want. But it turns out I didn't need to convert the strings into bytes before using the set-adgroup command. I was able to just replace the part of the extensiondata
    collection I wanted, and then just paste the entire new collection into the attribute, and for my purposes it appeared to work.
    Anyway, I really appreciate your help on this, and it must be difficult helping someone troubleshoot when you can't see specifically what they're trying to do. Your post was extremely helpful however, and it led to the solution that worked for me. Thanks
    again!

  • Doesn't NVL work with Assosiative array elements

    Doesn't NVL work with Assosiative arrays? When i tried to UPDATE empdtls table with the values stored
    in v_ename array, i got no_data_found error because
    the query, select ename bulk collect into v_ename.....returns only 5 rows and v_ename(6) was null. So i tried NVL and COALESCE for v_ename(6). I couldn't succeed.
    Any workarounds?
    create table empdtls
    (ename1 varchar2(30),
    ename2 varchar2(30),
    ename3 varchar2(30),
    ename4 varchar2(30),
    ename5 varchar2(30),
    ename6 varchar2(30),
    location varchar2(30));
    SQL> insert into empdtls(location) values ('NY');
    1 row created.
    SQL> commit;
    declare
    type ename_arraytyp is table of varchar2(100) index by binary_integer;
    v_ename ename_arraytyp;
    begin
    select ename bulk collect into v_ename from emp where sal>2900;
    dbms_output.put_line(v_ename(1));
    dbms_output.put_line(v_ename(2));
    dbms_output.put_line(v_ename(3));
    update empdtls
               set ename1=v_ename(1),
                   ename2=v_ename(2),
                   ename3=v_ename(3),
                   ename4=v_ename(4),
                   ename5=v_ename(5),
                   ename6=NVL(v_ename(6),'No Name')
               where location='NY';
    commit;
    end;
    declare
    ERROR at line 1:
    ORA-01403: no data found
    ORA-06512: at line 9Message was edited by:
    J.Kiechle

    If you used a schema level collection type (i.e. created with CREATE TYPE) you could also use the unsupported SYS_OP_CEG function which appears to return collection elements for given index values without error if the element does not exist.
    Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
    SQL> CREATE OR REPLACE TYPE varchar2_table
      2  AS
      3     TABLE OF VARCHAR2 (4000);
      4  /
    Type created.
    SQL> DECLARE
      2     v_ename varchar2_table;
      3  BEGIN
      4     SELECT ename
      5     BULK COLLECT INTO v_ename
      6     FROM   emp
      7     WHERE  sal > 2900;
      8
      9     UPDATE empdtls
    10        SET ename1 = sys_op_ceg (v_ename, 1),
    11            ename2 = sys_op_ceg (v_ename, 2),
    12            ename3 = sys_op_ceg (v_ename, 3),
    13            ename4 = sys_op_ceg (v_ename, 4),
    14            ename5 = sys_op_ceg (v_ename, 5),
    15            ename6 = sys_op_ceg (v_ename, 6)
    16      WHERE location = 'NY';
    17  END;
    18  /
    PL/SQL procedure successfully completed.
    SQL>

  • How to make an acquired array of data work with point-by-point functions

    Hello everyone,
    I am working on a LabVIEW project using the Measurement Computing PCI-DAS6402/16 board. I am attempting to use point-by-point analysis with data acquired from the board, but I am having some difficulty. I am currently only able to acquire an array of data and not just a single point of data per scan. So, I was wondering if i) anybody possibly had any knowledge/experience using this particular board and getting it to be compatable with point-by-point VIs or ii) if anybody possibly knows anyway to convert an array of acquired data to work with point-by-point VIs in a hard realtime application. Thanks
    Pat
    Message Edited by Support on 11-16-2005 07:56 AM

    Hi Pat
    I just can tell you how you can use the pt-by-pt functions. As you said you have an array of data. To use the pt-by-pt functions, you need the single datapoints. So the only way is to use a loop to get the single elements and pass them to the pt-by-pt functions.
    I've attache a simple example.
    If this is the right way for you concerning processor and memory load, execution speed etc. I can't tell you.
    Hope this helps.
    Thomas 
    Using LV8.0
    Don't be afraid to rate a good answer...
    Attachments:
    PtByPt.vi ‏17 KB

  • Working with Classes and Arrays

    hello to all,
    public class Store
    //private data
    private Person list[];
    private int count;
    private int maxSize;
    //constructor starts
    public Store(int max)
    count = Person.count(); //sets count to 0     
    maxSize = max;//maxSize is equals to max
    Person list[] = new Person[maxSize];
    }//end of store
    //constructor ends
    //accessor starts   
    public int getCount()
    for(int i=0; i<list.length; i++)
    int result = list;
    return result;
    }//returns the number of elements currently in store
    the code above is working with classes and some arrays
    what am trying to do is to display what the array holds
    and then i meet an error saying that
    INCOPATIBLE TYPES - FOUND PERSON BUT EXPECTED INT
    Please note that am new to this!
    Thank you in advanced!
    <img src="file:///C:/Documents%20and%20Settings/fh84/Desktop/untitled.JPG" alt="" />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    public class Store
        //private data
        private Person list[];
        private int count;
        private int maxSize;
    //constructor starts
        public Store(int max)
             count = Person.count(); //sets count to 0     
             maxSize = max;//maxSize is equals to max
            // Person list[] = new Person[maxSize];
             Person list[] = new Person[maxSize]; //set tne
        }//end of store
    //constructor ends
    //accessor starts  
        public int getCount()
            for(int i=0; i<list.length; i++)
                int  result = list;
    return result;
    am sending the code again                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Creating/Working With Nullable Objects in PowerShell - How?

    Hi,
    how do I create and work with Nullable objects in PowerScript.
    None of the tips I found worked:
    > ([System.Nullable[System.Int32]]1).GetType().Name
    Int32
    > ([System.Nullable[System.Int32]]$null).GetType().Name
    You can't call a method on a null value expression.
    > (New-Object System.Nullable[Int32] 1).GetType().Name
    Int32
    Any help is appreciated!

    Well, nullable: yes, but Nullable: no.
    this is what I get in .NET if I call GetType() on a variable of type Nullable[Int32]:
    int? a = null; a.GetType();
    {Name = "Nullable`1" FullName = "System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"}
        [System.RuntimeType]: {Name = "Nullable`1" FullName = "System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"}
        base {System.Reflection.MemberInfo}: {Name = "Nullable`1" FullName = "System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"}
        Assembly: {mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089}
        AssemblyQualifiedName: "System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
        Attributes: Public | SequentialLayout | Sealed | Serializable | BeforeFieldInit
        BaseType: {Name = "ValueType" FullName = "System.ValueType"}
        ContainsGenericParameters: false
        DeclaringMethod: "(typeof(int?)).DeclaringMethod" hat eine Ausnahme vom Typ "System.InvalidOperationException" verursacht.
        DeclaringType: null
        FullName: "System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"
        GenericParameterAttributes: "(typeof(int?)).GenericParameterAttributes" hat eine Ausnahme vom Typ "System.InvalidOperationException" verursacht.
        GenericParameterPosition: "(typeof(int?)).GenericParameterPosition" hat eine Ausnahme vom Typ "System.InvalidOperationException" verursacht.
        GUID: {9a9177c7-cf5f-31ab-8495-96f58ac5df3a}
        HasElementType: false
        IsAbstract: false
        IsAnsiClass: true
        IsArray: false
        IsAutoClass: false
        IsAutoLayout: false
        IsByRef: false
        IsClass: false
        IsCOMObject: false
        IsContextful: false
        IsEnum: false
        IsExplicitLayout: false
        IsGenericParameter: false
        IsGenericType: true
        IsGenericTypeDefinition: false
        IsImport: false
        IsInterface: false
        IsLayoutSequential: true
        IsMarshalByRef: false
        IsNested: false
        IsNestedAssembly: false
        IsNestedFamANDAssem: false
        IsNestedFamily: false
        IsNestedFamORAssem: false
        IsNestedPrivate: false
        IsNestedPublic: false
        IsNotPublic: false
        IsPointer: false
        IsPrimitive: false
        IsPublic: true
        IsSealed: true
        IsSecurityCritical: false
        IsSecuritySafeCritical: false
        IsSecurityTransparent: true
        IsSerializable: true
        IsSpecialName: false
        IsUnicodeClass: false
        IsValueType: true
        IsVisible: true
        MemberType: TypeInfo
        Module: {CommonLanguageRuntimeLibrary}
        Namespace: "System"
        ReflectedType: null
        StructLayoutAttribute: {System.Runtime.InteropServices.StructLayoutAttribute}
        TypeHandle: {System.RuntimeTypeHandle}
        TypeInitializer: null
        UnderlyingSystemType: {Name = "Nullable`1" FullName = "System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"}
    That's quite a difference to PowerShell's:
    ([System.Nullable[System.Int32]]$null).GetType()
    You can't call a method on an expression with value NULL.
    See my point? PowerShell apparently doesn't have a notion about Nullable types. That's what I need to find out for myself: "Why?"
    Best regards,
    Axel Dahmen

  • Does Times Ten work with External Flash array

    Does the Times Ten In Memory DB support external Flash Arrays or is it completely dependent of Internal Memory. I was told it did not support it in the past, as this changed recently.

    TimesTen supports normal RAM for primary storage and 'disk' (or anything that presents as a disk, such as SSD etc.) for persistent storage. There is no explicit support for any other kind of storage. If the O/S had the capablility to present an external Flash Array as normal RAM then in theory it would work with TimesTen. But of course it would be far, far slower than RAM so there is probably little benefit in doing that even if it were possible.
    Chris

Maybe you are looking for