About Nik

Nik Craik

I’m a team and project leader with a technical background as a Microsoft SharePoint specialist and web generalist. For 15 years I’ve been working as an IT professional, first as a web developer, then as a SharePoint specialist for IBMThe University of British Columbia Faculty of Medicine, and the Nova Scotia Health Authority. In 2012 I became Software Development Manager at DominKnow, leading a highly collaborative, 14 member cross-functional team to ship over 130 new releases in 3 years to customers such as Pfizer, Oracle, Bechtel Engineering, and IKEA.

I am currently the IT Project Coordinator with St. Francis Xavier in beautiful Antigonish, Nova Scotia.

View Nikolas Craik's profile on LinkedIn

7 thoughts on “About Nik”

  1. Hey Nik, just used the script that you posted – List All SharePoint Site Request Access Emails In A Web Application, super helpful. Just wanted to say, on behalf of the internet, thank you.


    Gene Perry

  2. Hi Nik,

    I found your excellent script for saving docs, list, metadata to the file system, but had one question.
    Your varialbles,
    # $ServerFileLocation: Where the source file is located on the web
    # $DownloadPath: The destination to download to

    function HTTPDownloadFile($ServerFileLocation, $DownloadPath)
    $webclient = New-Object System.Net.WebClient
    $webClient.UseDefaultCredentials = $true

    I”m not seeing how you dynamically assign $serverfilelocation, it would seem this will change as the site is iterated thru for content?


    1. Hi Art,

      Thanks for the comment, I’m glad you found the script useful! I’m reaching back in my memory as I haven’t looked at this in a while, but here goes.

      To use the script, all you need to do is change the $site variable to the address of your SharePoint site and the $destination variable to where to download the material to, and it’ll download everything from that site. Changing the $ServerFileLocation variable isn’t necessary.

      Details on this:

      The HTTPDownloadFile function doesn’t need to be set manually, it’s actually called by the GetFileVersions function later on – this is because I couldn’t find a way to easily download previous versions of a file, but it IS possible to download them through a regular HTTP connection, just like using a web browser. GetFileVersions is called in the DownloadDocLib function, which is used to download an entire doc library, versions and all (thanks to GetFileVersions). The DownloadSite function is the main function that downloads all the documents + versions from an entire SharePoint site.

  3. Nik:
    Is there an associated script to import the CSV files output using the “Extract All Documents and their Versions” script?

Leave a Reply

Your email address will not be published. Required fields are marked *