RSS

Category Archives: Windows

PowerShell – Book review of : Windows PowerShell Best Practices

Windows PowerShell Best Practices

Last week I completed PowerShell Deep Dives which got me excited again to read more about PowerShell. As such, I continued reading the next book on my reading list: Windows PowerShell Best Practices by Microsoft Scripting Guy Ed Wilson.

The book was released late January 2014 and is the most recent book about PowerShell that has been released to my knowledge. This means it includes PowerShell 4.0, Desired State Configuration DSC and references to Windows 8.1 and Windows Server 2012 R2.

In my opinion the book was very well written and contains a good mix of theory, sample scripts and “notes from the field” from many PowerShell specialists. The sample scripts are available for download at Technet Script Center.

The best practices that are described in the book are very recognizable and I had already adopted many of them based on the many great blog posts by the community. In the book they are all bundled and well explained including examples. Where the book really shines though in my opinion is that it describes how PowerShell is used in real-life, how it relates to many other processes within a company and what you need to consider.

I think this book is a must-have for anyone working with PowerShell. For those starting with PowerShell, I recommend first reading the books “Learn Windows PowerShell In A Month Of Lunches” and “Learn PowerShell Toolmaking In A Month Of Lunches” and then read this book.

Notes:

 
 

Tags: , , , , ,

PowerShell – Book review of : PowerShell Deep Dives

PowerShell_Deep_Dives

I’ve had the book PowerShell Deep Dives laying around since August 2013. I had read some parts of it because I follow many of the great PowerShell community members that contributed to it. But I hadn’t gotten to reading it completely yet until now.

The title of the book includes “deep dives” implies very deep technical content and I can assure you, this type of content is present in the book. some of the stuff I still need to wrap my head around to understand properly. On the other hand, other parts of the book are more simplistic which you might not expect from a deep dives book.

The book covers a very broad number of topics and technologies. What I liked is that the articles were written by professionals and community members that are specialized in or are very knowledgeable about this specific topic/technology.

As a result of having the broad number of topics and technologies, not all parts of the book might be relevant to you (especially as a deep dive). I found myself skimming over some parts later in the book since it is very unlikely it is or will become useful for me. This will differ from person to person though, so take a good look at the topics being covered in the table at the end of the article.

All in all it was a good read and I think I’ll use the book mainly as a reference for those times that I need the deep dive insights. The book can be ordered from by example Manning.com and all royalties go to charity: Save the Children

 

Part 1 PowerShell administration
1 Diagnosing and troubleshooting PowerShell remoting (Don Jones)
2 CIM sessions (Richard Siddaway)
3 Collecting and analyzing performance counter data (Arnaud Petitjean)
4 TCP port communications with PowerShell (Boe Prox)
5 Managing systems through a keyhole (Bartosz Bielawski)
6 Using PowerShell to audit user logon events (Mike F. Robbins)
7 Managing and administering a certification authority database with PowerShell (Cadims Podans)
8 Using PowerShell to reduce Active Directory token bloat (Ashley McGlone)
Part 2 PowerShell scripting
9 The 10 PowerShell scripting commandments (James O’Neill)
10 Avoiding the pipeline (Jeff Wouters)
11 A template for handling and reporting errors (Will Steele)
12 Tips and tricks for creating complex or advanced HTML reports with PowerShell (Jonathan Medd)
13 Using and “abusing” dynamic parameters (Bartosz Bielawski)
14 PowerShell type formatting (Adam Driscoll)
15 Scalable scripting for large data sets: pipeline and database techniques (Matthew Reynolds)
16 Building your own WMI-based cmdlets (Richard Siddaway)
17 Turning command-line tools into PowerShell tools (Jefferey Hicks)
Part 3 PowerShell for developers
18 Using Source Control Software with PowerShell (Trevor Sullivan)
19 Inline .NET code (Richard Siddaway)
20 PowerShell and XML: better together (Josh Gavant)
21 Adding automatic remoting to advanced functions and cmdlets (Karl Prosser)
22 Taming software builds (and other complicated processes) with psake (Jim Cristopher)
Part 4 PowerShell platforms
23 PowerShell and the SQL Server provider (Ben Miller)
24 Creating flexible subscriptions in SSRS (Donabel Santos)
25 Inventory database table statistics using PowerShell and SQL Server Management Objects (Robert C. Cain)
26 WSUS and PowerShell (Boe Prox)
27 Provisioning IIS web servers and sites with PowerShell (Jason Helmick)
28 Active Directory Group Management application (Chris Bellee)

 

 
1 Comment

Posted by on June 7, 2014 in Automation, ICT, Microsoft, Powershell, Windows

 

Tags: , , , ,

OneDrive / SkyDrive – fix for onedrive sync engine host stopped working

As an IT professional I tend to work on multiple systems (tablets, laptops, desktops) and I use OneDrive (SkyDrive) extensively to always have access to the latest versions of my documents.

I love OneDrive, but today when I wanted to continue working on my desktop I got an error : “onedrive sync engine host stopped working”. So first thing I tried was just restarting OneDrive, which didn’t work. Then I figured … ah well let’s just reboot and see what happens.

