Crazy mouse issue in Windows PE

By | October 19, 2015
Share

*UPDATED* 2016/10/11 – Script created to automate update on pe WIM: https://gist.github.com/brianfgonzalez/574aa68f4d5c39c5005bfdf15fa6c4b9

The crazy mouse occurs when the embedded GPS module is detected as a Serial mouse.

To prevent this behavior, you must manually import a REG into the Windows PE boot.wim.

A registry entry must be imported into the registry of the WinPE boot media.

  1. Mount the boot wim.

Dism /mount-image /imagefile:boot.wim /mountdir:c:\mount

  1. Mount theWinPE’s SYSTEM Hive into your HKLM via regedit

C:\mount\Windows\system32\config\SYSTEM

Name the imported hive: importedsystem

  1. Import the REG entry below:

=====================================================================

Windows Registry Editor Version 5.00

 

[HKEY_LOCAL_MACHINE\importedsystem\ControlSet001\Enum\ACPI\PNP0501\a\Device Parameters]

“SkipEnumerations”=dword:fffffffe

=====================================================================

  • Note: if you run into permissions errors, you may need to take ownership of the imported REG and re-import the REG.

SCCM 2007 WinPE not seeing CF-311xxx Toughbook USB ports

By | October 19, 2015
Share

Here is the current workaround to the USB ports not working on a CF-311xxx with SCCM 2007.

A registry entry must be imported into the registry of the WinPE boot media.

  1. Mount the boot wim.

Dism /mount-image /imagefile:boot.wim /mountdir:c:\mount

  1. Mount theWinPE’s SYSTEM Hive into your HKLM via regedit

C:\mount\Windows\system32\config\SYSTEM

Name the imported hive: importedsystem

  1. Import the REG entry below:

=====================================================================

Windows Registry Editor Version 5.00

 

[HKEY_LOCAL_MACHINE\importedsystem\ControlSet001\services\iusb3xhc\Parameters]

“DisableLineInt”=dword:00000001

=====================================================================

Prevent Windows 10 from staging and prompting in Windows 7 or Windows 8

By | October 19, 2015
Share

Update 2016-07-28: Just use the NEVER10.exe tool: https://www.grc.com/never10.htm

================================================================

Here’s what I found to work to prevent Windows 10 from caching or prompting in Windows 7 or Windows 8:

If you are using Windows 7, locate the following updates: 3035583, 2952664, 3021917

If you are using Windows 8, locate the following updates: 3035583, 2976978

================================================================

Windows Registry Editor Version 5.00 – Removes the icon in task tray

 

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Gwx]

“DisableGwx”=dword:00000001

 

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]

“DisableOSUpgrade”=dword:00000001

================================================================

Powershell script to collect MDT/SCCM/Windows logs from a local system

By | September 11, 2015
Share

Add this script to your custom WinPE boot media to make grabbing the logs from a system simple and quick.

UPDATED 9/11/2016 – https://github.com/brianfgonzalez/Scripts/blob/master/CollectLogs.ps1

<#
Version: 1.1
ChangeLog:
	- September 10, 2015 : First revision of script.
    - Moved function code above function call.
    1.1
    - Switched to using [System.IO.DriveInfo]::getdrives() instead of gwmi
#>
function fReRunPrompt{
$sRet = [Microsoft.VisualBasic.Interaction]::MsgBox("Would you like to rerun the script?",'YesNo,Question', "Rerun script prompt")
If ($sRet -eq "Yes")
{
    fMain
}
}


function fMain
{

#$ErrorActionPreference = "SilentlyContinue"
#trap {"Error found: $_" | Out-File "F:\CollectLogs.log"}

# Locate USB media drive letter
#######################################################################################################################################################
try
{
    $oAllUSBDrive = ([System.IO.DriveInfo]::getdrives() | ?{ $_.DriveType -eq "Removable"} | Sort-Object -Descending TotalSize)[0]
    if ($oAllUSBDrive -eq $null)
    {
        $oAllUSBDrive = ([System.IO.DriveInfo]::getdrives() | ?{ $_.DriveType -eq "Removable"} | Sort-Object -Descending TotalSize)
    }
    $sUSBDriveLetter = $oAllUSBDrive.Name
}
catch
{
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualBasic") | Out-Null
    [Microsoft.VisualBasic.Interaction]::MsgBox("An error occurred when attempting to locate USB drive.",'OKOnly,Exclamation', "Error encountered") | Out-Null
    fReRunPrompt
    Exit
}

# Locate Local HDD drive letter (100GB+)
#######################################################################################################################################################
try
{
    $oLocalLargestHDD = ([System.IO.DriveInfo]::getdrives() | ?{ $_.DriveType -eq "Fixed"} | Sort-Object -Descending TotalSize)[0]
    If ($oLocalLargestHDD.TotalSize -gt 100000000)
    {
        $sHDDDriveLetter = $oLocalLargestHDD.Name
    } else {
        [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualBasic") | Out-Null
        [Microsoft.VisualBasic.Interaction]::MsgBox("HDD is NOT 100GB, so there is no SYSTEM partition!",'OKOnly,Exclamation', "Error encountered") | Out-Null
        fReRunPrompt
        Exit
    }
}
catch
{
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualBasic") | Out-Null
    [Microsoft.VisualBasic.Interaction]::MsgBox("An error occurred when attempting to locate a HDD drive.",'OKOnly,Exclamation', "Error encountered") | Out-Null
    fReRunPrompt
    Exit
}

# Create folder on USB media named with DATE and TIME stamp information
#######################################################################################################################################################
$sDateFormat = (Get-Date -format "yyyy-M-d_HHmm")
$sLogFolderPath = "{0}{1}" -f $sUSBDriveLetter, $sDateFormat
New-Item -type Directory -path $sLogFolderPath -force

# Copy all Windows or Deployment related log files on local HDD
try
{
    $oLocalLargestHDD = ([System.IO.DriveInfo]::getdrives() | ?{ $_.DriveType -eq "Fixed"} | Sort-Object -Descending TotalSize)[0]
    If ($oLocalLargestHDD.TotalSize -gt 100000000)
    {
        $sHDDDriveLetter = $oLocalLargestHDD.Name
    } else {
        [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualBasic") | Out-Null
        [Microsoft.VisualBasic.Interaction]::MsgBox("HDD is NOT 100GB, so there is no SYSTEM partition!",'OKOnly,Exclamation', "Error encountered") | Out-Null
        fReRunPrompt
        Exit
    }
}
catch
{
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualBasic") | Out-Null
    [Microsoft.VisualBasic.Interaction]::MsgBox("An error occurred when attempting to locate a HDD drive.",'OKOnly,Exclamation', "Error encountered") | Out-Null
    fReRunPrompt
    Exit
}

# Copy log files into created Directory on USB drive
#######################################################################################################################################################
# Function to reuse search and copy
function fSearchAndCopy($aDirectories)
{
    $sInt=0
    foreach ($sDirectory in $aDirectories)
    {
        $sDirectory = "{0}{1}" -f $sHDDDriveLetter, $sDirectory
        $sMsg = "Copying {0}" -f $sDirectory
        Write-Host $sMsg
        if ((Test-Path $sDirectory) -eq $true)
        {
            $sInt = $sInt + 1
            $sDestinationDirectory = "$sLogFolderPath\$sInt"
            Write-Host $sDirectory
            New-Item -type Directory -path "$sDestinationDirectory" -force
            Copy-Item -Path "$sDirectory\*" -Destination "$sDestinationDirectory" -Force -Recurse
            Add-Content "$sDestinationDirectory\OriginalDirectory.txt" $sDirectory
        }
    }
}

# Populate Directories Array
$aDirectories =
    @("Windows\Temp\DeploymentLogs",
    "MININT\SMSOSD\OSDLOGS",
    "Windows\System32\sysprep\Panther",
    "Windows\Panther",
    "_SMSTaskSequence",
    "SMSTSLog")

#Initiate folder copy routine
try
{
    fSearchAndCopy($aDirectories)
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualBasic") | Out-Null
    [Microsoft.VisualBasic.Interaction]::MsgBox("Copy of content is complete.  Shutting down unit.",'OKOnly,Information', "Error encountered") | Out-Null
}
catch
{
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualBasic") | Out-Null
    [Microsoft.VisualBasic.Interaction]::MsgBox("Error occured during the copy of the deployment files.",'OKOnly,Exclamation', "Error encountered") | Out-Null
    fReRunPrompt
    Exit
}
Start-Process "x:\windows\system32\wpeutil.exe" @('"shutdown"')


}

# Call fMain
fMain

 

Windows 10 “Upgrade” Drivers Released for the FZ-G1(Mark 3), FZ-M1C (Mark 1), and the CF-311(Mark 5).

By | July 29, 2015
Share

http://pc-dl.panasonic.co.jp/dl/search?q=Windows+10+Upgrade+Support+Download+Modules&button=&dc%5B%5D=002001&p1=&p2=&oc=&lang=

Supported Models:
FZ-G1 (Mark 3)
FZ-M1C (Mark 1)
CF-311 (Mark 5)

* Drivers are meant to be used for upgrading from Win 7 or Win 8.1 to Win 10.

-Brian G