1. The VDI Delusion

    I’ve just about finished reading The VDI Delusion (Brian Madden, Gabe Knuth, Jack Madden) and I already feel it’s one of the most important books I’ve read in my IT career.

    The reason I say this is that it brings all the VDI hype back to reality. I remember attending sessions from both VMWare and Citrix on their VDI offerings back in 2010 and thinking how cool it was going to be to take the desktop back into the data centre, where they could be managed much more easily, and then hand out cheap, low maintenance thin clients to end users. Of course this hasn’t materialised and the book’s own low uptake numbers (admittedly guestimates but calculated reasonably) reinforce the fact that VDI is a solution for specific use cases rather than a replacement of traditional PCs.

    I particularly like the comment that

    a desktop virtualization project is an excellent time to take a step back and look at the habits and processes that you and your department use in your daily life. (page 98)

    This for me is an important concept that many non-technical and even semi-technical (the really dangerous kind) will miss. Just because your introducing a new  technology does not mean it will automatically fix any underlying architectural problems that already exist. You still have to get the fundamentals right.

    Despite the books title the authors are keen to stress that they actually love VDI and really just want it to be understood and deployed with the right level of expectation. This is part of Brian Madden’s (and friends) charm that he manages to hammer home the disadvantages and drawbacks about a technology whilst simultaneously acting as an advocate of it.

    If your contemplating a desktop virtualisation implementation of any kind (VDI, RDSH, OS streaming, App virtualisation) then I would really recommend you download it to your favourite e-reading device and consume all the advice.

    * Please note that the links here are affiliate links. If your thinking of buying the book from Amazon and would like to support this site then using the link above is really appreciated. If you don’t, then that’s perfectly fine too!

    1 week ago  /  0 notes

  2. Citrix session 65536 down

    Every now and again, I see a Citrix session appear within Citrix Access Management Console with the session number 65536 in a ‘down’ state. This ID (usually) represents either an RDP or ICA broker connection.

    With no other users logged into the server, it’s possible to safely reset the session using the following command from the server:

        reset session 65536

    Check out the content source link from the Citrix support forums for more information.

    1 week ago  /  0 notes  /  Source: forums.citrix.com

  3. SQL LEFT JOIN with (missing) NULL values

    In SQL, you need to be careful where you place your search condition to filter a result set when using a LEFT JOIN where the joined table includes NULL values.

    Why is this cause for concern?

    Depending on your data you might get different results returned when filtering your results using the WHERE clause compared to ON.

    The reason?

    There is something called the Logical Query Processing Phases that describes the steps your SQL query performs when building a result set. The steps are performed in the following order:

    1. FROM
    2. ON
    3. OUTER
    4. WHERE
    5. GROUP BY
    6. CUBE | ROLLUP
    7. HAVING
    8. SELECT
    9. DISTINCT
    10 ORDER BY
    11. TOP

    As a result, a search condition in the ON clause is performed before WHERE. When you couple this with how NULL values are handled in JOINS it’s easy to misinterpret your query results.

    Pinal Dave has written a good explanation with SQL code of this in his post SQL SERVER – Interesting Observation of ON Clause on LEFT JOIN – How ON Clause affects Resultset in LEFT JOIN.

    This has caught me out a couple of time. But no more!

    1 month ago  /  1 note

  4. dsget failed:Directory object not found - yet some results return?

    Whilst trying to export a list of users from AD using dsquery & dsget I came across the error dsget failed:Directory object not found continuously despite a number of results being returned.

    Command ran: dsquery user “ou=Users,ou=CompanyName,dc=company,dc=local” -limit 300 | dsget user -display -samid -disabled -dept -company

    I suspected that one of the user objects was to blame, however it wasn’t obvious which one as the results being returned were in no obvious order. By adding -scope onelevel to dsquery the list of results was alphabetical and I was able to compare this AD and identify a username with a curly apostrophe rather than a straight one.

    Corrected in AD and managed to run the command without error.

    2 months ago  /  0 notes

  5. SQL LIKE operator wildcards

    Whilst being trained to use T-SQL some months back I was informed of the % wildcard available for the LIKE operator that equates to zero or more characters.


    This morning, much to my surprise I discovered there are others!

    _ (underscore) equates to a single character
    [ ] equates to specific characters
    [^] reverse of the above (not these characters)

    The full list can be found in the excellent MSDN documentation.

    1 year ago  /  0 notes

  6. Deactivated @toofn account

    Just a quick note to say that I’ve deactivated my @toofn twitter account.

    I wasn’t using it anywhere near enough that I should of and I didn’t want to claim a name that someone else might want in the future.

    The plan is to use this blog and keep posting interesting and unique content for the foreseeable future.

    1 year ago  /  0 notes

  7. For /L loop exiting unexpectedly

    I was attempting to call a batch script from within a for /l loop today but couldn’t work out why the script kept exiting after the first for command.


    It turns out that I need to add the call command in front of the batch script otherwise once the loop was complete the script would exit without moving onto the next command.

    E.g:
    Change

    for /L %%F in (1,1,9) do (Z:\Scripts\MY_SCRIPT.BAT 2010100%%F)

    to

    for /L %%F in (1,1,9) do (call Z:\Scripts\MY_SCRIPT.BAT 2010100%%F)

    1 year ago  /  1 note

  8. Sysadmin Aphorisms

    Rediscovered this link today and thought I’d share it.


    It’s a list of Sysadmin sayings that I think are (mostly) spot on advice.

    My favourite is number 14 “Simplicity is it’s own reward”.

    1 year ago  /  0 notes

  9. Windows wget 1.11.4 NTLM authentication problems

    I recently had a problem with getting wget for windows to authenticate with an IIS6 server using NTLM authentication (i.e. DOMAIN\username).


    Wget would connect to the server and then report a 401 error with the message “Unknown authentication scheme”.

    Googling presents some mixed responses with the official documentation stating that NTML being supported[1] in the latest version (1.12) but the most recent windows port (1.11.4) seems to have a problem[2].

    In a nutshell I couldn’t get 1.11.4 working but dropping back to 1.10.2 seems to work just fine.

    You can download a copy from here: http://users.ugent.be/~bpuype/wget/


    [1] - http://www.gnu.org/software/wget/manual/wget.html#HTTP-Options
    [2] - http://www.mail-archive.com/bug-wget@gnu.org/msg00047.html

    1 year ago  /  0 notes

  10. Preparing for a technical job interview?

    The Social Network Bust: What I learned from my job interview with Facebook

    I discovered this post whilst browsing the reddit sysadmin feed and admired the effort and honesty of the writer.
    Two other things struck me:
    1. The intelligence expected of those who at work @ Facebook. You just don’t know how high the standard is until you pitch yourself against the best.
    2. Unless you put yourself in the firing line you’ll never know what your current level is and how hard you have to work to get to next level. There is always something to learn in failure.
    If you are ever looking for advice on how to prepare for your next interview then I recommend you read the entire post.

    1 year ago  /  2 notes