When this also didn’t work I looked online and saw I wasn’t the only one experiencing this. I also came across the OneDrive Troubleshooter tool. After I ran this, followed the instructions and waited about 5-10 minutes, it worked properly again.

I hope this helps you to resolve similar issues.

Notes:

  • In processes the process shows as OneDrive Sync Engine Host , but the process is still SkyDrive.exe
  • In the application log, an event 1000 was generated with the following information:Faulting application name: skydrive.exe, version: 6.3.9600.17055, time stamp: 0x53291a62
    Faulting module name: unknown, version: 0.0.0.0, time stamp: 0×00000000
    Exception code: 0×00000000
    Fault offset: 0×0000000000000000
    Faulting process id: 0×1050
    Faulting application start time: 0x01cf78c9a55d1428
    Faulting application path: C:\Windows\System32\skydrive.exe
    Faulting module path: unknown
    Report Id: 43b283ee-e4bd-11e3-826f-bc5ff4e873f4
    Faulting package full name:
    Faulting package-relative application ID:

 

 
 

Tags: , , , , , ,

Microsoft – Passed the free exam 74-409 Server Virtualization with Windows Server Hyper-V and System Center

As I mentioned earlier, Microsoft is offering free exam vouchers for the new exam “74-409 Server Virtualization with Windows Server Hyper-V and System Center”. For more information, take a look here.

I took the exam today and passed after having studied very hard for over a week (including pulling an all nighter today). I’m happy to have my first certification for the year 2014 already though :)

In my opinion the exam contained too many repeating (easy) questions on specific subjects, but there were also some very difficult questions about really specific situations. I personally would’ve preferred more “medium difficulty” questions.

All in all I learned a lot from preparing for the exam and I’m very happy with all the new things Microsoft has added to their new products.

If you are looking to take the exam as well, take a look at my previous post that contains the resources I used for preparation.

Good luck and enjoy. I’ll be going for some well earned sleep now :)

 

Tags: , , , , , , , , ,

Microsoft – Free exam 74-409 Server Virtualization with Windows Server Hyper-V and System Center

Microsoft is offering free exam vouchers for the new exam “74-409 Server Virtualization with Windows Server Hyper-V and System Center” to attendees of the Jump Start. The amount of free exams is limited, so be sure to register for the “Server Virtualization w/ Windows Server Hyper-V & System Center Jump Start” as soon as possible.

Also for those interested in free VMware Certified Associate (VCA) exams, time is running out. For more info, take a look at my previous post.

 

Tags: , , , , , , , , , , , , , , , , , , ,

Microsoft – Troubleshooting Key Management Service (KMS) activation

Today I helped a colleague troubleshoot a couple of systems were unable to activate using Key Management Service (KMS). Basically for this situation it boiled down to this:

Determine for the KMS service

  1. Which server is hosting the KMS service.If an SRV record has been added for KMS DNS auto discovery, run from CMD: nslookup -type=srv _vlmcs._tcp
  2. If the server hosting the KMS is functioning correctly:
  • Check if the server is up and running.
  • Check if the “Software Protection” service (sppsvc) is running.
  • Verify if the KMS service is listening on port 1688: telnet localhost 1688
  • Verify the KMS status. Run from CMD: slmgr.vbs /dli
  • Verify if a KMS key is installed and activated.
  • Verify if the minimum threshold for activation is being met.
  • Verify if other clients are able to activate using KMS. Even though the output of “slmgr.vbs /dli” gives you an indication, you can use the “Volume Activation Management Tool” (VAMT) for more insight and functionality.
  • Verify that a VLK key is being used.

For clients that are not able to activate

  • Verify if the correct KMS server can be resolved correctly:
    nslookup -type=srv _vlmcs._tcp
  • Verify if the KMS can be contacted:
    telnet <KMS FQDN or IP> 1688

    •  If this is not the case, perform a traceroute to determine potential causes. Reasons could include:
      • No default gateway configured on the client to reach the KMS.
      • No route configured on the client to reach the KMS.
      • Firewall on the client is blocking the traffic.
      • Firewall on the server is blocking the traffic.
      • If it is a VM, the virtual network might be misconfigured.
      • Routing on the network is not correct.
      • Firewall on the network is blocking traffic.
  • Clear any previous (mis)configuration: slmgr.vbs /ckms
  • Attempt activation: slmgr.vbs /ckms

NOTE: If you have lots of systems where you need to clear configuration and then attempt activation, you can also perform slmgr.vbs on remote computers using:
slmgr.vbs TargetComputerName [username] [password] /parameter [options]

Additional information

If you haven’t been able to resolve the issue, you might want to take a look here:

 

Tags: , , , , , , , , , , , , , , , , , , ,

TechNet subscriptions will be retired, last week to get or renew a subscription.

As you might have already read by now in my previous post, TechNet subscriptions are going to disappear. For more info take a look at this blog post and the Subscriptions retirement FAQ.

