• 07Mar

    I came across an instance where I needed to upgrade a Windows 7 image to Windows 8.1 and then capture that image for deployment with System Center Configuration Manager 2012 R2. I found out shortly after starting this task that when you upgrade an operating system you can no longer run SysPrep. So I started looking around and modifying registry keys and running commands.


    Below is the method that I found to work perfectly.

    Remove this KEY from the Registry:

    Remove this REG_DWORD from the Registry:

    Set this REG_DWORD from the Registry:
    Computer\HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\SysprepStatus\CleanupState [Set Hexadecimal Value: 7]

    Run this command as Administrator:
    slmgr /dli

    After your operating system is activated re-run SysPrep and it will work!

    – Harry Caskey

    Tags: , , , ,

  • 13Sep

    Awhile ago I needed to find the Serial Number of a remote machine so I could pull the drivers, traveling to see that machine became very tedious and took time.  So I did some searching and came accross this command that you can run via-command line with either powershell or by remotely connecting to the machine and running this from command prompt.

    If you open up a command line window you can call on the WMIC command to pull the BIOS serial number of a machine.

    wmic bios get serialnumber

    You can also run this WMIC command to get the computer model number.

    wmic csproduct get name

    For further information here is the Microsoft KB: http://support.microsoft.com/kb/558124

    Tags: , ,

  • 25Jun


    By default Windows only allows you to run sysprep on an image 3 times.  Then Microsoft’s solution is to re-install and start a new image.  Well what happens if you need to update your image or make a change without having to go through the hassle of making your image exactly what you want?  Follow these steps:

    1. Start > Run > regedit
    2. HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\SysprepStatus
      • Set the following DWORD values:
        • CleanupState: 0x00000002 (2)
        • GeneralizationState: 0x00000007 (7)
    3. Start > Run > msdtc -uninstall
    4. Start > Run > msdtc -install
    5. Restart your machine.

    You should now be able to run sysprep! W00t!

    – Harry Caskey

    Tags: ,

  • 21Sep

    In a current environment where this works and you come across one machine or a range of machines that will not push the PXE boot advertisement. Assuming you’ve already checked off the following.

    1) You’ve set up your collection.
    2) Your machine is recognized by SCCM, and in the desired collection.
    3) Your boundaries set for the machine location are set.
    4) You’ve configured your Task Sequence with your boot image.
    5) You’ve advertisement your Task Sequence to the collection set you desire.
    5) Your advertisement is set to PXE boot.
    6) You’ve cleared the last PXE advertisement from the object.

    If you’ve determined all your configurations are correct and this same process works with other machines in other boundaries to to delete the boundary and recreate the boundary.

    – Harry Caskey

    Tags: , ,

  • 13Aug

    To do this you must open up the Exchange Management Shell on Exchange 2007.  Then at the prompt you will want to find the GUID for the mailbox you wish to delete.  You can do this by typing the following command:

    Get-MailboxStatistics | where-object { $_.DisconnectDate -ne $null } | Select DisplayName,MailboxGuid

    You should then see a prompt like this.

    To remove individual mailboxes use the  following command with your servers info replaced in bold:
    Remove-Mailbox -Database “Database-Name” -StoreMailboxIdentity MailboxGuid -confirm:$false

    After this runs check to see if the GUID is gone by running the “Get-MailboxStatistics” command again.  After this has been run the mailbox has been removed from the system.

    To remove all disconnected mailboxes use the following commands, please note replace “Mailbox Store” with your information.

    This command will query the current disconnected mailboxes.
    $users = Get-MailboxStatistics | where-object { $_.DisconnectDate -ne $null } | Select DisplayName,MailboxGuid

    This command will use the query to remove the mailboxes.
    $users | ForEach { Remove-Mailbox -Database “Mailbox Store” -StoreMailboxIdentity $_.MailboxGuid -confirm:$false }

    – Harry Caskey

    Tags: , ,

« Previous Entries