Author Archives: AnonIT

Group Policy Software Deployment OpenVPN

You will require:

OpenVPN Code signing certificate:
OpenVPN MSI – instructions here:

Create the deployent share, and set permissions as appropriate:

Place the OpenVPN MSI into the deployment share.


Expand the domain, and expand Group Policy Objects.  Right click and select New

Give the software deployment a name, and click OK

Right click the GPO and select Edit…

Expand Computer Configuration –> Policies –> Software Settings  Right click on
Software Installation and select New –> Package…

Navigate to the deployment share via UNC, select the MSI, and click Open.

Select Assigned and click OK.

The application is now assigned for install.

Navigate to Computer Configuration –> Windows Settings –> Security Settings –> 
Public Key Policies.  Right click Trusted Publisher and select Import…

Click Next

Click Browse

Navigate to the OpenVPN certificate and click Open

Click Next

Click Next

Click Finish

Click OK

The certificate is now ready to be pushed out via Group Policy.

Drag the Group Policy Object (EG: Install Open VPN Client) and release on the OU you wish to
deploy the software to.  (EG: Corp Computers).

The software will now be deployed to computer objects in that OU.

Group policy Software deployment permisisons

When deploying software deployment via group policy permissons must be set so that the computer account has read permission to the install files.

To check this, open Computer Management and open Shared Folders.

Right click the deployment share and select Properties

Domain computers at a minimum should have read.  In this example, I have Everyone as read.

Open Windows Explorer and navigate to the deployment folder.  Right click the deployment folder
and select Properties

On the Security tab, you can see i have added Domain Computers as Read & execute, list
folder contents, and Read.

This will allow the computer accounts to access the softwaredeployment share.

Extract OpenVPN driver code signing certificate

To extract the OpenVPN driver code signing certificate, download OpenVPN from here: (this article was created using version 2.3.10)

On a test machine, install as administrator.

Click Next

Click I Agree

Ensure that only TAP Virtual Ethernet Adapter is selected and click Next

Click Install

On the windows security dialog, tick Always trust software from “OpenVPN Technologies, Inc.”.
and click Install.

Once installed, click Next

Click Finish

Open the MMC

Click File and select Add/Remove Snap-in…

Select Certificates and click Add.

Select Computer Account and click Next

Select Local comptuer: (the computer this console is running on) and click Finish

Click OK

Expand Certificates (Local Computer) –> Trusted Publishers –> Certificates.

Right click the OpenVPN Technologies certificate and select All Tasks –> Export…

Click Next

Select Base64 encoded x.509 (.CER) and click Next

Click Browse, navigate to the location you wish to save the certificate and click Next

Click Finish

Click OK

The certificate is now in the location specified.

OpenVPN – Creating an MSI installer

To create an MSI installer for open VPN will require:

WIX: (This was created using 3.10.2)

Open VPN installer: (This was created using 2.3.10)

2 x GUID:



Download WIX from the link above.

Install by running as administrator.


Create a folder in the root of C drive called OpenVPN.

Modify Openvpn-install-2.3.10-i602-x86_64.wxs.  Change the following:

<?define ProductVersion = “2.3.10“?>

<?define ExeSourceFile = “openvpn-install-2.3.10-I602-x86_64.exe“?> 

<?define ProductCode = “9dc4937b-e23c-42a3-a344-86b78f61f8d1“?>

<?define ProductUpgradeCode = “407cfa7d-b3fc-48a9-abfc-2088070685a7“?>

ProductVersion is the version of Open VPN to install.

ExeSourceFile is the name of the Open VPN executable file.

ProductCode is one of the GUID you generated.

ProductUpgradeCode is the 2nd GUID generated.

The wxs file name will need to be changed to reflect the exe installer name.

The GUID are used to identify the products.  The ProductCode is the ID of the version we are
installing now.  The product upgrade code will allow upgrading of previous versions to the current version.  In the example ablove, I will install a product code of 9dc4937b-xxx.  This will update
product code of 407cfa7d-xxx.  When i create the next version, I will generate a new GUID and use that for the product code, but place the 9dc4937b-xxx into the product update code.

Place CreateMSI.bat andOpenvpn-install-2.3.10-i602-x86_64.wxs into the c:openvpn folder.

Open an administrator command prompt.

Navigate to c:openvpn and run CreateMSI.bat.

This will create the MSI in the c:openvpn folder.

WSUS Cleanup Server 2012

I’ve inherited a customer with a badly running WSUS server.  It is running on Server 2012 with SQL 2012.  Maintenance had never been run, and attempts to do so failed with the cleanup wizard timing out.

I’ve created a powershell script, available here: that I have been able to use to clean it up.  It also requires the WSUSDBMaintenace.sql file from here, and SQL Management Studio if not already installed, available here.