This is just a reminder that you have until August 31 to buy a last year of technet.

You might also want to backup existing keys and files:
http://www.zdnet.com/five-things-every-technet-subscriber-needs-to-do-before-time-runs-out-7000017687/

 
Leave a comment

Posted by on August 25, 2013 in Network, Windows 2012

 

Tags: , , , , ,

Home LAB Setup guide – 07 Make your lab available over the internet

In the first part of this LAB setup guide, I described the hardware selection process.
In the second part, I described the hypervisor selection and installation.
In the third part, I described VM guest considerations and preparations.
In the fourth part, I described Configuring Server 2012 VM as DC with DNS and DHCP using PowerShell
In the fifth part, I described easily creating (many) proper AD users with PowerShell
In the sixth part, I described creating a local PowerShell v3 Help Repository with PowerShell

In this post I will describe how you can make your lab available over the internet.

When you’ve created your home LAB, you want to be able to use it anywhere. Depending on your situation, one of these options probably best meets your needs.

Examples include the use of:

  1. Remote desktop connection to your server
    + Easy to configure (enable on server and configure NAT forwarding if appropriate)
    - On many enterprise or public networks TCP3389 is blocked by the firewall.
    - Connects only to specific server. Even though you access the rest of the network from there.
  2. VPN connection to your network
    • Using your hardware router
      + Connection to network, not just a server.
      - No dependency on Windows Server
    • Using Windows Server 2008 / 2012
      + SSTP VPN (TCP443), is generally not blocked on enterprise/public networks.
      + Connection to network, not just a server.
      - Dependency on Windows server.
      - Requires more configuration.
      - The root CA certificate for the certification authority (CA) that issued the server authentication certificate needs to be into the store Local Computer\Trusted Root Certification Authorities. For a self-signed certificate, this means that you need to have local admin permissions to add it.Note: DirectAccess is a great feature, but it requires the client to be a member of the domain. And in my case this would limit where I can connect from, therefore I don’t plan to use it. For other situations it might be a better solution though.
  3. Using 3rd party tools like logmein, teamviewer or VNC
    + Connects only to specific computer.

Since I want to be able to connect from within enterprise environments as well, I chose to use SSTP VPN in Windows Server 2012. The basic steps you have to perform, include:

  1. On the server, you have to install and configure the VPN service.
  2. On the server or your own PKI, you would want create and install a machine certificate. You can create a Certificate Signing Request and request a 3rd party public certificate. Alternatively you can create a certificate using your own Certificate Authority, or you could create a self-signed certificate, For creating the self-signed certificate you can use the great PluralSight SelCert tool.
  3. On the client, you have to make sure the created certificate will be trusted. This means you have to add the certificate to local system\trusted root certificate authority if you’re using a self-signed certificate, which requires local administrator permissions on the client.
  4. On the client, you have to set-up the VPN connection to the server. Preferably you want to connect by DNS name. For your home lab you can also utilize dynamic DNS services like by example no-ip.com or alternative solutions.

For some more information, you can also take a look at this:

 

Tags: , , , , , , , , , , , , , , , , , , ,

PowerShell – Reverse strings and reverse file names

With PowerShell it is relatively easy to reverse a string:
$str = “gnirtsdesrever”
$str[-1..-($str.length)] -join “”

Some of you might ask: Why would anyone want to do this ? Well, since the start of the year Usenet DMCA takedowns have begun to occur automatically, very quickly and very often. This means many movies and TV series on Usenet / News Groups are being taken offline very quickly.

Counter measures to prevent takedowns by uploaders include:

  • The use of encrypted links to NZB files.
  • The use file names that make it harder to find copyrighted files.

As you can probably guess, some just reverse the file names. The PowerShell script I’ve created will automate reversing the file names for files in the specified folder that match the specified file name filter.

I hope it is useful for you as well.

PS: Someone else on usenet had the same idea as me and created a VBS that will add a right-click menu option to explorer. I’ve added this in the same location as my PowerShell script as well.

 

Tags: , , , , , , ,

PowerShell – Cleaning folders containing temporary files

At the companies I’ve worked for , disk space on the system disk ran out on a regular basis for some systems and caused a lot of monitor calls. These kind of boring repetitive tasks are always the ones you want to automate.

So when I came across the great blog post “Weekend Scripter: Use PowerShell to Clean Out Temp Folders” on the “Hey, Scripting Guy! Blog”, I wanted to post it on my own blog as well. The blog post also describes the process of creating the script very well, which is very convenient for those who are relatively new to PowerShell to scripting and want to learn how to do it better.

If you want to take it even a step further, you could automate it even more. By example by automatically running the clean script when an event is generated that the disk is running out of space. You can configure this using by example:

Or you could use PowerShell remoting to do it on many systems at the same time. This could come in handy by example when after WSUS patching the content in “C:\Windows\SoftwareDistribution\Download” is not deleted automatically.

 

Tags: , , , , , , , , , , , , ,

 
Follow

Get every new post delivered to your Inbox.

Join 818 other followers

%d bloggers like this: