It’s that time of year again, and today I am kicking off my annual FREE MICROSOFT EBOOK GIVEAWAY extravaganza! And this time, I’m posting MORE FREE EBOOKS in this post than I ever have in any of my previous giveaways! Based on this, you will notice something different about this year’s post… In previous years, I included images of the eBook covers next to each item; however, I would also get feedback from people on the amount of time to load all of the images. So, this year I decided to streamline the list to make it easier to get to the eBooks you want. You will now find a simple list, organized by category, with the download links in the Format column so you can choose which format you want to download.
If you have been a follower of mine in the past, you know that several years ago I tried a simple concept: Let’s try giving away a bunch of free eBooks, reference guides, Step-By-Step Guides, and other informational resources to our customers and partners around the world. Needless to say, the concept was extremely the first year (over 1,000,000 FREE eBooks downloaded), and it has grown and grown over the past few years (over 3.5 Million downloaded three years ago and we surpassed that by a lot last year!) So, how many FREE eBooks can we give away this year? That is completely up to you.
Before we get to this year’s list of FREE eBooks, a few answers to common questions I receive during my FREE EBOOK GIVEAWAY:
- How many can you download?
- ANSWER: As many as you want! This is a FREE eBook giveaway, so please download as many as interest you.
- Wow, there are a LOT listed here. Is there a way to download all of them at once?
- ANSWER: Yes, please see the note below on how to do this.
- Can I share a link to your post to let others know about this giveaway?
- ANSWER: Yes, please do share the good news with anyone you feel could benefit from this.
- I know you said they are “Free,” but what’s the catch?
- ANSWER: There is no catch. They really are FREE. This consider it a, “Thank you,” for being a reader of my blog and a customer or partner of Microsoft.
- Ok, so if they are free and you’re encouraging us to share this with others, can I post a link to your post here on sites like Reddit, FatWallet, and other deal share sites to let them know, or is that asking too much?
- ANSWER: Please do. In fact, I would encourage you to share a link to this post on any deal site you feel their users could benefit from the FREE eBooks and resources included below. Again, I WANT to give away MILLIONS of FREE eBooks!
- Are these “time-bombed” versions of the eBooks that stop working after a certain amount of time or reads?
- ANSWER: No, these are the full resources for you to use.
Ok, ready for some FREE eBooks? Below is the collection I am posting this year (which includes a ton of new eBooks & resources, as well as some of the favorites from previous years):
Category | Title | Format |
Azure | Introducing Windows Azure™ for IT Professionals | PDF MOBI EPUB |
Azure | Microsoft Azure Essentials Azure Automation | PDF MOBI EPUB |
Azure | Microsoft Azure Essentials Azure Machine Learning | PDF MOBI EPUB |
Azure | Microsoft Azure Essentials Fundamentals of Azure | PDF MOBI EPUB |
Azure | Microsoft Azure Essentials Fundamentals of Azure, Second Edition | |
Azure | Microsoft Azure Essentials Fundamentals of Azure, Second Edition Mobile | |
Azure | Microsoft Azure Essentials Migrating SQL Server Databases to Azure – Mobile | |
Azure | Microsoft Azure Essentials Migrating SQL Server Databases to Azure 8.5X11 | |
Azure | Microsoft Azure ExpressRoute Guide | |
Azure | Overview of Azure Active Directory | DOC |
Azure | Rapid Deployment Guide For Azure Rights Management | |
Azure | Rethinking Enterprise Storage: A Hybrid Cloud Model | PDF MOBI EPUB |
BizTalk | BizTalk Server 2016 Licensing Datasheet | |
BizTalk | BizTalk Server 2016 Management Pack Guide | DOC |
Cloud | Enterprise Cloud Strategy | PDF MOBI EPUB |
Cloud | Enterprise Cloud Strategy – Mobile | |
Developer | .NET Microservices: Architecture for Containerized .NET Applications | |
Developer | .NET Technology Guidance for Business Applications | |
Developer | Building Cloud Apps with Microsoft Azure™: Best practices for DevOps, data storage, high availability, and more | PDF MOBI EPUB |
Developer | Containerized Docker Application Lifecycle with Microsoft Platform and Tools | |
Developer | Creating Mobile Apps with Xamarin.Forms, Preview Edition 2 | PDF MOBI EPUB |
Developer | Creating Mobile Apps with Xamarin.Forms: Cross-platform C# programming for iOS, Android, and Windows | PDF MOBI EPUB |
Developer | Managing Agile Open-Source Software Projects with Microsoft Visual Studio Online | PDF MOBI EPUB |
Developer | Microsoft Azure Essentials Azure Web Apps for Developers | PDF MOBI EPUB |
Developer | Microsoft Platform and Tools for Mobile App Development | |
Developer | Microsoft Platform and Tools for Mobile App Development – Mobile | |
Developer | Moving to Microsoft® Visual Studio® 2010 | XPS MOBI EPUB |
Developer | Programming Windows 8 Apps with HTML, CSS, and JavaScript | PDF MOBI EPUB |
Developer | Programming Windows Store Apps with HTML, CSS, and JavaScript, Second Edition | PDF MOBI EPUB |
Developer | Programming Windows® Phone 7 (Special Excerpt 2) | XPS |
Developer | Team Foundation Server to Visual Studio Team Services Migration Guide | |
Dynamics | 5 cool things you can do with CRM for tablets | |
Dynamics | Create Custom Analytics in Dynamics 365 with Power BI | |
Dynamics | Create of Customize System Dashboards | |
Dynamics | Create Your First CRM Marketing Campaign | |
Dynamics | CRM Basics for Outlook basics | |
Dynamics | CRM Basics for Sales Pros and Service Reps | |
Dynamics | Give Great Customer Service with CRM | |
Dynamics | Go Mobile with CRM for Phones – Express | |
Dynamics | Go Mobile with CRM for Tablets | |
Dynamics | Import Contacts into CRM | |
Dynamics | Introducing Microsoft Social Engagement | |
Dynamics | Introduction to Business Processes | |
Dynamics | Meet Your Service Goals with SLAs and Entitlements | |
Dynamics | Microsoft Dynamics CRM 2016 Interactive Service Hub User Guide | |
Dynamics | Microsoft Dynamics CRM 2016 On-Premises Volume Licensing and Pricing Guide | |
Dynamics | Microsoft Dynamics CRM for Outlook Installing Guide for use with Microsoft Dynamics CRM Online | |
Dynamics | Microsoft Dynamics CRM Resource Guide 2015 | |
Dynamics | Microsoft Social Engagement for CRM | |
Dynamics | Product Overview and Capability Guide Microsoft Dynamics NAV 2016 | |
Dynamics | RAP as a Service for Dynamics CRM | |
Dynamics | Set Up A Social Engagement Search For Your Product | |
Dynamics | Social is for Closers | |
Dynamics | Start Working in CRM | |
Dynamics | Your Brand Sux | |
General | 10 essential tips and tools for mobile working | |
General | An employee’s guide to healthy computing | |
General | Guide for People who have Language or Communication Disabilities | DOC |
General | Guide for People who have Learning Disabilities | DOC |
Licensing | Introduction to Per Core Licensing and Basic Definitions | |
Licensing | Licensing Windows and Microsoft Office for use on the Macintosh | |
Licensing | VLSC Software Assurance Guide | |
Licensing | Windows Server 2016 and System Center 2016 Pricing and Licensing FAQs | |
Office | Access 2013 Keyboard Shortcuts | |
Office | Azure AD/Office 365 seamless sign-in | |
Office | Content Encryption in Microsoft Office 365 | |
Office | Controlling Access to Office 365 and Protecting Content on Devices | |
Office | Customize Word 2013 Keyboard Shortcuts | |
Office | Data Resiliency in Microsoft Office 365 | |
Office | Excel 2013 Keyboard Shortcuts | |
Office | Excel 2016 keyboard shortcuts and function keys | DOC |
Office | Excel Online Keyboard Shortcuts | |
Office | File Protection Solutions in Office 365 | |
Office | First Look: Microsoft® Office 2010 | XPS |
Office | Get Started With Microsoft OneDrive | |
Office | Get Started With Microsoft Project Online | |
Office | Getting started with MyAnalytics | DOC |
Office | How To Recover That Un-Saved Office Document | |
Office | InfoPath 2013 Keyboard Shortcuts | |
Office | Keyboard shortcuts for Microsoft Outlook 2013 and 2016 | DOC |
Office | Keyboard shortcuts for Microsoft Word 2016 for Windows | DOC |
Office | Licensing Microsoft Office 365 ProPlus Subscription Service in Volume Licensing | |
Office | Licensing Microsoft Office software in Volume Licensing | |
Office | Microsoft Access 2013 Quick Start Guide | |
Office | Microsoft Classroom Deployment | |
Office | Microsoft Excel 2013 Quick Start Guide | |
Office | Microsoft Excel 2016 for Mac Quick Start Guide | |
Office | Microsoft Excel 2016 Quick Start Guide | |
Office | Microsoft Excel Mobile Quick Start Guide | |
Office | Microsoft Excel VLOOKUP Troubleshooting Tips | |
Office | Microsoft OneNote 2013 Quick Start Guide | |
Office | Microsoft OneNote 2016 for Mac Quick Start Guide | |
Office | Microsoft OneNote 2016 Quick Start Guide | |
Office | Microsoft OneNote 2016 Tips and Tricks | |
Office | Microsoft OneNote Mobile Quick Start Guide | |
Office | Microsoft Outlook 2013 Quick Start Guide | |
Office | Microsoft Outlook 2016 for Mac Quick Start Guide | |
Office | Microsoft Outlook 2016 Quick Start Guide | |
Office | Microsoft Outlook 2016 Tips and Tricks | |
Office | Microsoft Powerpoint 2013 Quick Start Guide | |
Office | Microsoft PowerPoint 2016 Quick Start Guide | |
Office | Microsoft PowerPoint 2016 for Mac Quick Start Guide | |
Office | Microsoft PowerPoint Mobile Quick Start Guide | |
Office | Microsoft Project 2013 Quick Start Guide | |
Office | Microsoft Publisher 2013 Quick Start Guide | |
Office | Microsoft Visio 2013 Quick Start Guide | |
Office | Microsoft Word 2013 Quick Start Guide | |
Office | Microsoft Word 2016 for Mac Quick Start Guide | |
Office | Microsoft Word 2016 Quick Start Guide | |
Office | Microsoft Word Mobile Quick Start Guide | |
Office | Microsoft® Office 365: Connect and Collaborate Virtually Anywhere, Anytime | |
Office | Monitoring and protecting sensitive data in Office 365 | DOC |
Office | Office 365 Dedicated Platform vNext Service Release | |
Office | Office 365 Licensing Brief | |
Office | OneNote 2013 Keyboard Shortcuts | |
Office | OneNote Online Keyboard Shortcuts | |
Office | Outlook 2013 Keyboard Shortcuts | |
Office | Outlook Web App Keyboard Shortcuts | |
Office | Own Your Future: Update Your Skills with Resources and Career Ideas from Microsoft® | XPS MOBI EPUB |
Office | PowerPoint Online Keyboard Shortcuts | |
Office | Project 2013 Keyboard Shortcuts | |
Office | Publisher 2013 Keyboard Shortcuts | |
Office | Security and Privacy For Microsoft Office 2010 Users | PDF MOBI EPUB |
Office | Security Incident Management in Microsoft Office 365 | PDF |
Office | SharePoint Online Dedicated & OneDrive for Business Dedicated vNext Service Release | |
Office | Skype for Business User Tips & Tricks for Anyone | |
Office | Switching from Google Apps to Office 365 for business | |
Office | Tenant Isolation in Microsoft Office 365 | |
Office | Visio 2013 Keyboard Shortcuts | |
Office | Windows 10 Tips and Tricks | |
Office | Word 2013 Keyboard Shortcuts | |
Office | Word Online Keyboard Shortcuts | |
Office | Working with SmartArt Graphics Keyboard Shortcuts | |
Power BI | Ask, find, and act—harnessing the power of Cortana and Power BI | DOC |
Power BI | Bidirectional cross-filtering in SQL Server Analysis Services 2016 and Power BI Desktop | DOC |
Power BI | Configuring Power BI mobile apps with Microsoft Intune | DOC |
Power BI | Getting started with the Power BI for Android app | DOC |
Power BI | Getting Started with the Power BI for iOS app | DOC |
Power BI | How to plan capacity for embedded analytics with Power BI Premium | |
Power BI | Introducing Microsoft Power BI | |
Power BI | Introducing Microsoft Power BI – Mobile | |
Power BI | Microsoft Power BI Premium Whitepaper | |
Power BI | Power BI mobile apps—enabling data analytics on the go | DOC |
Power BI | Propelling digital transformation in manufacturing operations with Power BI | DOC |
Power BI | Using Power BI to visualize data insights from Microsoft Dynamics CRM Online | DOC |
PowerShell | Microsoft Dynamics GP 2015 R2 PowerShell Users Guide | |
PowerShell | PowerShell Integrated Scripting Environment 3.0 | |
PowerShell | Simplify Group Policy administration with Windows PowerShell | |
PowerShell | Windows PowerShell 3.0 Examples | |
PowerShell | Windows PowerShell 3.0 Language Quick Reference | |
PowerShell | WINDOWS POWERSHELL 4.0 LANGUAGE QUICK REFERENCE | |
PowerShell | Windows PowerShell 4.0 Language Reference Examples | |
PowerShell | Windows PowerShell Command Builder User’s Guide | |
PowerShell | Windows PowerShell Desired State Configuration Quick Reference | |
PowerShell | WINDOWS POWERSHELL INTEGRATED SCRIPTING ENVIRONMENT 4.0 | |
PowerShell | Windows PowerShell Web Access | |
PowerShell | WMI in PowerShell 3.0 | |
PowerShell | WMI in Windows PowerShell 4.0 | |
SharePoint | Configuring Microsoft SharePoint Hybrid Capabilities | |
SharePoint | Configuring Microsoft SharePoint Hybrid Capabilities – Mobile | |
SharePoint | Deployment guide for Microsoft SharePoint 2013 | |
SharePoint | Microsoft SharePoint Server 2016 Architectural Models | |
SharePoint | Planning and Preparing for Microsoft SharePoint Hybrid – 8.5 X 11 | |
SharePoint | Planning and Preparing for Microsoft SharePoint Hybrid – Mobile | |
SharePoint | RAP as a Service for SharePoint Server | |
SharePoint | SharePoint Online Dedicated Service Description | |
SharePoint | SharePoint Products Keyboard Shortcuts | |
SharePoint | SharePoint Server 2016 Databases – Quick Reference Guide | |
SharePoint | SharePoint Server 2016 Quick Start Guide | |
SQL Server | 5 Tips For A Smooth SSIS Upgrade to SQL Server 2012 | |
SQL Server | Backup and Restore of SQL Server Databases | |
SQL Server | Data Science with Microsoft SQL Server 2016 | |
SQL Server | Deeper insights across data with SQL Server 2016 – Technical White Paper | |
SQL Server | Deploying SQL Server 2016 PowerPivot and Power View in a Multi-Tier SharePoint 2016 Farm | DOC |
SQL Server | Deploying SQL Server 2016 PowerPivot and Power View in SharePoint 2016 | DOC |
SQL Server | Guide to Migrating from Oracle to SQL Server 2014 and Azure SQL Database | |
SQL Server | Introducing Microsoft Azure™ HDInsight™ | PDF MOBI EPUB |
SQL Server | Introducing Microsoft Data Warehouse Fast Track for SQL Server 2016 | |
SQL Server | Introducing Microsoft SQL Server 2012 | PDF MOBI EPUB |
SQL Server | Introducing Microsoft SQL Server 2014 | PDF MOBI EPUB |
SQL Server | Introducing Microsoft SQL Server 2016: Mission-Critical Applications, Deeper Insights, Hyperscale Cloud, Preview 2 | PDF MOBI EPUB |
SQL Server | Introducing Microsoft SQL Server 2016: Mission-Critical Applications, Deeper Insights, Hyperscale Cloud, Preview 2 – Mobile | |
SQL Server | Introducing Microsoft Technologies for Data Storage, Movement and Transformation | DOC |
SQL Server | Introducing Microsoft® SQL Server® 2008 R2 | XPS MOBI EPUB |
SQL Server | Microsoft SharePoint Server 2016 Reviewer’s Guide | |
SQL Server | Microsoft SQL Server 2012 Tutorials: Analysis Services – Data Mining Step-by-Step | |
SQL Server | Microsoft SQL Server 2012 Tutorials: Analysis Services – Multidimensional Modeling Step-by-Step | |
SQL Server | Microsoft SQL Server 2012 Tutorials: Reporting Services Quick Step-by-Step | |
SQL Server | Microsoft SQL Server 2012 Tutorials: Writing Transact-SQL-Statements | |
SQL Server | Microsoft SQL Server 2014 Licensing Guide | |
SQL Server | Microsoft SQL Server 2016 Licensing Datasheet | |
SQL Server | Microsoft SQL Server 2016 Licensing Guide | |
SQL Server | Microsoft SQL Server 2016 Mission-Critical Performance Technical White Paper | |
SQL Server | Microsoft SQL Server 2016 New Innovations | |
SQL Server | Microsoft SQL Server 2016 SP1 Editions | |
SQL Server | Microsoft SQL Server In-Memory OLTP and Columnstore Feature Comparison | |
SQL Server | RAP as a Service for SQL Server | |
SQL Server | SQLCAT’s Guide to: Relational Engine | |
SQL Server | Xquery Language Reference | |
Surface | Surface Book User Guide | |
Surface | Surface Pro 4 User Guide | |
System Center | Guide to Microsoft System Center Management Pack for SQL Server 2016 Reporting Services (Native Mode) | DOC |
System Center | Guide to System Center Management Pack for Windows Print Server 2016 | DOC |
System Center | Introducing Microsoft System Center 2012 R2 | PDF MOBI EPUB |
System Center | Microsoft System Center Building a Virtualized Network Solution, Second Edition | PDF MOBI EPUB |
System Center | Microsoft System Center Data Protection for the Hybrid Cloud | PDF MOBI EPUB |
System Center | Microsoft System Center Deploying Hyper-V with Software-Defined Storage & Networking | PDF MOBI EPUB |
System Center | Microsoft System Center Extending Operations Manager Reporting | PDF MOBI EPUB |
System Center | Microsoft System Center Introduction to Microsoft Automation Solutions | PDF MOBI EPUB |
System Center | Microsoft System Center Operations Manager Field Experience | PDF MOBI EPUB |
System Center | Microsoft System Center Software Update Management Field Experience | PDF MOBI EPUB |
System Center | Microsoft System Center: Building a Virtualized Network Solution | PDF MOBI EPUB |
System Center | Microsoft System Center: Cloud Management with App Controller | PDF MOBI EPUB |
System Center | Microsoft System Center: Configuration Manager Field Experience | PDF MOBI EPUB |
System Center | Microsoft System Center: Designing Orchestrator Runbooks | PDF MOBI EPUB |
System Center | Microsoft System Center: Integrated Cloud Platform | PDF MOBI EPUB |
System Center | Microsoft System Center: Network Virtualization and Cloud Computing | PDF MOBI EPUB |
System Center | Microsoft System Center: Optimizing Service Manager | PDF MOBI EPUB |
System Center | Microsoft System Center: Troubleshooting Configuration Manager | PDF MOBI EPUB |
System Center | What’s new in System Center 2016 White Paper | |
Virtualization | Understanding Microsoft Virtualizaton R2 Solutions | XPS |
Windows Client | Deploying Windows 10: Automating deployment by using System Center Configuration Manager | PDF MOBI EPUB |
Windows Client | Deploying Windows 10: Automating deployment by using System Center Configuration Manager – Mobile | |
Windows Client | Getting the most out of Microsoft Edge | DOC |
Windows Client | Introducing Windows 10 for IT Professionals | PDF MOBI EPUB |
Windows Client | Introducing Windows 10 for IT Professionals, Preview Edition | PDF MOBI EPUB |
Windows Client | Introducing Windows 8.1 for IT Professionals | PDF MOBI EPUB |
Windows Client | Introducing Windows 8: An Overview for IT Professionals | PDF MOBI EPUB |
Windows Client | Licensing Windows desktop operating system for use with virtual machines | |
Windows Client | Protecting your data with Windows 10 BitLocker | DOC |
Windows Client | RAP as a Service for Windows Desktop | |
Windows Client | Shortcut Keys for Windows 10 | DOC |
Windows Client | Use Reset to restore your Windows 10 PC | DOC |
Windows Client | Volume Licensing Reference Guide Windows 10 Desktop Operating System | |
Windows Client | Windows 10 IT Pro Essentials Support Secrets | PDF MOBI EPUB |
Windows Client | Windows 10 IT Pro Essentials Top 10 Tools | PDF MOBI EPUB |
Windows Client | Windows 10 IT Pro Essentials Top 10 Tools – Mobile | |
Windows Client | Work Smart: Windows 8 Shortcut Keys | |
Windows Server | Automating Windows Server 2016 configuration with PowerShell and DSC | DOC |
Windows Server | Introducing Windows Server 2008 R2 | XPS MOBI EPUB |
Windows Server | Introducing Windows Server 2012 | PDF MOBI MOBI EPUB EPUB |
Windows Server | Introducing Windows Server 2012 R2 | PDF MOBI EPUB |
Windows Server | Introducing Windows Server 2016 | |
Windows Server | Introducing Windows Server 2016 – Mobile | |
Windows Server | Introducing Windows Server 2016 Technical Preview | |
Windows Server | Introducing Windows Server 2016 Technical Preview – Mobile | |
Windows Server | Introducing Windows Server® 2012 R2 Preview Release | PDF MOBI EPUB |
Windows Server | Offline Assessment for Active Directory | |
Windows Server | RAP as a Service for Active Directory | |
Windows Server | RAP as a Service for Failover Cluster | |
Windows Server | RAP as a Service for Internet Information Services | |
Windows Server | RAP as a Service for Windows Server Hyper-V | |
Windows Server | Windows Server 2016 Licensing |
HOW TO DOWNLOAD ALL EBOOKS:
One of the popular questions I also receive is, “How can I Download All at one time?” I am sharing with you how you can “Download All” of the FREE eBooks and resources I am including in my annual giveaway. Here’s a quick FAQ/How-To to help address many of these in one place as a way to make it as easy as possible for my readers to find what they need. I hope these help you out and address questions you have regarding the post.
1. Don’t you have a zip file with all of the ebooks included or a “Download All” button so I can download them at once?
- ZIP File: No, I do not have a zip file of the docs stored somewhere for download and this is intentional for several reasons. Since the eBooks and resources themselves have been put together and are distributed by some incredible authors and publishers, ultimately, they have the rights to update, distribute, and manage their IP as they see fit.
- Example 1: If an author finds a correction needed (think about a typo in code included in a book that needs to be updated), they can update their deliverable and put the new one up at the download site they control to ensure all future downloads have the current information.
- Example #2: (This one has actually happened with some of the books I’ve blogged about earlier) Sometimes an author wants to distribute their book a different way (switch from a share they have to a distribution site like Lulu) to achieve scale, better metrics, whatever. As such, they have every right to have the downloads moved to that site for distribution and have the downloads come from there.
- Example #3: The author/publisher chooses to no longer distribute the free eBook or chooses to charge at some point. Again, as the owners of the IP, they have every right to do so.
- If I were to grab today’s versions of the books, put them in a zip file, and distribute them from my server as an example, I would now be removing the author’s or publisher’s rights to do any of the three items listed above (as well as many other examples not listed). Ultimately, I (nor anyone else) do not have the right to do this. This is why I always provide links directly to their distribution sites, wherever they are so, you can download from them. Yes, this can be a challenge at times as I need to go back and edit links from time to time as they move the resources, but it is still the right thing to do and I am happy to do so in support of the great efforts these authors and publishers have done to make these resources available to all of us for free.
- Download All button: Sort of. I don’t have a “Download All” button specifically, since that would point to a single location, which I don’t provide based on the items above; however, I am providing some options below:
- Alternative 1: Some of the readers of my blog in the past have pinged me offline and suggested enabling the use of multiple browser download plug-ins that are available or various PowerShell options to download a list of links automatically. In order to use these options though, you would need a list of the download links to the eBooks on the site. Since this does not change the author’s/publisher’s rights to control their IP and distribution since it still enables downloads directly from their sites, I am happy to provide you with the list of links to do this.
If you right-click the icon to the right and select “Save Target As,” it will let you download a list of the links in a single .TXT file for all of the eBooks included in my latest post. The “NEW OPTION” has been added as an updated location to address the heavy traffic causing access issues. |
![]() NEW OPTION |
Original |
- With this list of links, you should be able to use the browser plug-ins, etc. of your choice to download the full list in an automated way.
- Alternative 2: If you use PowerShell, here is are two PowerShell scripts text you can use to Download All: (Thanks to David Crosby for the original template and to Robert Cain for the advanced template, which includes things like: Progress message, Check for existing to avoid double download on interruption, Check for file size to know to re-download if a file is interrupted mid-download, error message if file transfer fails, log file with messages option, and more.)
If you right-click the icon to the right and select “Save Target As,” it will let you download the text for the PowerShell script to allow you to Download All of the eBooks above. The “NEW OPTION” has been added as an updated location to address the heavy traffic causing access issues. |
![]() ADVANCED TEMPLATE |
![]() NEW OPTION |
Original |
2. Are these time-bombed versions of the books?
- No, the free versions of the resources are full-version and do not have a time-out feature in them, so you can continue to use them for as long as you choose.
3. “I work for a library, resource desk, etc. and would like to share these with others. Is it ok to share your links to these?” (or some flavor of this with different variations)
- Absolutely. Please feel free to share the links to these resources; however, please read #1 above on why you can share the links, but don’t distribute the actual works themselves as an offline resource. Please help support these fantastic authors and publishers by downloading the latest versions directly from them.
4. Download experiences seem to vary based on the resource I am downloading. Why is this?
- As noted in #1 above, I always link to the site where the author/publisher is making the work available for download. Some of these are here on the Microsoft TechNet or MSDN sites, some are from blogs, etc. Depending on where they come from, your download experience may vary.
5. “I tried to download an eBook or resource and it didn’t work.”
- Some of these eBooks come from a variety of places, and sometimes there is very heavy traffic to some of them. Wait a few moments and try again. You can also try right-clicking on the download link and selecting “Open in New Tab” or “Save Target As” to try initiating the download that way as well.
Thank you again for being a reader of my Blog and I hope you find this year’s collection of FREE eBooks and other resources to be very helpful to you, your colleagues, friends, or family.
Thank you and have a wonderful day,
Eric Ligman – Follow me on TWITTER, LinkedIn, and Facebook
Director – Sales Excellence
Microsoft Corporation
This posting is provided “AS IS” with no warranties, and confers no rights
Woohooo! Ligmania is my favorite time of the year! \o/
Thanks for all the great resources 😀
“Ligmania,” I love it! Glad you found the eBooks helpful . Enjoy!
Thanks Eric for this excellent collection… Wonderful if Exchange books would be added.. Thanks again
You can use Mozilla Firefox add-on “DownThemAll!” to download all these resources at one shot. Thanksssss so much Eric for sharing this wonderful collection 🙂
can you please elaborate
The PS script isn’t auto-downloading the destination, so if you don’t have C:\Downloads\Ebooks as a valid path, you’ll see a lot of red. Just create those folders manually, or change the destination path and then it’ll work.
*isn’t auto-creating the destination path
$dest = “C:\Downloads\ebooks\”
New-Item -Path $dest -ItemType Directory
setting this on line 9 fixes the code.
this worked for me, thanks Mike
Thanks for the addition,
But If folder exist, as if you run the script second time, you will receive an error message:
New-Item : An item with the specified name C:\Book\ already exists.
At line:1 char:1
+ New-Item -Path $dest -ItemType Directory
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceExists: (C:\Book3\:String) [New-Item], IOException
+ FullyQualifiedErrorId : DirectoryExist,Microsoft.PowerShell.Commands.NewItemCommand
Using “-ErrorAction SilentlyContinue” will solve the issue
$dest = “C:\Book\”
New-Item -Path $dest -ItemType Directory -ErrorAction SilentlyContinue
Don’t forget the trailing backslash.
Or, change line 26 to this:
$saveTo = Join-Path $dest $title
Thanks for the script, makes this much easier.
Getting error:
Unexpected token ‘in $books’ in expression or statement.
At D:\ebooks\Eligman_DownloadAll_PowerShell.ps1:22 char:25
+ foreach ($book in $books <<<< ) {
+ CategoryInfo : ParserError: (in $books:String) [], ParseException
+ FullyQualifiedErrorId : UnexpectedToken
Any suggestions?
Upgrade to the latest version of PowerShell.
Thanks for sharing the books! This is a great initiative to “TRY” to avoid book piracy, mainly in countries like Brazil (where I’m from) that this is like status quo 🙁
Cheers!
VC
Not all heroes wear capes! XD
Thank You!
What makes you think he’s not wearing a cape?
Amazing, Love your work. This is going to be a great resource for us.
Great stuff, thank you!
Happy learning….
Great Job!!! Thanks for sharing… a wonderful source of Knowledge…
Excellent opportunity to worldwide audience.
thanks’ Eric for the Fantastic collection
Kudos…
Wow, free “RAP as a Service” datasheet and many others. I was waiting for it sooooo long…..
Thanks Eric for sharing!
Thanks for this. Where is Exchange 2016?
Thanks again
This is Superb!!!
Eric how many of these have you read?
thanks for sharing
Thanks for sharing all of these books 🙂
This list doesn’t look like it’s even one million book long. Where are the rest of the multi-million books?
Thanks for the comment, Aaron, and sorry if there is any confusion. My goal with this offer is to give away millions of Microsoft ebooks for free to people who can use them and find them helpful. The “millions” being how many I can actually give away in this promotion, not the number of unique titles within the list. For example, this year there were over 1 million ebooks given away in the first 24 hours, and we’re now over 2 million and haven’t made it to the 48 hour mark yet. So as the title says, I am giving away millions of Microsoft eBooks for free. Again, sorry if there was any confusion in that. I hope you enjoy the eBooks that are available.
ah…he was trying to be funny…then got decimated.
Decimated means to kill one in ten…. so try again bro.
You can technically say they are millions of different titles.
More or less 0.000357 millions 🙂
well done. thanks for sharing
This. Is. Awesome.
Thank you Eric! This is beautiful information and all available at the click of a mouse. I greatly appreciate it!
Nice! Good job and many thanks! For sure it will be very helpful.
For unix users,
1. download the file provided in alternative1, then execute:
2. cat Ligman_eBooks_2017.txt | while read -r a; do wget –trust-server-names $a; done
that’s it !
Vince
Worked better like this for me:-
wget -i Ligman_eBooks_2017.txt –trust-server-names
Thanks for the script. It works wonderfully.
Add –content-disposition to get the real filenames instead of the short url values.
I could do it with just “wget -i Ligman_eBooks_2017.txt”
or also for Windows 10 users. Fire up bash in a CMD and run 1 command to download 🙂
wget –content-disposition -i booklist.txt
Not trying to be ungrateful, but there are 380 items in Ligman_eBooks_2017.txt, which is far from million. Am I missing something?
Thanks for the comment, Lev, and sorry if there is any confusion. My goal with this offer is to give away millions of Microsoft eBooks for free to people who can use them and find them helpful. The “millions” being how many I can actually give away in this promotion, not the number of unique titles within the list. For example, this year there were over 1 million eBooks given away in the first 24 hours, and we’re now over 2 million and haven’t made it to the 48 hour mark yet. So as the title says, I am giving away millions of Microsoft eBooks for free. Again, sorry if there was any confusion in that. I hope you enjoy the eBooks that are available.
Thank you Eric, and I must say, great Promo. Now that people have the knowledge hopefully they will be clients as well. kudos.
Looks like this has now turned into a FAQ… the greedy people Q! I, for one, thank you for providing us the most “Ligmanuals” you can. 😉
Excellent Repository!. Our team excited to see millions books
Thanks for sharing, its wonderful collection
Tip: Use the –trust-server-names option with wget if you download the list and try to grab them using wget.
wget -i file.txt –trust-server-names
~W
also –content-disposition to get the “real” file names rather than “X2c2@#$”
wget –content-disposition -i file.txt -trust-server-names
WOW, I did without the –trust-server-names…. your way is so much better, thanks!!!
Thanks a lot for sharing these books.
wow what a gift. really thanks a lot.
Thanks for sharing this, Eric!
Thanks for sharing!!
Amazing ! Thanks for sharing (Y)
Excellent!!! Thanks for all the resources!
Many thanks sir
Getting this error when running the PS script. I’m not really an expert, can someone help?
Unexpected token ‘in $books’ in expression or statement.
At D:\workdir\Bin\DownloadAll.ps1:22 char:25
+ foreach ($book in $books <<<< ) {
+ CategoryInfo : ParserError: (in $books:String) [], ParseException
+ FullyQualifiedErrorId : UnexpectedToken
I am also getting this error
Check the PS version you are using. Invoke-WebRequest is not supported in Version 2.0
same!!!
also – what are “Real Names” vs “2sFbabc” etc.? (or how to rename)
I ran into this, too.
The issue is that “foreach” is an alias for “foreach-object” in PowerShell 2.0 (I’m still running Win7 x64).
There must be something “embedded” in the original script. I copied a foreach statement from one of my scripts then edited it and got past that error.
I then hit an error with Invoke-WebRequest not being a valid cmdlet.
I verified that was added in PS 3.0, so I’m a version behind.
I’d suggest make sure you’re running at least 3.0 ($PSVersionTable.PSVersion to find out) and then try the script.
The original “foreach” might work then.
Same here, did you figure this out?
Yes, upgrading to version 5 resolved this issue. (Apparently 4 works, too)
Those versions added the invoke-webrequest cmdlet.
I also found it best to run from PS command line. Some shells (I use PowerShellPlus) may not have the library updated and are not reading the PS version underneath.
This happened to me because I had version 2 of PowerShell running on Windows 7.
I went here: https://www.microsoft.com/en-us/download/details.aspx?id=40855 to update to version 4 and after that it worked, although I did have to create the c:\Downloads\ebooks directory manually when the script started throwing directory not found errors.
I’m getting the same message. Trying to figure it out.
I am getting the same thing.
Thanks for sharing 😀
Many Thanks for Free Reads!
Nice sharing!
Nice change of pace, and it is greatly appreciated.
Use jdownloader to load all
I am overseas now and can’t download right now. How long does this deal last?
Thank you!
Thanks a ton bro. You are the veritable Eric “Bookman”. Thanks for being around for us.
BTW, a small unsolicited suggestion to avoid the confusion among some readers here:
Instead of “Giving Away MILLIONS of FREE Microsoft eBooks”, how about using “Giving Away MILLIONS of copies of FREE Microsoft eBooks”…?
Thank you, Microsoft, you are always my favorite.
Leela Mohan P
Is there a way to download only PDF files using the PS script? current one downloads everything! (same book in all formats)
Awesome. Thanks for sharing.
Hi Eric, I mentor a number of people (developers especially) and have shared this with a them so they can find books they are interested in. The SQL Server books will be particularly useful I think.
Thanks
Put what you can of the above eBooks in the Windows Store’s Books section.
Really great initiative, but why aren’t all books in epub/mobi?
Much appreciated! Thanks!
Thanks for doing this again.
Thanks for sharing the books Eric,
Amazing collections of books,
If Possible please add some Exchange books as well.
This is a great one infact im imoressed…but no ebooks for MVC,WCF WEB service,Web api for developers
Thank you for all this knowledge. It is much appreciated.
Thank you!
Excellent guidance hats off.
Like a treasure, thanks, thanks thanks!
Awesome thank you!!!
I added this to the script to download only PDFs:
if ($title -like “*.pdf”)
{
Invoke-WebRequest $book -OutFile $saveTo
}
Please share the complete script which you have used to save the ebooks.
txt with Google addon chrono downloader
awesome
wget -qO- http://ligman.me/2sZVmcG | xargs wget –content-disposition
Thank you very much for sharing all this nice collection !
Thank you so much for the collection of eBooks!
If I may, the link for the “Skype for Business User Tips” is going to a 0kb file so perhaps that link can be removed because as you said the author may have changed their mind about making it freely available.
Thanks again!
I guess probably due to so many people getting the books, the PS script kept erroring out (server response 503). So I hardened it so I could run it multiple times safely. Here is my updated script:
###############################################################
# Eric Ligmans Amazing Free Microsoft eBook Giveaway
# https://blogs.msdn.microsoft.com/mssmallbiz/2017/07/11/largest-free-microsoft-ebook-giveaway-im-giving-away-millions-of-free-microsoft-ebooks-again-including-windows-10-office-365-office-2016-power-bi-azure-windows-8-1-office-2013-sharepo/
# Link to download list of eBooks
# http://ligman.me/2sZVmcG
# Thanks David Crosby for the template (https://social.technet.microsoft.com/profile/david%20crosby/)
###############################################################
$dest = “C:\Downloads\ebooks”
if( -not ( Test-Path $dest ) )
{
New-Item -Path $dest -ItemType Directory
}
# Download the source list of books
$downLoadList = “http://ligman.me/2sZVmcG”
$bookList = Invoke-WebRequest $downLoadList
# Convert the list to an array
[string[]]$books = “”
$books = $bookList.Content.Split(“`n”)
# Remove the first line – it’s not a book
# $books = $books[1..($books.Length -1)]
“retrieved a list of $( $books.Length ) books”
# $books # Here’s the list
# Download the books
foreach ($book in $books)
{
if( $book -and $book.Length -gt 0 -and $book.SubString( 0, 7 ) -eq ‘http://’ )
{
}
else
{
“…. skipping, line not book ‘$book'”
continue
}
try
{
$hdr = Invoke-WebRequest $book -Method Head
}
catch
{
“…. error retrieving header for $book”
continue
}
$title = $hdr.BaseResponse.ResponseUri.Segments[-1]
$title = [uri]::UnescapeDataString($title)
$saveTo = Join-Path $dest $title
if( Test-Path $saveTo )
{
“skipping… $saveTo”
}
else
{
try
{
Invoke-WebRequest $book -OutFile $saveTo
}
catch
{
“…. error retrieving $saveTo ($book)”
}
}
}
What version of PowerShell are you running? I believe I’m on 2.0 and this script bombs. Invoke-WebRequest doesn’t work. I see there is Power Shell 3, 4, and 5. Which one should I upgrade my PC to?
Thanks,
Why does Santa come in July?
Thank you for posting these
Quite Useful. Thanks for sharing. God bless.
In addition to direct download, publishing these in the Windows Store would be fantastic.
Wow, This is gold mine for me.
Thanks!
Hi Eric, many thanks for all these eBooks. One thing I notice however is no download links to Exchange ones yet? Thanks, Dave.
Added a minor improvement to the download section. I needed to resume this at one point.
I’m sure some PS gurus can optimize this. The -notcontains is a little slow but I’m patient and didn’t have more time to spend on it.
Also, jsut becareful, it only checks on the name of the file, not the content. I just deleted that last file that was downloaded and ran again.
$downloadedbooks = Get-ChildItem -Path $dest -Name ‘*.*’ -File
# Download the books
foreach ($book in $books) {
$hdr = Invoke-WebRequest $book -Method Head
$title = $hdr.BaseResponse.ResponseUri.Segments[-1]
$title = [uri]::UnescapeDataString($title)
$saveTo = $dest + $title
if ($downloadedbooks -notcontains $title) {
Invoke-WebRequest $book -OutFile $saveTo
} else {
Write-host “Already Downloaded -” $title
}
}
Thank you
Great resource thanks 🙂 Unfortunately, Looks like “Windows 10 Tips and Tricks” is corrupted.
curl ‘https://blogs.msdn.microsoft.com/mssmallbiz/2017/07/11/largest-free-microsoft-ebook-giveaway-im-giving-away-millions-of-free-microsoft-ebooks-again-including-windows-10-office-365-office-2016-power-bi-azure-windows-8-1-office-2013-sharepo/’ | egrep ‘<a href="https?://ligman.me/' | sed 's|.*href="http://ligman.me/\([^"]*\)".*|\1|' | while read id; do aria2c http://ligman.me/$id &; done
try this for path : ‘$dest + $title’ and for $dest just change it to a folder of your choice
A great and FREE way to learn on some stuff if you want to get Certified!
Skype for Business User Tips & Tricks for Anyone_REV03
Windows 10 tips and tricks
These two files seem to be empty and I can’t seem to open them. Just thought i should let you know!
I’ve always meant to download these and finally got around to. Thank you so much for these!!!
Running into the same problem as Nikhil Sapre. The token $book is not defined anywhere, and the script shuts down when it hits line 22.
thanks for the eBooks, though no auto download link
This is fantastic, thank you for an amazing resource set!
Two broken links I found:
Windows 10 Tips and Tricks
Skype for Business User Tips & Tricks for Anyone
My only complaint is that some of the file names aren’t very descriptive, and the script just puts them in one giant folder. So, I rewrote the script a little to sort them into folders by category, but it requires having a bunch of smaller lists sorted by category instead of one giant list. All in all, it was a nice little exercise in PowerShell, so thanks for that. And thanks for the books!
Hi Rebecca,
Are you willing to share that script?
+1
Thank you Eric!
There is not a millions of them? Is the word ‘million’ just a saying?
Thanks a lot!
That’s why Microsoft is always ahead.
Disseminating content and instructing people.
Pleasure and satisfaction in working with Microsoft always.
Thank you Eric Ligman 😉
Can i download all of them at once?
Thank you so much! This is a great wealth of information!
Thanks for sharing. I was interested in Excel functions.
Thank you so much for these.
My colleagues and I from our Infrastructure team will be happy to go through these docs!
And a massive thanks for the PowerShell script to download them all in one easy way, saves us hours of downloads and transfers.
Programming Windows 8 Apps??? They were giving that away free 5 years ago when Windows 8 came out. How much of an addressable market is using Windows 8 anymore?
Here is for those of us that use Linux and OSX 🙂 It will give you all the links for the .PDF files. I am too lazy to make it more complex but you can feed it to your download manager or modify it to download all of them for you 🙂
curl –compressed -sD – -L -e “http://google.com” -A “Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)” “https://blogs.msdn.microsoft.com/mssmallbiz/2017/07/11/largest-free-microsoft-ebook-giveaway-im-giving-away-millions-of-free-microsoft-ebooks-again-including-windows-10-office-365-office-2016-power-bi-azure-windows-8-1-office-2013-sharepo/” | grep -E -i “PDF” | sed -n ‘s/.*href=”\([^”]*\).*/\1/p’
One of the links, supposedly pointing to a PDF actually points to an ASPX file.
Dynamics – Import Contacts into CRM
http://ligman.me/1m8yCMD
Unable to download these ebooks. The server isn’t accessible or the links are broken. Tried downloading individually and through the powershell scripts too. Please fix them up. This is a lovely collection of ebooks.
A great resources. Thanks for sharing!
Hi
I had to close down my laptop before leaving so I have a few that I need to download . To avoid downloading the same doc twice I have added
if(![System.IO.File]::Exists($saveTo)){
# file with path $path doesn’t exist
Invoke-WebRequest $book -OutFile $saveTo
}
Unfortunately, the server appears to be down this morning.
Anybody needing a script that will run on PowerShell V2, I wrote this one and it seems to work:
Import-Module BitsTransfer
$url = ‘http://ligman.me/2sZVmcG’
$dest = ‘C:\Downloads\ebooks2\’
$checkDir = Test-Path $dest
if ($checkDir -eq $False)
{
New-Item -Path $dest -ItemType Directory
}
[System.Net.ServicePointManager]::DefaultConnectionLimit = 1024
$r = [System.Net.WebRequest]::Create($url)
$res = $r.GetResponse()
$respStream = $res.GetResponseStream()
$sr = New-Object System.IO.StreamReader $respStream
$bookList = $sr.ReadToEnd()
$bookListStr = $bookList.ToString()
[string[]]$books = “”
$books = $bookListStr.Split(“`n”)
$books = $books[1..($books.Length – 2)]
Write-Output $books[0]
foreach ($book in $books)
{
$rBook = [System.Net.WebRequest]::Create($book)
$rBook.Method = “HEAD”
$respBook = $rBook.GetResponse()
$rBookURI = $respBook.ResponseUri.AbsoluteUri
$file = New-Object System.URi $rBookURI
$filename = $file.Segments[-1]
$title = [URI]::UnescapeDataString($filename)
$saveto = $dest + $title
#$webClient = New-Object System.Net.WebClient
$status = ‘Getting…’ + $title
Write-Output $status
#$webClient.DownloadFile($book, $saveto)
Start-BitsTransfer $book $saveto
Write-Output “Done!”
$respBook.Close()
}
$completeMsg = ‘All files downloaded to: ‘ + $dest
Write-Output $completeMsg
$res.Close()
$respStream.Close()
$sr.Close()
Thank you for this script!
This script works for me! Thanks much Sten!
Thanks, it’s working fine for windows 7
Thanks a Ton Eric..
Thank You!
i am running powershell 5 and unable to download all books, script hangs at
PS C:\WINDOWS\system32> foreach ($book in $books) {
>> $hdr = Invoke-WebRequest $book -Method Head
>> $title = $hdr.BaseResponse.ResponseUri.Segments[-1]
>> $title = [uri]::UnescapeDataString($title)
>> $saveTo = $dest + $title
>> Invoke-WebRequest $book -OutFile $saveTo
>> }
can someone help please?
Good jobs! Thank you! regards
Awesome collection, I happily add to the thanks already given.
I only wanted the non-MOBI / non-EPUB files, so here’s my little contribution:
# Download the books
$skippers=@(‘EPUB’,’MOBI’)
foreach ($book in $books) {
$hdr = Invoke-WebRequest $book -Method Head
$title = $hdr.BaseResponse.ResponseUri.Segments[-1]
$title = [uri]::UnescapeDataString($title)
if ($null -ne ($skippers | ? { $title -match $_ }))
{
“Skipping ” + $title
}
else
{
“Saving ” + $title
$saveTo = $dest + $title
Invoke-WebRequest $book -OutFile $saveTo
}
}
Oops, “contribution to the powershell script”, I left that little detail out.
Also, make it
$skippers=@(‘.EPUB’,’.MOBI’)
so you don’t miss out on some of the “mobile” titles.
Ok, one more time, and while I’m still awaiting moderation. Sorry for the noise, I’d edit / delete if I could.
For this powershell change, it’ll skip the skippers extensions, and let you restart and skip the downloaded ones so you can try again in case of error. If you do restart, look in the directory for 0-sized files and delete them.
# Download the books
$skippers=@(‘\.EPUB’,’\.MOBI’)
foreach ($book in $books) {
$hdr = Invoke-WebRequest $book -Method Head
$title = $hdr.BaseResponse.ResponseUri.Segments[-1]
$title = [uri]::UnescapeDataString($title)
if ($null -ne ($skippers | ? { $title -match $_ }))
{
“Skipping ” + $title
}
else
{
$fulldest = $dest + $title
if (Test-Path $fulldest)
{
“Skipping previously downloaded ” + $title
}
else
{
“Saving ” + $title
$saveTo = $dest + $title
Invoke-WebRequest $book -OutFile $saveTo
}
}
}
This works great to download PDF files alone. Many thanks!!
Están en español o solo en inglés?????
Download all PDFs (make sure popups allowed):
tags = document.getElementsByTagName(‘a’)
i = 0;
tags = Array.from(tags).filter(a => a.text === ‘PDF’).map(a => a.href);
console.log(tags);
let inteval = setInterval(function() {
window.open(tags[i], ‘_blank’);
console.log(tags[i]);
i++;
if (i >= tags.length) { clearInterval(interval) }
}, 1000);
To download all files at once, look for a piece of software called Internet Download Manager and details on how to install the Chrome extension that comes with it. I just downloaded 50+ PDF’s all at once with it.
I cant for the life of me get the powershell script to work. I get this error….anyone have an idea on a fix? I’ve manually created the directory, and even tried changing the $downloadlist variable to point to the .txt list directly instead of getting it online. No dice 🙁
Unexpected token ‘in $books’ in expression or statement.
At C:\temp\Eligman_DownloadAll_PowerShell.ps1:22 char:25
+ foreach ($book in $books <<<< ) {
+ CategoryInfo : ParserError: (in $books:String) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnexpectedToken
How about if you only run this part:
——
$bookList = Invoke-WebRequest $downLoadList
# Convert the list to an array
[string[]]$books = “”
$books = $bookList.Content.Split(“`n”)
——
and see if the string array can actually be created successfully? 🙂
Looks like the party is over. Getting mostly 503 errors, timeouts, etc after http://ligman.me/2sFbVq3
Are the the links time-bombed, or did the authors start pulling their content?
Due to high demand volumes, the location where the eBooks link list was stored was exceeding maximum concurrent user counts, which meant 503 errors for additional people trying to get in then. I have added an updated list location in my post for both the eBooks link list and the PowerShell scripts as well.
The full list of errors once it was done downloading. Anyone know what these mean or if it didn’t download some of the books? Thanks again for the books!
Invoke-WebRequest : The remote server returned an error: (503) Server Unavailable.
At line:23 char:12
+ $hdr = Invoke-WebRequest $book -Method Head
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebExc
eption
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
Invoke-WebRequest : Invalid URI: The hostname could not be parsed.
At line:23 char:12
+ $hdr = Invoke-WebRequest $book -Method Head
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Invoke-WebRequest], UriFormatException
+ FullyQualifiedErrorId : System.UriFormatException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
Invoke-WebRequest : Invalid URI: The hostname could not be parsed.
At line:27 char:5
+ Invoke-WebRequest $book -OutFile $saveTo
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Invoke-WebRequest], UriFormatException
+ FullyQualifiedErrorId : System.UriFormatException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
Thank you very much for sharing! Invaluable contents.
Hello Sir! Thanks for sharing such a gift! Amplified the same to Microsoft Saudi and its reach to partners and customers!
Great Sharing!
Very useful! Thanks 🙂
Windows 10 is a disaster. Microsoft might as well have rammed a virus down our throats. They only gave us a month probation with it before it was too late to switch back to Windows 7. Win10 constantly crashes with the blue screen of death, which became much more frequent with the Creators edition. It is slow and sluggish. To add insult to injury, the so-called solutions Microsoft offer are the most basic and obvious, with the assumption that we are all incompetent. I have a large HD and huge amount of RAM, and regularly perform scans. I am also a qualified and experienced IT technician and trainer since 1992, so Microsoft please stop patronizing us and blaming viruses, spyware and our PC’s and how we use them and admit that Windows 10 is another major cock-up by Microsoft.
Describing your own issues is fair enough, but two things I will point out.
Firstly, those are your issues and not those of everyone, so don’t try to describe them as such.
And this isn’t the place for it.
Must everything with even a mention of Windows 10 attract petty and immature rants like this.
Grow up and act like the apparent professional you claim to be.
Ian,
you wrote: “Firstly, those are your issues and not those of everyone, so don’t try to describe them as such.”
Glenn’s experience of Windows 10 matches my experience of Windows 10.
So we now have a sample population of N=3 (Glenn, Ian, Michael) and 2/3rd of us have had a bad run with Windows 10.
But there must be more people upset with Windows 10 than just Glenn and I since you wrote:
“Must everything with even a mention of Windows 10 attract petty and immature rants like this.”
Your carefully-considered observation tells me there are many more people who have had poor experiences with Windows 10. … So poor that they take the time to describe their plight while full-well realizing that Microsoft will not change.
–Michael Carr, Dallas, TX, USA
Thank you!!! Got them all, and I am going to share it with my team.
Thank you!
Thank you for sharing treasures with us.
It’s the most happiest thing on Monday morning
Thank you very much !!!
Thanks for sharing. I’m looking at learning something new – great!
Excellent stuff…Very useful collection of resources..thanks for sharing…
Thanks for share this, however i m getting “failed Network error” while downloading the files . Was the files for limited period only?
Am getting the same thing with about 1/3 of the files too …
Thanks Eric for these ebooks! Tons of info here.!
Hope there’s more to come for PowerBI!
I am using the powershell script to download the books and it seems to be running fine even as I write this. But one problem is that it seems to be using different formats of the book for each download. Is there a script that downloads the PDF version of each of the books? That is the version I prefer.
Just add
Like this:
# Download the books
foreach ($book in $books) {
$hdr = Invoke-WebRequest $book -Method Head
$title = $hdr.BaseResponse.ResponseUri.Segments[-1]
$title = [uri]::UnescapeDataString($title)
$saveTo = $dest + $title
if ($saveTo -like “*.pdf”) { Invoke-WebRequest $book -OutFile $saveTo }
}
Just add “if ($saveTo -like “*.pdf”)”
Like this:
# Download the books
foreach ($book in $books) {
$hdr = Invoke-WebRequest $book -Method Head
$title = $hdr.BaseResponse.ResponseUri.Segments[-1]
$title = [uri]::UnescapeDataString($title)
$saveTo = $dest + $title
if ($saveTo -like “*.pdf”) { Invoke-WebRequest $book -OutFile $saveTo }
}
if you actually read the comments, someone already accomplished (AND PROVIDED THE SCRIPT) exactly what you are looking for!!!!
Thanks for sharing this. I will put it to good use.
wonderful
This links does not work for me http://ligman.me/2sZVmcG
Hi all
I’m trying to use the Powershell script to download all the books but I’m getting an access denied error message.
I can manually get to the URL that’s in the script so I don’t think that’s the problem.
I’ve also change the URL in the code but I’m still getting the same error.
Anyone any ideas?
You should be good now. Due to the high demand, we were exceeding simultaneous user limits where I had that file, so I have posted an updated version in my post that should be able to handle the traffic much better, so please feel free to use that one instead. Thank you.
Thanks! Awesome resources!
One link I was interested in does not work though, something wrong with that one? It’s the “Outlook Web App Keyboard Shortcuts”, Link: http://ligman.me/1xzdEtT
Thanks, very nice :))
Your attempt to buy my love and affection has worked sir.
Wow! This is something a lot of people will be excited about. Super information for the hungry!
Hi, Eric, Thank you so much for all these great resources. I did find one glitch, though. There are two links to Microsoft PowerPoint 2016 for Mac Quick Start Guide and none for Microsoft PowerPoint 2016 Quick Start Guide (for PC). I’d love to have the PC one, if possible. I have a lot to learn! Have a great day! 🙂
Thanks, Karen, for the feedback in your comment. If you go to the post now, you will find that the duplicate entry for the PowerPoint 2016 Quick Start Guide for Mac has been removed and the PowerPoint 2016 Quick Start Guide for PC is now there. Enjoy!
Thank you for doing this ebook offer again this year. I downloaded the books last summer. Which titles are new to this year?
I’m unable to get the books list, it’s reporting an error 503.
Service Unavailable
HTTP Error 503. The service is unavailable.
The 503 errors that were coming through should be resolved at this time. Thanks for bringing it to my attention.
You probably already know, but the site from which both the txt and the script are distributed (http://www.mssmallbiz.com) is down. This thing was successful, apparently
The 503 errors that were coming through should be resolved at this time. Thanks for bringing it to my attention.
Link: http://ligman.me/2sZVmcG not working – returning “HTTP Error 503. The service is unavailable.”
Is anyone else getting this?
Thanks
The 503 errors that were coming through should be resolved at this time. Thanks for bringing it to my attention.
Hi,
I receive a Server Error when I try to download the Link List or PowerShell Script.
Can you maybe tell me what I do wrong?
Br, Kevin
The 503 errors that were coming through should be resolved at this time. Thanks for bringing it to my attention.
I have added a new PowerShell script link and eBook list link to the post that should not encounter the traffic issues you experienced with the originals. If you using the PowerShell script to download the eBooks, just update the URL for the eBooks list inside the original script from the one in there to http://ligman.me/2tk1D2V and you should be good to go. Or, you can simply use the updated PowerShell script link in my post under “NEW OPTION” and I have already updated the links within it. Thanks again.
First, THANK YOU!!!! Fantastic resource.
Second, because it appears many people have stumbled upon this over the weekend, it’s nearly gone viral and it would appear that the server that serves the “http://www.mssmallbiz.com/ericligman/Key_Shorts/Ligman_eBooks_2017.txt” file is “not happy” and is throwing 503’s. Is there another source for the TXT file that we could use, or should we just be patient as the storm passes?
Thank you again!!
The 503 errors that were coming through should be resolved at this time. Thanks for bringing it to my attention.
I have added a new eBooks list link to the post that should not encounter the traffic issues you experienced with the original. If you using the PowerShell script to download, just update the URL for the eBooks list from the one in there to http://ligman.me/2tk1D2V and you should be good to go. Thanks again.
Thank You…
PS script link is “Service Unavailable”.
The 503 errors that were coming through should be resolved at this time. Thanks for bringing it to my attention.
I just keep getting an HTTP 500 error request when trying to get the list of books. Any idea what’s going on?
The 503 errors that were coming through should be resolved at this time. Thanks for bringing it to my attention.
Looks like the site hosting the link list and powershell script are down, getting 503 errors trying to hit those.
The 503 errors that were coming through should be resolved at this time. Thanks for bringing it to my attention.
Many of the Office documents are unavailable. Please fix.
Wasn’t able to download all the ebooks I was wanting like Publisher, WordArt, & Word. Any help would be greatly appreciated. Thanks, Dan
The 503 errors that were coming through should be resolved at this time. Thanks for bringing it to my attention.
Thanks You very much…
wow wow and wow. Great collection of books.
Unable to download either the powershell script or the list of all links. Any alternate links for them ?
The 503 errors that were coming through should be resolved at this time. Thanks for bringing it to my attention.
The 503 errors that were coming through should be resolved at this time. Thanks for bringing it to my attention.
thank you very very much 😉
I have just added “NEW OPTION” links above to both the eBook list and the PowerShell script which have higher bandwidths on them since the high demand coming through recently has been hitting the maximum simultaneous users limits recently. These NEW OPTION links should help relieve that bottleneck so you do not experience that issue anymore. Thanks again for the fantastic interest in the giveaway!
I have just added a more advanced PowerShell script to the post to allow several enhanced functions while downloading, such as: Adding a progress message (to see where you are at in the process), check for existing files to avoid double download on interruption, check for file size to know to re-download if a file is interrupted mid-download, error message if file transfer fails, log file with messages option, and more. Thanks to Robert Cain for the contribution. I have also modified this script to use the updated eBook list file, so it should help avoid the exceeding maximum simultaneous users issue that was happening earlier today due to high levels of demand all at one time.
Really appreciate this free and importatnt gift.
Many thanks and bless you.
Many thanks Eric for these great resources, it will surely go along way in helpin me and the team.
Thank you for all books , I love it 🙂
Woot, thank you
Thanks again for such a great repository of information! I think it is imperative to spread vast amounts of knowledge freely in order to increase opportunity and wealth in the masses. I did find one thing wrong though with the powershell script which was that all of the WebRequests need to have the -usebasicparsing flag enabled in order for them to work in Windows 10.
Own Your Future: Update Your Skills with Resources and Career Ideas from Microsoft®
Create Your First CRM Marketing Campaign
Seems PDF version of above two files are corrupted. Unable to open the file after successful download.
Thanks You!
To download all, use LinkClump chrome extension, hold right mouse button and drag over all the links above. It’ll go to your downloads folder but you can just filter by extension and zip it all together.
Sorry I’m not good at powershell.
Unexpected token ‘in $books’ in expression or statement.
At C:\users\bbob\downloads\ELigman_DownloadAll_Powershell2.ps1:55 char:25
+ foreach ($book in $books <<<< )
+ CategoryInfo : ParserError: (in $books:String) [], ParseException
+ FullyQualifiedErrorId : UnexpectedToken
Well to answer my own question — upgrade to Powershell 4.0.
“This happened to me because I had version 2 of PowerShell running on Windows 7.
I went here: https://www.microsoft.com/en-us/download/details.aspx?id=40855 to update to version 4 and after that it worked, although I did have to create the c:\Downloads\ebooks directory manually when the script started throwing directory not found errors”
Thank u so much sir for this great resources, but download links of some books are not working. Like links of all the books that contains shortcut keys of softwares are not working. Please sort it out.
for linux user only need :> wget -i file_name
Just Awesome collection. Thanks for posting
Thank you Eric!
I see there’s a Powershell script in the comments below.
I created my own before realising one existed.
The one I’ve put together is pretty basic but does the job.
It might be easier to follow for some of the Powershell amateurs (like me!):
Clear
$Site = “https://blogs.msdn.microsoft.com/mssmallbiz/2017/07/11/largest-free-microsoft-ebook-giveaway-im-giving-away-millions-of-free-microsoft-ebooks-again-including-windows-10-office-365-office-2016-power-bi-azure-windows-8-1-office-2013-sharepo/”
$LinkURLs = (Invoke-WebRequest -Uri $Site).Links.Href | Where-Object {$_ -Match “ligman.me”}
$LinkURLs
ForEach ($LinkURL in $LinkURLs) {
$LinkURL
$WebSiteLink = Invoke-WebRequest -Uri $LinkURL -MaximumRedirection 0 -ErrorAction Ignore
$FileName = (($WebSiteLink.Headers.Location) -Split “/” | Select-Object -Last 1)
$FileName
Invoke-WebRequest -URI $LinkURL -OutFile $FileName
}
Thank´s, for this big gift. I have a question, there are spanish resourses any where??
Thank´s again.
Pablo Livov
AWESOME!! Thank you!
Thanks for the downloadables! I got a few. I would put the HDInsight eBook in the “Cloud” category rather than SQL Server category, however. I’ve always used HDInsight VMs for Hadoop stuff.
Download them ALL 🙂
Use the Chome’s plugin uSelect iDownload and download all files in just seconds 🙂
Trick – Reduce the font size of your browser and select only the format portion of Links, Your selection will preserve so you can scroll down and keep selecting them all
Open the chrome web app store & search the Plug in Name – uSelect iDownload
Enjoy – Happy Learning 🙂
Thanks kamlesh Asdeo.
Great work
Thanks 🙂
Great! Thank you for doing that.
Thanks very much, much appreciated!!!
Thanks Eric, got them all using the PS script!! 🙂
Thanks a lot for sharing this worth resource.
Stay Blessed.
Do you have any Document for Linux 🙂 never mind
Thank you so much Eric. Total of 362 books and 3.43GB size.
¿Todos en inglés?
If your going to use the power shell script, ensure that C:\Books exists before running the script.
Thanks so much! Bless you!
How do you download all of these ebooks at one time?
Thanks for the e-books!
Wow! That’s like a treasure you opened up for many out there! Thanks a lot!
Mr. Eric Ligman
Thanks for your in formation but this PDF (Import Contacts into CRM) I can not visualize it and I am interested in it, please, you can send it to me.
Greetings.
Great… Thanks for your good thought to share the useful details to all who are interested…..
thank you!
Why are there no visual studio books? Things like MVC, MVVM, angular, .net web etc?
Great! Thank you so much!
Windows 10 Tips and Tricks – file unable to open –
WOW…
thanks to share this treasure
is that possible to add Angularjs 1.x and Angular 2 step by step developer guide along with nodejs. clearly, it would be better if you share Front end development related resources on angularJs 1.x and Angular 2
Thank you
Thank you!
Looking forward for your certification books giveaway 🙂
Thank you for sharing the knowledge Library.
Nice one dud, much appreciated. 🙂
WOW!!!!! 1000000000000000000 thank you for sharing all this information with us! 🙂 🙂
Perhaps it would be wise to include a SHA-256 hash of each file next to it for security’s sake?
The way I count, that’s 361 free eBooks, not “millions,” but still pretty sweet.
Thanks for the comment, Dave, and sorry if there is any confusion. My goal with this offer is to give away millions of Microsoft ebooks for free to people who can use them and find them helpful. The “millions” being how many I can actually give away in this promotion, not the number of unique titles within the list. For example, this year there were over 1 million ebooks given away in the first 24 hours, and then we were over 2 million before the 48 hour mark. As of right now, we have surpassed 14 MILLION eBooks given away free so far in this giveaway. So as the title says, I am giving away millions of Microsoft eBooks for free. Again, sorry if there was any confusion in that. I hope you enjoy the eBooks that are available.
In other words, if I wrote a book and gave away 1 million copies of it how many books have I given away, 1 or 1 million? 🙂
The answer of course is zero, because I’m not as generous as these authors to be giving away free books or as kind as Eric to be promoting / helping with it!
Thanks for sharing Eric.
Super
U done a good job & made others to access easily
Thank you so much !
Oh God…! Superb Eric Ligman.
it’s a great initiative and I must say thank you for all these authenticate documents.
I would request you to share Microsoft Exam 70-532 material too if you have any in place 🙂
Hi all, first of all, thank you so much, Eric Ligman. Secondly, looking at the conversations in the comments section here’s my little contribution. I’ve modified and updated the Ps script little bit, making it convenient for downloading the content. The script now skips the XPS, MOBI and EPUB files and downloads only the PDF versions of the files. And please use high-speed internet/broadband for downloading. Thanks!
#######################################################################
$dest = “C:\Downloads\Microsoft\ebooks”
if( -not ( Test-Path $dest ) )
{
New-Item -Path $dest -ItemType Directory
}
# Download the source list of books
$downLoadList = “http://ligman.me/2tk1D2V”
$bookList = Invoke-WebRequest $downLoadList
# Convert the list to an array
[string[]]$books = “”
$books = $bookList.Content.Split(“`n”)
# Remove the first line – it’s not a book
# $books = $books[1..($books.Length -1)]
“retrieved a list of $( $books.Length ) books”
# $books # Here’s the list
# Download the books
$skippers=@(‘\.EPUB’,’\.MOBI’,’\.XPS’)
foreach ($book in $books) {
try
{
$hdr = Invoke-WebRequest $book -Method Head
}
catch
{
“…. error retrieving header for $book”
continue
}
$title = $hdr.BaseResponse.ResponseUri.Segments[-1]
$title = [uri]::UnescapeDataString($title)
if ($null -ne ($skippers | ? { $title -match $_ }))
{
“Skipping ” + $title
}
else
{
$saveTo = Join-Path $dest $title
if( Test-Path $saveTo )
{
“skipping… $saveTo”
}
else
{
try
{
Invoke-WebRequest $book -OutFile $saveTo
}
catch
{
“…. error retrieving $saveTo ($book)”
}
}
}
}
#######################################################################
P.S: Besides PDF files, it downloads DOC files as well.
Wowwwiiiii Ty
Thanks, Waseem. Nice little additions.
Add this after Line 71 for .PDF file downloads ONLY.
if (!$title.ToLower().EndsWith(‘.pdf’)) { continue }
-Chris
As already stated this is easier on Linux… Download _all_ the books using Ubuntu:
sudo apt -y install wget && wget –content-disposition -i http://ligman.me/2sZVmcG
Explanation (since none given on other answers):
Install wget program with sudoer rights with automatic yes to prompts: sudo apt -y install wget
And after completed successfully: &&
Get all the files listed in the URL and preserve the file names (even though redirecrs): wget –content-disposition -i http://ligman.me/2sZVmcG
Also works if you have bash installed on Windows 10!
Here’s a 1liner (71 characters) to download all the ~380 books saving them as appropriate filenames:
curl -Ls ligman.me/2tk1D2V|grep :|xargs wget –trust-server-names
Need to have a linux system to run that from or cygwin or the win10 ubuntu integration stuff installed in windows
to download all the links you can use ” chrono download manager” an extension from chrome. Works fine with me.
Thanks for the tip JC.
Many Thanks Eric Ligman for all the great resources
script is working for me 🙂
Thanks
Many Thanks for sharing please provide Microsoft active directory book with images.
I am trying option 2 and getting below error. Any help is truly appreciated.
PS C:\Study\MS> .\ELigman_DownloadAll_Powershell21.ps1
Unexpected token ‘in $book’ in expression or statement.
At C:\Study\MS\ELigman_DownloadAll_Powershell21.ps1:55 char:24
+ foreach ($book in $book <<<< )
+ CategoryInfo : ParserError: (in $book:String) [], ParseException
+ FullyQualifiedErrorId : UnexpectedToken
Really thanks for sharing this to us.. I hope this will be really helpful
Thank U Appreciate it .
That’s Amazing !!! Thanks Eric 🙂
TYVM FOR THE BOOKS!
But… Very sad because there are no Exchange books. Title says Exchange but alas… no Exchange.
:'(
Next are some errors with download links on this page.
#1. Book: Import Contacts into CRM. The PDF download link does not direct download to any file, but instead goes to a Dynamics 365 help and training page. This causes the script to freak out a little. So it’s not really a ‘book’ per se.
#2. Book: Microsoft PowerPoint 2016 Quick Start Guide. The link was duplicated to the Mac version originally but was fixed on this page, however the duplicated link was left in the URL list file (even though the correct link was added to the bottom of it). Therefore script indicates a false positive duplicate because the correct file is downloaded later on in the script.
#3. Book: Security Incident Management in Microsoft Office 365. PDF link is doubled up on this page and also the URL list file. Causes script to indicate false positive duplicate.
#4. Book: Introducing Windows Server 2012. This problem is the worst one, not just being nit-picky, like the previous. 😉 The site and URL list file include multiple MOBI and EPUB download links to different files (and different books, actually) using the same file name (and different file sizes). The 2 book versions are RTM / Based on Beta. If you use the script to download, you will wind up getting the Based on Beta version of the book even though most people would probably prefer the (larger) RTM version. Ideally the source file names should be renamed to indicate that these are actually different books. Alternately the script could be updated to check for file size smaller than instead of not equals (if ($dlSize -gt $fileSize).
Here’s a script error (though not a big deal unless you’re OCD like me)… When I ran it, it was counting up to 362 books when there are only 361 download links (because of errors above, the actual # of files downloaded is 357 and should actually be 359). It appears that the source file is winding up with a blank line at the bottom of the array that is inadvertently counted in. Just need a small check / purge for blank entries before counting the array because the exception is being thrown when getting the header ($hdr = Invoke-WebRequest $book -Method Head) and this causes the final error output to indicate the previous book name ($Title hasn’t had time to reset) as a false positive error.
Thanks!
This is awesome! Thanks for sharing all these books which will help a lot.
Thanks for sharing . Useful Indeed. 🙂
Thanks for sharing. Very helpful.
Very good.
Hi Eric,
Can you post Version 2 of the Enterprise Cloud Strategy? I got a more update copy at Inspire but would like to get it in PDF.
Hi,
Anyone has study materials for the below exams by any chance?
Cloud Fundamentals: Exam 98-369/Course 40369A
Developing Microsoft Azure Solutions: Exam 70-532/Course 20532C
Implementing Microsoft Azure Infrastructure Solutions: Exam 70-533/Course 20533C
It is the path to be MCSA: Cloud Platform Certified, Cloud skills (these are the exams that i chose, you can choose other exams as they have multiple optional exams)
Appreciate if you can help me.
Thank you
Roupen
thanks a lot , cool, all the resources are great
Thanks a lot for sharing such a valuable resources.
Hello,
I see where Exchange is listed in the subject however I do not seem to be able to locate any Exchange resources (2013, 2016). Have I overlooked those subjects? Skype for Business Server would be appreciated too.
Nothing on Hyper-V?
Superb…Thanks a lot
Thank You!
Really i thank Mr.Eric ligman for publishing theese books, i had not interested in working computer but after Ur publish , i downloaded and start learning , using finally utilising to improve my knowledge and work.
Thank you for sharing this treasure! Appreciate the brave and strategic move
Thank you for the books… I shared the link with my co-workers and we all say Thank you.
Wonderful … Thanks simply.
No E-Books from Dynamics AX or Dynamics 365.
Dear Mr.Ligman,
Thanks much and this is truly a noble cause. With this giveaway scheme you offered, A life long Java Developer like me , even turned my eyes into MSFT & Azure. You are my hero. I got this thru WhatsApp forward. May God bless you and your family and Long Live MSFT. Muchas Gracias!!
Hi Eric,
I am not able to see any exchange server and skype for business server related book here.
Your help highly appreciable.
Thank You!
Thank you Eric for sharing this information! I love it!
Is there a similar site with these documents (or some of those documents) in French or another language?
I just can not understand why only four stars!!!! THX for sharing!!!
Thanks for such a generous gift. Spreading the good news and value to my team and organization as we speak.
These books are so old.
🙁
Thanks for sharing!!!!
It will be very useful to all.
Thanks a lot. Such amazing and terrific gives to us.so valuable docs these are . completely got benefits from all this . Thanks for sharing . 🙂
Thanks for those guts Eric…….
Powershell will help me a lot…..
Wonderful initiative
Thanks for the books. I downloaded all books by using Chrono (chorme browser) free extension . Just give the url link of Download icon in the given page it will start automatic download.Thanks again!!
Wow man, amazing. I can’t believe it. This page really exists without any scam!
Thank you so much for this tremendous gift.
There is no exchange server ebooks
Again, nothing much for Dynamics AX or Dynamics 365
C# Code for downloading all books
static void Main(string[] args)
{
var url = @”https://blogs.msdn.microsoft.com/mssmallbiz/2017/07/11/largest-free-microsoft-ebook-giveaway-im-giving-away-millions-of-free-microsoft-ebooks-again-including-windows-10-office-365-office-2016-power-bi-azure-windows-8-1-office-2013-sharepo/”;
var output = @”C:\temp\books”;
var config = Configuration.Default.WithDefaultLoader();
var document = BrowsingContext.New(config).OpenAsync(url).Result;
var table = document.QuerySelectorAll(“table”).First();
var rows = table.Children.First().Children.Skip(1);
foreach (var row in rows)
{
string subdirectory = string.Join(“_”,
row.Children[0].TextContent.Split(Path.GetInvalidFileNameChars()));
if (!Directory.Exists(Path.Combine(output, subdirectory)))
Directory.CreateDirectory(Path.Combine(output, subdirectory));
foreach (var link in row.QuerySelectorAll(“a”))
{
string fileName = $”{row.Children[1].TextContent}.{link.TextContent}”;
fileName = string.Join(“_”, fileName.Split(Path.GetInvalidFileNameChars()));
using (var httpClient = new HttpClient())
{
HttpResponseMessage responseMessage = httpClient.GetAsync(link.Attributes[“href”].Value).Result;
byte[] content = responseMessage.Content.ReadAsByteArrayAsync().Result;
File.WriteAllBytes(Path.Combine(output, subdirectory, fileName), content);
Console.WriteLine($”{fileName} saved”);
}
}
}
Console.WriteLine(“DONE!”);
}
Awesome work. Many thanks Eric and to all the publishers, distributors and (especially) authors of these books.
Thanks Eric. You absolutely Rock!!
Nice info. I have downloaded all books using chrono download plugin in chrome browser.
Thank Eri. 😉
Thank you, Eric, for sharing a copy of ebooks. Those are really a great collection. I’ll waste no time reading some of them.
You. Are. Awesome.
Thanks for this great sharing !
Chrono downloader is a best way out there to download all in just one shot – Its a chrome extension
WOW …
Really a good library …
And also very interesting topics here ………
Guess the giveaway ended – unable to download anything ;-(
Noting on Microsoft Intunes ? Admin Guide etc.
This is a great service I’ve used over the years. Thanks. One request would be to add more info about the book (Publisher, publish date, author) or a link to where we could read about the book before downloading. I know that’s more work on your part for something you offer at no charge, but if you’re looking for suggestions, it would make the list more helpful.
You sir, are awesome! Thanks so much for this.
Finally I got a push to dig into Azure! Thanks for sharing, Eric (though the “millions” seemed confusing)
I love it, Maggle.
Thanks, Eric, am much obliged.
Thanks for sharing this gold mine!
Everything is very open with a very clear clarification of the issues.
It was truly informative. Your site is very helpful.
Thank you for sharing!
Thank you for sharing, is there a resource here for building a team site on SharePoint?
You’re super, Eric!!! Thank you so much!! 😀