The script performs the following:
Run the cleanup wizard;
Reindex the database;
Decline Itanium updates;
Shrink the database;
Optionally send an email.

Create a html file with images

I needed to create a quick and dirty HTML file that had 2 columns.  1 column was the website path to the image, the 2nd column was the image itself.  This would need to be created dynamically.
I have powershell code on here:

The following command:

.CreateHTMLWithImages.ps1 -website -sourcepath \web01blogimages201613 -HTMLFile \web01blog20160103.html -YSize 100 -XSize 100

Will produce a HTML file similar to this.

Server 2008 R2 DHCP Console Icons Reference

Server 2008 R2 DHCP Console Icons Reference
Applies To: Windows Server 2008 R2
DHCP console icons reference
DHCP provides context-specific icons to dynamically represent the state of console objects. Objects include the DHCP servers, clients, scopes, and option types that are used and managed in the console.
General usage of console icons
Some of the icons used in DHCP have specific meanings, but most are used to communicate general status information about the current state of console objects. For example, when an icon is used with an hourglass superimposed, such as:
This means that the console is attempting to connect to the server.
Likewise, when an icon is used with a red circle and a superimposed ‘X’, such as:
This often means that DHCP has lost its connection to the server.
Server-related icons

Icon Description
clip_image003 DHCP server added to console.
clip_image004 DHCP server connected and active in console.
clip_image005 DHCP server connected but not authorized in Active Directory for use on your network.
clip_image006 DHCP server connected but current user does not have the administrative credentials to manage the server.
clip_image007 DHCP server warning. Available addresses for server scopes are 90 percent or more leased and in use. This means that the server is nearly depleted of available addresses to lease to clients.
clip_image008 DHCP server alert. No addresses are available from server scopes because the maximum (100 percent) of the addresses allocated for use are currently leased. This represents a failure of the DHCP server on the network because it is not able to lease or service clients.

Scope-related icons

Icon Description
clip_image009 Scope or superscope is active.
clip_image010 Scope or superscope is inactive.
clip_image011 Scope or superscope warning. Scope warning: 90 percent or more of the scope’s IP addresses are in use. Superscope warning: If any scope within the superscope has a warning, the superscope has a warning.
clip_image012 Scope or superscope alert. Scope alert: All IP addresses have been allocated by the DHCP server and are in use. No more clients can obtain IP addresses from the DHCP server because it has no more IP addresses to allocate. Superscope alert: At least one scope contained in the superscope has all IP addresses allocated by the DHCP server. No clients can obtain an IP address from the range defined in the scope that is 100 percent allocated. If other scopes within the superscope contain available addresses, the DHCP server can allocate addresses from these scopes.

Option-related icons

Icon Description
clip_image013 Folder containing the list of server options.
clip_image014 Server option.
clip_image015 Folder containing the list of scope options.
clip_image016 Scope option.
clip_image017 Reservation option.

Lease-related icons

Icon Description
clip_image018 Folder containing the list of active leases.
clip_image019 Active lease: this address is not available for lease by the DHCP server.
clip_image020 Expired lease: this address is available for lease by the DHCP server.
clip_image021 Active lease, DNS dynamic update pending. This address is not available for lease by the DHCP server.
clip_image022 Active reservation lease: this address is an active lease on a reserved IP address. This IP address is not available for lease by the DHCP server.
clip_image023 Client is connecting through a remote access server.

Other console icons

Icon Description
clip_image024 Root of the DHCP console.
clip_image025 Address pool folder.
clip_image026 Scope allocation range. Addresses in this range are allocated to the available address pool used to offer leases to clients.
clip_image027 Scope exclusion range. Addresses in this range are excluded from the available address pool used to offer leases to clients.
clip_image028 Folder containing the list of reservations.
clip_image029 Bootstrap Protocol (BOOTP) table.
clip_image030 BOOTP entry in the table, containing information that is returned to the BOOTP client (Ex: boot image file name, file server name).
clip_image031 Folder that contains the Allow and Deny filters folders.
clip_image032 Folder containing the list of allow filters when filtering is enabled. Allow client filters in the list will apply.
clip_image033 Folder containing the list of allow filters when filtering is disabled. Allow client filters in the list will not apply.
clip_image034 Allow client filter. This client will be allowed to obtain a lease from this DHCP server, if its MAC address is in the list.
clip_image035 Folder containing the list of deny filters when filtering is enabled. Deny client filters in the list will apply.
clip_image036 Folder containing the list of deny filters when filtering is disabled. Deny client filters in the list will not apply.
clip_image037 Deny client filter. Clients with these MAC addresses will not be allowed to obtain a lease from this DHCP server.