Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $Authorization = @"
- using System;
- using System.Runtime.InteropServices;
- public class AdjProcessPriv
- {
- [DllImport("kernel32.dll")]
- public static extern uint WTSGetActiveConsoleSessionId();
- [DllImport("Wtsapi32.dll", SetLastError = true)]
- public static extern uint WTSQueryUserToken(uint SessionId, ref IntPtr phToken);
- [DllImport("advapi32.dll", SetLastError = true)]
- public static extern uint ImpersonateLoggedOnUser(IntPtr hToken);
- [DllImport("advapi32.dll", EntryPoint = "CreateProcessAsUser", SetLastError = true, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
- public static extern bool CreateProcessAsUser(IntPtr hToken, String lpApplicationName, String lpCommandLine, IntPtr lpProcessAttributes,
- IntPtr lpThreadAttributes, bool bInheritHandle, uint dwCreationFlags, IntPtr lpEnvironment, String lpCurrentDirectory,
- ref STARTUPINFO lpStartupInfo, out PROCESS_INFORMATION lpProcessInformation);
- [DllImport("userenv.dll", SetLastError = true)]
- public static extern bool CreateEnvironmentBlock(ref IntPtr lpEnvironment, IntPtr hToken, bool bInherit);
- [DllImport("userenv.dll", SetLastError = true)]
- [return: MarshalAs(UnmanagedType.Bool)]
- public static extern bool DestroyEnvironmentBlock(IntPtr lpEnvironment);
- [DllImport("kernel32.dll", SetLastError = true)]
- public static extern bool CloseHandle(IntPtr hSnapshot);
- [DllImport("kernel32.dll", SetLastError = true)]
- public static extern uint WaitForSingleObject(IntPtr hHandle, uint dwMilliseconds);
- [DllImport("shell32.dll")]
- public static extern IntPtr ShellExecute(
- IntPtr hwnd,
- string lpszOp,
- string lpszFile,
- string lpszParams,
- string lpszDir,
- int FsShowCmd
- );
- public enum WTS_CONNECTSTATE_CLASS
- {
- WTSActive,
- WTSConnected,
- WTSConnectQuery,
- WTSShadow,
- WTSDisconnected,
- WTSIdle,
- WTSListen,
- WTSReset,
- WTSDown,
- WTSInit
- }
- [StructLayout(LayoutKind.Sequential)]
- public struct PROCESS_INFORMATION
- {
- public IntPtr hProcess;
- public IntPtr hThread;
- public uint dwProcessId;
- public uint dwThreadId;
- }
- [StructLayout(LayoutKind.Sequential)]
- public struct STARTUPINFO
- {
- public int cb;
- public String lpReserved;
- public String lpDesktop;
- public String lpTitle;
- public uint dwX;
- public uint dwY;
- public uint dwXSize;
- public uint dwYSize;
- public uint dwXCountChars;
- public uint dwYCountChars;
- public uint dwFillAttribute;
- public uint dwFlags;
- public short wShowWindow;
- public short cbReserved2;
- public IntPtr lpReserved2;
- public IntPtr hStdInput;
- public IntPtr hStdOutput;
- public IntPtr hStdError;
- }
- public static uint LaunchUserProcess(string appPath, string cmdLine)
- {
- uint processId = 0;
- var hImpersonationToken = IntPtr.Zero;
- uint activeSessionId = WTSGetActiveConsoleSessionId();
- uint userToken = WTSQueryUserToken(activeSessionId, ref hImpersonationToken);
- if (userToken != 0)
- {
- if (ImpersonateLoggedOnUser(hImpersonationToken) != 0)
- {
- var startInfo = new STARTUPINFO();
- var procInfo = new PROCESS_INFORMATION();
- var pEnv = IntPtr.Zero;
- startInfo.cb = Marshal.SizeOf(typeof(STARTUPINFO));
- CreateEnvironmentBlock(ref pEnv, hImpersonationToken, false);
- if (CreateProcessAsUser(hImpersonationToken,
- appPath,
- cmdLine,
- IntPtr.Zero,
- IntPtr.Zero,
- false,
- 0,
- IntPtr.Zero,
- null,
- ref startInfo,
- out procInfo))
- {
- processId = procInfo.dwProcessId;
- WaitForSingleObject(procInfo.hProcess, 5000);
- }
- if (pEnv != IntPtr.Zero)
- {
- DestroyEnvironmentBlock(pEnv);
- }
- CloseHandle(procInfo.hThread);
- CloseHandle(procInfo.hProcess);
- }
- CloseHandle(hImpersonationToken);
- }
- if(processId == 0)
- {
- var shellInfo = ShellExecute(IntPtr.Zero, "", appPath, cmdLine, null, 0);
- if(shellInfo.ToInt32() > 32)
- {
- processId = (uint)(shellInfo.ToInt32());
- }
- }
- return processId;
- }
- }
- "@
- $type = Add-Type $Authorization -passthru
- $PackageName = "LenovoBatteryGaugePackage"
- $PathToPluginDir = "$env:ProgramData\Lenovo\ImController\Plugins"
- $PathToPackageDir = "$PathToPluginDir\$PackageName"
- $LogFileName = ("$PackageName" + ".Install." + (Get-Date -Format "-yyyy_MM_dd-HH-mm-ss") + ".txt")
- $PathToLogsDir = "$env:ProgramData\Lenovo\Modern\Logs"
- $PathToLogFile = "$PathToLogsDir\$LogFileName"
- $UninstallFileName = "Uninstall.ps1"
- $InstallFileName = $MyInvocation.MyCommand.Name
- [bool]$EnableLogging = $false
- try { $EnableLogging = ((Get-ItemPropertyValue -Path "HKLM:\SOFTWARE\Wow6432Node\Lenovo\Modern\Logs" -Name "ImController.Service") -eq 0 ) } catch{}
- $PSDefaultParameterValues["Write-Log:pathToLogFile"]=$PathToLogFile
- $PSDefaultParameterValues["Write-Log:enableLogging"]=$EnableLogging
- Function Check-Is64BitProcess()
- {
- return [Environment]::Is64BitProcess
- }
- Function Check-Is64BitOS()
- {
- return [Environment]::Is64BitOperatingSystem
- }
- Function Check-IsWow64()
- {
- return !(Check-Is64BitProcess) -and (Check-Is64BitOS)
- }
- Function Check-Is64BitPackage()
- {
- return $PSScriptRoot.ToLower().Contains("x64".ToLower())
- }
- function Write-Log
- {
- [CmdletBinding()]
- param(
- [Parameter(
- Mandatory=$false,
- Position=1,
- ValueFromPipeline=$true
- )]
- [PSObject[]]$inputObject,
- [string]$pathToLogFile=".\" + [System.IO.Path]::GetFileName($MyInvocation.ScriptName) + ".log",
- [bool]$enableLogging=$true
- )
- $obj=$null
- if($input -ne $null)
- {
- $obj=$input
- }
- else
- {
- $obj=$inputObject
- }
- Out-Host -InputObject $obj
- if($enableLogging)
- {
- if( -not(Test-Path $pathToLogFile)) { New-Item -Path (Split-Path $pathToLogFile) -Name (Split-Path $pathToLogFile -leaf) -ItemType File -force | Out-Null }
- Out-File -InputObject $obj -FilePath $pathToLogFile -Encoding unicode -Append -Width 200
- }
- }
- Function UninstallMsi($prodCode)
- {
- $uninstallString = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$prodCode" -Name "UninstallString" -ErrorAction SilentlyContinue).UninstallString
- if (($UninstallString -ne $null) -and ($uninstallString.Length -ne 0)) {
- Write-Log "start uninstall msi package for PRODCODE $prodCode"
- $MSIEXECPATH = "$env:SystemRoot\System32\MsiExec.exe"
- Write-Log "Start-Process -NoNewWindow -Wait -FilePath $MSIEXECPATH `"/X$prodCode /quiet /noreboot`""
- Start-Process -NoNewWindow -Wait -FilePath $MSIEXECPATH "/X$prodCode /quiet /noreboot" *>&1 | Write-Log
- }
- else
- {
- Write-Log "cannot find uninstall entry for program PRODCODE $prodCode"
- }
- }
- function GetCurrentActiveUserSID
- {
- $activeUser = Get-WmiObject Win32_ComputerSystem -ComputerName $env:computername -EA stop | Select UserName -Unique|%{"{0}" -f $_.UserName.ToString().Split('\')[1]}
- $objUser = New-Object System.Security.Principal.NTAccount("$activeUser")
- $strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
- $strSID.Value
- }
- if(Check-Is64BitOS)
- {
- $OS_BITNESS=64
- }
- else
- {
- $OS_BITNESS=32
- }
- if(Check-Is64BitProcess)
- {
- $PS_BITNESS=64
- }
- else
- {
- $PS_BITNESS=32
- }
- if(Check-Is64BitPackage)
- {
- $PK_BITNESS=64
- }
- else
- {
- $PK_BITNESS=32
- }
- if ($OS_BITNESS -eq 64)
- {
- $arch="x64"
- $PRODCODE64="{CBEDEC16-C4F5-4255-99E4-5884EFEDD1BC}"
- $PRODCODE32="{01DBFF2E-73FD-4CC3-98CE-B39260D80D8C}"
- $PRODCODE64_OLD="{B8D3ED8D-A295-44C2-8AE1-56823D44AD1F}"
- $PRODCODE32_OLD="{840DE7EE-4816-4402-BEE4-80517B3233A3}"
- }
- else
- {
- $arch="x86"
- $PRODCODE32="{01DBFF2E-73FD-4CC3-98CE-B39260D80D8C}"
- $PRODCODE32_OLD="{840DE7EE-4816-4402-BEE4-80517B3233A3}"
- }
- $applicationName = "$env:SystemRoot\system32\rundll32.exe"
- $commandline = " $env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\$arch\LenovoBatteryGaugePackage.dll, "
- $ShowBg="ShowBatteryGauge"
- $HideBg="HideBatteryGauge"
- Function BatteryGaugeIconControl($cmdstring)
- {
- $commandParam = $commandline + $cmdstring
- $processId = $type[0]::LaunchUserProcess($applicationName, $commandParam)
- if($processId -ne 0)
- {
- Write-Log "Launch a user process sucessful"
- }
- else
- {
- Write-Log "Launch a user process failure"
- }
- return $processId
- }
- Write-Log "Below logs come from $PSCommandPath"
- Write-Log "Operating System is $OS_BITNESS bit"
- Write-Log "Process is $PS_BITNESS bit"
- Write-Log "Package is $PK_BITNESS Bit"
- if ($PS_BITNESS -eq 32)
- {
- if ($PK_BITNESS -eq 64)
- {
- if ($OS_BITNESS -eq 32)
- {
- Write-Log "cannot install a 64 bit package in an 32 bit os."
- }
- else
- {
- Write-Log "Package bitness is 64 but process is 32. Relaunching as 64"
- $PS64BITPATH="$env:SystemRoot\SysNative\WindowsPowerShell\v1.0\PowerShell.exe"
- Write-Log "Start-Process -NoNewWindow -Wait -FilePath $PS64BITPATH -ArgumentList `"$PSCommandPath`""
- Start-Process -NoNewWindow -Wait -FilePath $PS64BITPATH -ArgumentList "$PSCommandPath" *>&1 | Write-Log
- Write-Log "Completed re-running as 64 bit"
- Exit
- }
- }
- }
- elseif ($PS_BITNESS -eq 64)
- {
- if ($PK_BITNESS -eq 32)
- {
- Write-Log "Package bitness is 32 but process is 64. Relaunching as 32"
- $PS32BITPATH="$env:SystemRoot\SysWOW64\WindowsPowerShell\v1.0\PowerShell.exe"
- Write-Log "Start-Process -NoNewWindow -Wait -FilePath $PS32BITPATH -ArgumentList `"$PSCommandPath`""
- Start-Process -NoNewWindow -Wait -FilePath $PS32BITPATH -ArgumentList "$PSCommandPath" *>&1 | Write-Log
- Write-Log "Completed re-running as 32 bit"
- Exit
- }
- }
- else
- {
- Write-Log "Package bitness unknown, will exit."
- }
- # ::**************************************************************************************************
- # :: This section run only when current scripts running in package folder
- # :: 1. Call uninstall.ps1 in the package folder if it has been install in this PC, and then delete package folder
- # :: 2. Create package folder and copy content to it
- # :: 3. Call install.ps1 in the package folder
- # ::
- # ::**************************************************************************************************
- if ($PSScriptRoot -ne "$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\$arch")
- {
- #::***********************************************************************************************
- #:: [Check whether pinned battery gauge to taskbar previously]
- #::
- #::
- #::***********************************************************************************************
- $SID = GetCurrentActiveUserSID
- New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS *>&1 | Write-Log
- $Pinned = (Get-ItemProperty -Path HKU:$SID\SOFTWARE\Lenovo\BatteryGauge -Name "ShowInTaskbar" -ErrorAction SilentlyContinue).ShowInTaskbar
- if ($Pinned -eq 1)
- {
- Write-Log "The battery gauge had been pinned to task tray previously"
- }
- else
- {
- Write-Log "The battery gauge had NOT been pinned to task tray previously"
- }
- if (Test-Path "$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\$arch\$UninstallFileName")
- {
- Write-Log "Uninstall old version by call $UninstallFileName under package folder"
- Write-Log "Push-Location `"$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\$arch\`""
- Push-Location "$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\$arch\" *>&1 | Write-Log
- $PSPATH="$env:SystemRoot\System32\WindowsPowerShell\v1.0\PowerShell.exe"
- Write-Log "Start-Process -NoNewWindow -Wait -FilePath $PSPATH -ArgumentList `"$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\$arch\$UninstallFileName`""
- Start-Process -NoNewWindow -Wait -FilePath $PSPATH -ArgumentList "$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\$arch\$UninstallFileName ForUpdate" *>&1 | Write-Log
- Write-Log "Pop-Location"
- Pop-location *>&1 | Write-Log
- Write-Log "Remove old version package folder"
- Write-Log "Remove-Item -Recurse -Force `"$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage`""
- Remove-Item -Recurse -Force "$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage" *>&1 | Write-Log
- }
- Write-Log "Make package folder for new version"
- Write-Log "New-Item `"$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\`" -type directory"
- New-Item "$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\" -type directory *>&1 | Write-Log
- ## ::************************************************************************************************
- ## :: [Rename the LenovoBatteryGaugePackage.dll file if this file haven't been removed. There was ]
- ## :: [issue which will lead this dll cannot unload from explorer due to in-use, then cannot replace]
- ## :: [Can remove this operation from next version, since already fixed the in-use issue in the dll ]
- ## ::************************************************************************************************
- $rand=Get-Random
- if(Test-Path -Path "$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\x64\LenovoBatteryGaugePackage.dll" -PathType Leaf)
- {
- Write-Log "Rename-Item -Path `"$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\x64\LenovoBatteryGaugePackage.dll`" -NewName `"$rand.dll`""
- Rename-Item -Path "$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\x64\LenovoBatteryGaugePackage.dll" -NewName "$rand.dll"
- New-ItemProperty -Path HKU:$SID\SOFTWARE\Lenovo\BatteryGauge -Name "ShowInTaskbar" -Value $Pinned -PropertyType DWORD -Force
- }
- if(Test-Path -Path "$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\x86\LenovoBatteryGaugePackage.dll" -PathType Leaf)
- {
- Write-Log "Rename-Item -Path `"$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\x86\LenovoBatteryGaugePackage.dll`" -NewName `"$rand.dll`""
- Rename-Item -Path "$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\x86\LenovoBatteryGaugePackage.dll" -NewName "$rand.dll"
- New-ItemProperty -Path HKU:$SID\SOFTWARE\Lenovo\BatteryGauge -Name "ShowInTaskbar" -Value $Pinned -PropertyType DWORD -Force
- }
- Remove-PSDrive -Name HKU *>&1 | Write-Log
- Write-Log "Copy new version package contents to package folder, and give neccessary privileage"
- Write-Log "Copy-Item `"$PSScriptRoot\..\*`" `"$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\`" -force -recurse -verbose"
- Copy-Item "$PSScriptRoot\..\*" "$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\" -force -recurse -verbose *>&1 | Write-Log
- Write-Log "Install new version by call $InstallFileName under package folder"
- Write-Log "Push-Location `"$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\$arch\`""
- Push-Location "$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\$arch\" *>&1 | Write-Log
- $PSPATH="$env:SystemRoot\System32\WindowsPowerShell\v1.0\PowerShell.exe"
- Write-Log "Start-Process -NoNewWindow -Wait -FilePath $PSPATH -ArgumentList `"$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\$arch\$InstallFileName`""
- Start-Process -NoNewWindow -Wait -FilePath $PSPATH -ArgumentList "$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\$arch\$InstallFileName $Pinned" *>&1 | Write-Log
- Write-Log "Pop-location"
- Pop-location *>&1 | Write-Log
- Write-Log "completed re-running in the package folder"
- Write-Log "Remove temporary install package folder"
- Write-Log "Remove-Item -Recurse -Force `"$PSScriptRoot\..`""
- Remove-Item -Recurse -Force "$PSScriptRoot\.." *>&1 | Write-Log
- Exit
- }
- # ::***********************************************************************************************
- # :: [Uninstall old Lenovo Battery Gauge ]
- # ::
- # ::
- # ::***********************************************************************************************
- if (Get-Variable ProdCode64 -ErrorAction SilentlyContinue) {
- UninstallMsi($ProdCode64)
- }
- if (Get-Variable ProdCode32 -ErrorAction SilentlyContinue) {
- UninstallMsi($ProdCode32)
- }
- if (Get-Variable ProdCode64_OLD -ErrorAction SilentlyContinue) {
- UninstallMsi($ProdCode64_OLD)
- }
- if (Get-Variable ProdCode32_OLD -ErrorAction SilentlyContinue) {
- UninstallMsi($ProdCode32_OLD)
- }
- # ::***********************************************************************************************
- # :: [Kill QuickSetting.exe process ]
- # ::
- # ::
- # ::***********************************************************************************************
- Write-Log "Start-Process -NoNewWindow -Wait -FilePath taskkill.exe -ArgumentList `"/F /T /IM QuickSetting.exe`""
- Start-Process -NoNewWindow -Wait -FilePath taskkill.exe -ArgumentList "/F /T /IM QuickSetting.exe" *>&1 | Write-Log
- # ::***********************************************************************************************
- # :: [Register PluginsContract.dll ]
- # ::
- # ::
- # ::***********************************************************************************************
- Write-Log "Start-Process -NoNewWindow -Wait -FilePath $env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\$arch\RegAsm.exe -ArgumentList `"/silent $env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\$arch\PluginsContract.dll`""
- Start-Process -NoNewWindow -Wait -FilePath $env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\$arch\RegAsm.exe -ArgumentList "/silent $env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\$arch\PluginsContract.dll" *>&1 | Write-Log
- if($? -ne $true)
- {
- Write-Log "Registry PluginsContract.dll into system return code $LastExitCode"
- }
- # ::***********************************************************************************************
- # :: [Register LenovoBatteryGaugePackage.dll ]
- # ::
- # ::
- # ::***********************************************************************************************
- Write-Log "Start-Process -NoNewWindow -Wait -FilePath regsvr32.exe -ArgumentList `"/s $env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\$arch\LenovoBatteryGaugePackage.dll`""
- Start-Process -NoNewWindow -Wait -FilePath regsvr32.exe -ArgumentList "/s $env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\$arch\LenovoBatteryGaugePackage.dll" *>&1 | Write-Log
- if($? -ne $true)
- {
- Write-Log "Registry battery gauge to system return code $LastExitCode"
- }
- # ::***********************************************************************************************
- # :: [Create Lenovo Battery Gauge Registry Entries ]
- # ::
- # ::
- # ::***********************************************************************************************
- Write-Log "Start-Process -NoNewWindow -Wait -FilePath reg.exe -ArgumentList `"add HKLM\Software\Lenovo\QuickSetting /f`""
- Start-Process -NoNewWindow -Wait -FilePath reg.exe -ArgumentList "add HKLM\Software\Lenovo\QuickSetting /f" *>&1 | Write-Log
- if($? -ne $true)
- {
- Write-Log "Add registry key `"HKLM\Software\Lenovo\QuickSetting`" return code $LastExitCode"
- }
- Write-Log "Start-Process -NoNewWindow -Wait -FilePath reg.exe -ArgumentList `"add HKLM\Software\Lenovo\QuickSetting /v Path /t REG_SZ /d $env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\$arch\ /f`""
- Start-Process -NoNewWindow -Wait -FilePath reg.exe -ArgumentList "add HKLM\Software\Lenovo\QuickSetting /v Path /t REG_SZ /d `"$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\$arch\\`" /f" *>&1 | Write-Log
- if($? -ne $true)
- {
- Write-Log "Add registry value `"Path`" to `"HKLM\Software\Lenovo\QuickSetting`" return code $LastExitCode"
- }
- Write-Log "Start-Process -NoNewWindow -Wait -FilePath reg.exe -ArgumentList `"add HKLM\Software\Lenovo\QuickSetting /v Location /t REG_SZ /d $env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\$arch\QuickSetting.exe /f`""
- Start-Process -NoNewWindow -Wait -FilePath reg.exe -ArgumentList "add HKLM\Software\Lenovo\QuickSetting /v Location /t REG_SZ /d `"$env:ProgramData\Lenovo\ImController\Plugins\LenovoBatteryGaugePackage\$arch\QuickSetting.exe`" /f" *>&1 | Write-Log
- if($? -ne $true)
- {
- Write-Log "Add registry value `"Location`" to `"HKLM\Software\Lenovo\QuickSetting`" return code $LastExitCode"
- }
- # ::***********************************************************************************************
- # :: [ Pin to task bar if needed]
- # ::
- # ::
- # ::***********************************************************************************************
- Write-Log "installing param is: $($args[0])"
- if ($($args[0]) -eq 1)
- {
- if(BatteryGaugeIconControl($ShowBg) -ne 0 )
- {
- Write-Log "Show battery gauge icon on task tray sucessful"
- }
- else
- {
- Write-Log "Show battery gauge icon on task tray failure"
- }
- }
- Write-Log "success"
- Exit
- # SIG # Begin signature block
- # MIIcZQYJKoZIhvcNAQcCoIIcVjCCHFICAQExDzANBglghkgBZQMEAgEFADB5Bgor
- # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
- # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBgZ2F4VJoIbmF8
- # 3QYfGeL/aMdCm5VwMndTgCls1qcQ7KCCF2AwggPuMIIDV6ADAgECAhB+k+v7fMZO
- # WepLmnfUBvw7MA0GCSqGSIb3DQEBBQUAMIGLMQswCQYDVQQGEwJaQTEVMBMGA1UE
- # CBMMV2VzdGVybiBDYXBlMRQwEgYDVQQHEwtEdXJiYW52aWxsZTEPMA0GA1UEChMG
- # VGhhd3RlMR0wGwYDVQQLExRUaGF3dGUgQ2VydGlmaWNhdGlvbjEfMB0GA1UEAxMW
- # VGhhd3RlIFRpbWVzdGFtcGluZyBDQTAeFw0xMjEyMjEwMDAwMDBaFw0yMDEyMzAy
- # MzU5NTlaMF4xCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jwb3Jh
- # dGlvbjEwMC4GA1UEAxMnU3ltYW50ZWMgVGltZSBTdGFtcGluZyBTZXJ2aWNlcyBD
- # QSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsayzSVRLlxwS
- # CtgleZEiVypv3LgmxENza8K/LlBa+xTCdo5DASVDtKHiRfTot3vDdMwi17SUAAL3
- # Te2/tLdEJGvNX0U70UTOQxJzF4KLabQry5kerHIbJk1xH7Ex3ftRYQJTpqr1SSwF
- # eEWlL4nO55nn/oziVz89xpLcSvh7M+R5CvvwdYhBnP/FA1GZqtdsn5Nph2Upg4XC
- # YBTEyMk7FNrAgfAfDXTekiKryvf7dHwn5vdKG3+nw54trorqpuaqJxZ9YfeYcRG8
- # 4lChS+Vd+uUOpyyfqmUg09iW6Mh8pU5IRP8Z4kQHkgvXaISAXWp4ZEXNYEZ+VMET
- # fMV58cnBcQIDAQABo4H6MIH3MB0GA1UdDgQWBBRfmvVuXMzMdJrU3X3vP9vsTIAu
- # 3TAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
- # ZS5jb20wEgYDVR0TAQH/BAgwBgEB/wIBADA/BgNVHR8EODA2MDSgMqAwhi5odHRw
- # Oi8vY3JsLnRoYXd0ZS5jb20vVGhhd3RlVGltZXN0YW1waW5nQ0EuY3JsMBMGA1Ud
- # JQQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIBBjAoBgNVHREEITAfpB0wGzEZ
- # MBcGA1UEAxMQVGltZVN0YW1wLTIwNDgtMTANBgkqhkiG9w0BAQUFAAOBgQADCZuP
- # ee9/WTCq72i1+uMJHbtPggZdN1+mUp8WjeockglEbvVt61h8MOj5aY0jcwsSb0ep
- # rjkR+Cqxm7Aaw47rWZYArc4MTbLQMaYIXCp6/OJ6HVdMqGUY6XlAYiWWbsfHN2qD
- # IQiOQerd2Vc/HXdJhyoWBl6mOGoiEqNRGYN+tjCCBKMwggOLoAMCAQICEA7P9DjI
- # /r81bgTYapgbGlAwDQYJKoZIhvcNAQEFBQAwXjELMAkGA1UEBhMCVVMxHTAbBgNV
- # BAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMTAwLgYDVQQDEydTeW1hbnRlYyBUaW1l
- # IFN0YW1waW5nIFNlcnZpY2VzIENBIC0gRzIwHhcNMTIxMDE4MDAwMDAwWhcNMjAx
- # MjI5MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29y
- # cG9yYXRpb24xNDAyBgNVBAMTK1N5bWFudGVjIFRpbWUgU3RhbXBpbmcgU2Vydmlj
- # ZXMgU2lnbmVyIC0gRzQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCi
- # Yws5RLi7I6dESbsO/6HwYQpTk7CY260sD0rFbv+GPFNVDxXOBD8r/amWltm+YXkL
- # W8lMhnbl4ENLIpXuwitDwZ/YaLSOQE/uhTi5EcUj8mRY8BUyb05Xoa6IpALXKh7N
- # S+HdY9UXiTJbsF6ZWqidKFAOF+6W22E7RVEdzxJWC5JH/Kuu9mY9R6xwcueS51/N
- # ELnEg2SUGb0lgOHo0iKl0LoCeqF3k1tlw+4XdLxBhircCEyMkoyRLZ53RB9o1qh0
- # d9sOWzKLVoszvdljyEmdOsXF6jML0vGjG/SLvtmzV4s73gSneiKyJK4ux3DFvk6D
- # Jgj7C72pT5kI4RAocqrNAgMBAAGjggFXMIIBUzAMBgNVHRMBAf8EAjAAMBYGA1Ud
- # JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDBzBggrBgEFBQcBAQRn
- # MGUwKgYIKwYBBQUHMAGGHmh0dHA6Ly90cy1vY3NwLndzLnN5bWFudGVjLmNvbTA3
- # BggrBgEFBQcwAoYraHR0cDovL3RzLWFpYS53cy5zeW1hbnRlYy5jb20vdHNzLWNh
- # LWcyLmNlcjA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vdHMtY3JsLndzLnN5bWFu
- # dGVjLmNvbS90c3MtY2EtZzIuY3JsMCgGA1UdEQQhMB+kHTAbMRkwFwYDVQQDExBU
- # aW1lU3RhbXAtMjA0OC0yMB0GA1UdDgQWBBRGxmmjDkoUHtVM2lJjFz9eNrwN5jAf
- # BgNVHSMEGDAWgBRfmvVuXMzMdJrU3X3vP9vsTIAu3TANBgkqhkiG9w0BAQUFAAOC
- # AQEAeDu0kSoATPCPYjA3eKOEJwdvGLLeJdyg1JQDqoZOJZ+aQAMc3c7jecshaAba
- # tjK0bb/0LCZjM+RJZG0N5sNnDvcFpDVsfIkWxumy37Lp3SDGcQ/NlXTctlzevTcf
- # Q3jmeLXNKAQgo6rxS8SIKZEOgNER/N1cdm5PXg5FRkFuDbDqOJqxOtoJcRD8HHm0
- # gHusafT9nLYMFivxf1sJPZtb4hbKE4FtAC44DagpjyzhsvRaqQGvFZwsL0kb2yK7
- # w/54lFHDhrGCiF3wPbRRoXkzKy57udwgCRNx62oZW8/opTBXLIlJP7nPf8m/PiJo
- # Y1OavWl0rMUdPH+S4MO8HNgEdTCCBLkwggOhoAMCAQICEEAaxGQhsxMhAw675BIa
- # xR0wDQYJKoZIhvcNAQELBQAwgb0xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJp
- # U2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazE6MDgG
- # A1UECxMxKGMpIDIwMDggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1
- # c2Ugb25seTE4MDYGA1UEAxMvVmVyaVNpZ24gVW5pdmVyc2FsIFJvb3QgQ2VydGlm
- # aWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwNDAyMDAwMDAwWhcNMzcxMjAxMjM1OTU5
- # WjCBvTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYD
- # VQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBW
- # ZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQD
- # Ey9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
- # eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMdhN16xATTbYtcVm/9Y
- # WowjI9ZgjpHXkJiDeuZYGTiMxfblZIW0onH77b252s1NALTILXOlx2lxlR85PLJE
- # B5zoDvpNSsQh3ylhjzIiYYLFhx9ujHxfFiBRRNFwT1fq4xzjzHnuWNgOwrNFk8As
- # 55oXK3sAN3pBM3jhM+LzEBp/hyy+9vX3QuLlv4diiV8AS9/F3eR1RDJBOh5xbmnL
- # C3VGCNHK0iuV0M/7uUBrZIxXTfwTEXmE7V5U9jSfCAHzECUGF0ra8R16ZmuYYGak
- # 2e/SLoLx8O8J6kTJFWriA24z06yfVQDH9ghqlLlf3OAz8YRg+VsnEbT8FvK7VmqA
- # JY0CAwEAAaOBsjCBrzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjBt
- # BggrBgEFBQcBDARhMF+hXaBbMFkwVzBVFglpbWFnZS9naWYwITAfMAcGBSsOAwIa
- # BBSP5dMahqyNjmvDz4Bq1EgYLHsZLjAlFiNodHRwOi8vbG9nby52ZXJpc2lnbi5j
- # b20vdnNsb2dvLmdpZjAdBgNVHQ4EFgQUtnf6aUhHn1MS1cLqBzJ2B9GXBxkwDQYJ
- # KoZIhvcNAQELBQADggEBAEr4+LAD5ixne+SUd2PMbkz5fQ4N3Mi5NblwT2P6JPps
- # g4xHnTtj85r5djKVkbF3vKyavrHkMSHGgZVWWg6xwtSxplms8WPLuEwdWZBK75AW
- # KB9arhD7gVA4DGzM8T3D9WPjs+MhySQ56f0VZkb0GxHQTXOjfUb5Pe2oX2LU8T/4
- # 4HRXKxidgbTEKNqUl6Vw66wdvgcR8NXb3eWM8NUysIPmV+KPv76hqr89HbXUOOrX
- # sFw6T2o/j8BmbGOq6dmkFvSB0ZUUDn3NlTTZ0o9wc4F7nH69mGHYRYeYkMXrhjDG
- # Nb/w/8NViINL7wWSBnHyuJiTt+zNgmHxOOZPl5gqWo0wggS7MIIDo6ADAgECAhBe
- # aloGbfZB2JYM7qNu88tLMA0GCSqGSIb3DQEBCwUAMIGEMQswCQYDVQQGEwJVUzEd
- # MBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNVBAsTFlN5bWFudGVj
- # IFRydXN0IE5ldHdvcmsxNTAzBgNVBAMTLFN5bWFudGVjIENsYXNzIDMgU0hBMjU2
- # IENvZGUgU2lnbmluZyBDQSAtIEcyMB4XDTE3MTEyODAwMDAwMFoXDTE4MTEyMDIz
- # NTk1OVowbDELMAkGA1UEBhMCVVMxFzAVBgNVBAgMDk5vcnRoIENhcm9saW5hMRQw
- # EgYDVQQHDAtNb3JyaXN2aWxsZTEPMA0GA1UECgwGTGVub3ZvMQwwCgYDVQQLDANH
- # MDgxDzANBgNVBAMMBkxlbm92bzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
- # ggEBAMkbsV4DJ2Kv995qSNCYf/vJ001JkObdtW4dibreW2Y/fvIed9ztjXFnGoTZ
- # 6tyJJdanw9+fTK3UNuE0GvaLraq2B2argT08VsOggKOh6nTCeSt50/bkvaLHBxeR
- # Qhwc8rO1HeDuJre8+P1RTCzMS5Nkzpb2bTm3kC4D4ZHonST4s5CxHVC7dIo6dqNt
- # qzR+FDaTn+Vl2rxcC8oUs7AEEOz5acVriBX3Xah03e8roY0JUGVRvO96tRAZLC6O
- # +nubZce3wnsOitXQt8KKxaZOnvyeBlX0IgnJtYr+WRktLyeQtoNoWTimiPD/0PFI
- # 5j0Nt8qWaZ4Jj088Wd1Xr+4s4NkCAwEAAaOCAT4wggE6MAkGA1UdEwQCMAAwDgYD
- # VR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMGEGA1UdIARaMFgwVgYG
- # Z4EMAQQBMEwwIwYIKwYBBQUHAgEWF2h0dHBzOi8vZC5zeW1jYi5jb20vY3BzMCUG
- # CCsGAQUFBwICMBkMF2h0dHBzOi8vZC5zeW1jYi5jb20vcnBhMB8GA1UdIwQYMBaA
- # FNTABiJJ6zlL3ZPiXKG4R3YJcgNYMCsGA1UdHwQkMCIwIKAeoByGGmh0dHA6Ly9y
- # Yi5zeW1jYi5jb20vcmIuY3JsMFcGCCsGAQUFBwEBBEswSTAfBggrBgEFBQcwAYYT
- # aHR0cDovL3JiLnN5bWNkLmNvbTAmBggrBgEFBQcwAoYaaHR0cDovL3JiLnN5bWNi
- # LmNvbS9yYi5jcnQwDQYJKoZIhvcNAQELBQADggEBAAJtYMiLmB2sXEPJnwuYI2Nz
- # vm5h9kK8QkMNMWSukmVGuik8DVWCOjRHCvkyc9lPODs7ALNVU9RbMJibZK431H98
- # pUp+4yIPNCEodl1m0PuxTTRYWuM1VMNBq+fwxwM6zFecc81coOtVBfUrxv8ZW777
- # +1I0Ko+zAtXnrvYES8z6cAbk8R7ueeZMEydAeyZp/30F43T3qDUU8BxMQD/FAx6b
- # Rq6ohCjJ2DHnWvMKK3kgSli34iNz2bEheQkZ23S0cwDL1RsEy5Cys6eusTJ9ubGB
- # huxBmgvTtogafcNzBSwe6Cfc32FnSz7YqYXJZiz4Jq7Vpme83HeRJVzRrWwjlK8w
- # ggVHMIIEL6ADAgECAhB8GzU1SufbdOdBXxFpymuoMA0GCSqGSIb3DQEBCwUAMIG9
- # MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsT
- # FlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlT
- # aWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1Zl
- # cmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X
- # DTE0MDcyMjAwMDAwMFoXDTI0MDcyMTIzNTk1OVowgYQxCzAJBgNVBAYTAlVTMR0w
- # GwYDVQQKExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjEfMB0GA1UECxMWU3ltYW50ZWMg
- # VHJ1c3QgTmV0d29yazE1MDMGA1UEAxMsU3ltYW50ZWMgQ2xhc3MgMyBTSEEyNTYg
- # Q29kZSBTaWduaW5nIENBIC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
- # AoIBAQDXlUPU3N9nrjn7UqS2JjEEcOm3jlsqujdpNZWPu8Aw54bYc7vf69F2P4pW
- # justS/BXGE6xjaUz0wt1I9VqeSfdo9P3Dodltd6tHPH1NbQiUa8iocFdS5B/wFlO
- # q515qQLXHkmxO02H/sJ4q7/vUq6crwjZOeWaUT5pXzAQTnFjbFjh8CAzGw90vlvL
- # EuHbjMSAlHK79kWansElC/ujHJ7YpglwcezAR0yPfcPeGc4+7gRyjhfT//CyBTIZ
- # TNOwHJ/+pXggQnBBsCaMbwDIOgARQXpBsKeKkQSgmXj0d7TzYCrmbFAEtxRg/w1R
- # 9KiLhP4h2lxeffUpeU+wRHRvbXL/AgMBAAGjggF4MIIBdDAuBggrBgEFBQcBAQQi
- # MCAwHgYIKwYBBQUHMAGGEmh0dHA6Ly9zLnN5bWNkLmNvbTASBgNVHRMBAf8ECDAG
- # AQH/AgEAMGYGA1UdIARfMF0wWwYLYIZIAYb4RQEHFwMwTDAjBggrBgEFBQcCARYX
- # aHR0cHM6Ly9kLnN5bWNiLmNvbS9jcHMwJQYIKwYBBQUHAgIwGRoXaHR0cHM6Ly9k
- # LnN5bWNiLmNvbS9ycGEwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL3Muc3ltY2Iu
- # Y29tL3VuaXZlcnNhbC1yb290LmNybDATBgNVHSUEDDAKBggrBgEFBQcDAzAOBgNV
- # HQ8BAf8EBAMCAQYwKQYDVR0RBCIwIKQeMBwxGjAYBgNVBAMTEVN5bWFudGVjUEtJ
- # LTEtNzI0MB0GA1UdDgQWBBTUwAYiSes5S92T4lyhuEd2CXIDWDAfBgNVHSMEGDAW
- # gBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEAf+vKp+qL
- # dkLrPo4gVDDjt7nc+kg+FscPRZUQzSeGo2bzAu1x+KrCVZeRcIP5Un5SaTzJ8eCU
- # RoAYu6HUpFam8x0AkdWG80iH4MvENGggXrTL+QXtnK9wUye56D5+UaBpcYvcUe2A
- # OiUyn0SvbkMo0yF1u5fYi4uM/qkERgSF9xWcSxGNxCwX/tVuf5riVpLxlrOtLfn0
- # 39qJmc6yOETA90d7yiW5+ipoM5tQct6on9TNLAs0vYsweEDgjY4nG5BvGr4IFYFd
- # 6y/iUedRHsl4KeceZb847wFKAQkkDhbEFHnBQTc00D2RUpSd4WjvCPDiaZxnbpAL
- # GpNx1CYCw8BaIzGCBFswggRXAgEBMIGZMIGEMQswCQYDVQQGEwJVUzEdMBsGA1UE
- # ChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNVBAsTFlN5bWFudGVjIFRydXN0
- # IE5ldHdvcmsxNTAzBgNVBAMTLFN5bWFudGVjIENsYXNzIDMgU0hBMjU2IENvZGUg
- # U2lnbmluZyBDQSAtIEcyAhBealoGbfZB2JYM7qNu88tLMA0GCWCGSAFlAwQCAQUA
- # oIGEMBgGCisGAQQBgjcCAQwxCjAIoAKAAKECgAAwGQYJKoZIhvcNAQkDMQwGCisG
- # AQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcN
- # AQkEMSIEII5CIqS6M7K9pYH8kNNSj+tyS+ulkqKpodTBEfr/vImYMA0GCSqGSIb3
- # DQEBAQUABIIBAI1PmmgK0tq8l/ongqEAVGm2OfOkiv3T3IYEzySy5jfK53nggLW2
- # vUqDYgX3f3o+xn8AkMMD6ud67ZmUwyC9WJT7rMYky49lQZxgD3puau5TTlAWyeQt
- # +g7qs562J2ZqcdTPCgZk5SDatKGgvEG7VDIr4Lxbz80qlBfuSOzHT4yRRCfzPZIm
- # RjYSH4kiEmHP2+qjg67zvJsBhIClBaO6+fpgM1RSth97MXYsWg8mZSE4ey3GRugZ
- # +tU0tKnjFyPcIyhxcOc615X2U7ySbC2Vn4JJV7Ulh1dOLsSJge/oZmiup4RQGnTg
- # ghDr4Qa5n/35Wlo5NT5TM3JbFUWhuCo7VmGhggILMIICBwYJKoZIhvcNAQkGMYIB
- # +DCCAfQCAQEwcjBeMQswCQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29y
- # cG9yYXRpb24xMDAuBgNVBAMTJ1N5bWFudGVjIFRpbWUgU3RhbXBpbmcgU2Vydmlj
- # ZXMgQ0EgLSBHMgIQDs/0OMj+vzVuBNhqmBsaUDAJBgUrDgMCGgUAoF0wGAYJKoZI
- # hvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTgwNDI0MDk1NDQ0
- # WjAjBgkqhkiG9w0BCQQxFgQUr/avqW3a5suHjTcIAVNGYDW8kCgwDQYJKoZIhvcN
- # AQEBBQAEggEALQdQaiV4FuobMdGtZTqhZ0gVE1ggQE6Vd3ruSHWLfSqu0dlyA9LA
- # Rg4XGui1lCA/sLCgyquWG7oMzW2PwyWDxt6Cw/3mHyUCBnRU6GxPl/MdQP38pM3D
- # xfDrc93YLar+dmCWJmSdbXrUJRphP3KR+Blp6AN2sKucKTqgqQk2OoWKuurVgFKE
- # /SMJKbH9KBdy3vEAyGwS87G6DYzW/11kNblL9e0m7RMchS/jO+sjix5lPAZyu2xp
- # G1+BQQW6MsgvhfZCwV3mV6QP/KPorJvPBrGDZf1PLg4tLBY20faG4jomBORj4oAz
- # 3n1CWQnpkrIR5CnvJr3lhqSX4BY1T+Enbw==
- # SIG # End signature block
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement