From 4ff1d3fadb2d1f9ad2dd28c7d5892e081c120355 Mon Sep 17 00:00:00 2001 From: Mario Fetka Date: Tue, 24 Sep 2019 18:15:11 +0200 Subject: [PATCH] Update infinstaller --- CLIENT_DATA/X86/Install_SysinternalsSuite.inf | 231 ++++-- New-SysinternalsSuiteInstaller.ps1 | 719 +++++++++--------- readme | 5 +- 3 files changed, 515 insertions(+), 440 deletions(-) diff --git a/CLIENT_DATA/X86/Install_SysinternalsSuite.inf b/CLIENT_DATA/X86/Install_SysinternalsSuite.inf index 100179f..54cc0f7 100644 --- a/CLIENT_DATA/X86/Install_SysinternalsSuite.inf +++ b/CLIENT_DATA/X86/Install_SysinternalsSuite.inf @@ -16,7 +16,7 @@ ; # (ii) to include a valid copyright notice on Your software product in which ; # the Sample Code is embedded; and ; # (iii) to indemnify, hold harmless, and defend Us and Our suppliers from and -; # against any claims or lawsuits, including attorneys’ fees, that arise +; # against any claims or lawsuits, including attorneys� fees, that arise ; # or result from the use or distribution of the Sample Code. ; ######################################################################################### ; //*************************************************************************** @@ -30,7 +30,7 @@ ; // ; // Purpose: Installs the Sysinternals Suite ; // -; // Updated: October 26, 2015 +; // Updated: September 20, 2019 ; // ; // INF File Generation Script version: 1.0.0 ; // @@ -76,6 +76,7 @@ Install_SysinternalsSuite.inf [SysinternalsSuite.Files.ProgramFiles] accesschk.exe +accesschk64.exe AccessEnum.exe AdExplorer.chm ADExplorer.exe @@ -85,90 +86,140 @@ adrestore.exe Autologon.exe autoruns.chm Autoruns.exe +Autoruns64.dll +Autoruns64.exe autorunsc.exe +autorunsc64.exe Bginfo.exe +Bginfo64.exe Cacheset.exe Clockres.exe +Clockres64.exe Contig.exe +Contig64.exe Coreinfo.exe ctrl2cap.amd.sys ctrl2cap.exe ctrl2cap.nt4.sys ctrl2cap.nt5.sys -dbgview.chm +Dbgview.chm Dbgview.exe Desktops.exe Disk2vhd.chm disk2vhd.exe diskext.exe +diskext64.exe Diskmon.exe DISKMON.HLP DiskView.exe DMON.SYS du.exe +du64.exe efsdump.exe Eula.txt FindLinks.exe +FindLinks64.exe handle.exe +handle64.exe hex2dec.exe +hex2dec64.exe junction.exe +junction64.exe ldmdump.exe Listdlls.exe +Listdlls64.exe livekd.exe +livekd64.exe LoadOrd.exe +LoadOrd64.exe +LoadOrdC.exe +LoadOrdC64.exe logonsessions.exe +logonsessions64.exe movefile.exe +movefile64.exe +notmyfault.exe +notmyfault64.exe +notmyfaultc.exe +notmyfaultc64.exe ntfsinfo.exe +ntfsinfo64.exe pagedfrg.exe pagedfrg.hlp pendmoves.exe +pendmoves64.exe pipelist.exe +pipelist64.exe PORTMON.CNT portmon.exe PORTMON.HLP procdump.exe +procdump64.exe procexp.chm procexp.exe +procexp64.exe procmon.chm Procmon.exe PsExec.exe +PsExec64.exe psfile.exe +psfile64.exe PsGetsid.exe +PsGetsid64.exe PsInfo.exe +PsInfo64.exe pskill.exe +pskill64.exe pslist.exe +pslist64.exe PsLoggedon.exe +PsLoggedon64.exe psloglist.exe +psloglist64.exe pspasswd.exe +pspasswd64.exe psping.exe +psping64.exe PsService.exe +PsService64.exe psshutdown.exe pssuspend.exe +pssuspend64.exe Pstools.chm psversion.txt RAMMap.exe readme.txt RegDelNull.exe +RegDelNull64.exe regjump.exe -RootkitRevealer.chm -RootkitRevealer.exe ru.exe +ru64.exe sdelete.exe +sdelete64.exe ShareEnum.exe ShellRunas.exe sigcheck.exe +sigcheck64.exe streams.exe +streams64.exe strings.exe +strings64.exe sync.exe +sync64.exe Sysmon.exe +Sysmon64.exe Tcpvcon.exe tcpview.chm Tcpview.exe TCPVIEW.HLP +Testlimit.exe +Testlimit64.exe Vmmap.chm vmmap.exe Volumeid.exe +Volumeid64.exe whois.exe +whois64.exe Winobj.exe WINOBJ.HLP ZoomIt.exe @@ -189,40 +240,44 @@ HKLM,%UDHERE% setup.ini, progman.groups,,""group1="%16407%\%SysinternalsSuiteGroup%\""" setup.ini, group1,,"""%SysinternalsSuiteCmdPrompt%"",""""""%11%\cmd.exe"""" /k cd /d """"%16422%\%SysinternalsSuiteGroup%"""""",,,,""%16422%\%SysinternalsSuiteGroup%"",""%SysinternalsSuiteCmdPrompt%""" setup.ini, group1,,"""%SysinternalsSuiteURL%"",""""""%16422%\Internet Explorer\iexplore.exe"""" """"http://www.microsoft.com/technet/sysinternals/utilities/sysinternalssuite.mspx"""""",""%16422%\Internet Explorer\iexplore.exe"",1,,""%HOMEDRIVE%%HOMEPATH%"",""%SysinternalsSuiteURL%""" -setup.ini, group1,,"""%DiskmonDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Diskmon.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%DiskmonDesc%""" -setup.ini, group1,,"""%BginfoDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Bginfo.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%BginfoDesc%""" -setup.ini, group1,,"""%ProcmonDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Procmon.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%ProcmonDesc%""" -setup.ini, group1,,"""%ADInsightDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\ADInsight.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%ADInsightDesc%""" -setup.ini, group1,,"""%VMMapDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\VMMap.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%VMMapDesc%""" -setup.ini, group1,,"""%AdExplorerDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\AdExplorer.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%AdExplorerDesc%""" -setup.ini, group1,,"""%ZoomItDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\ZoomIt.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%ZoomItDesc%""" -setup.ini, group1,,"""%AutologonDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Autologon.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%AutologonDesc%""" -setup.ini, group1,,"""%LoadOrdDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\LoadOrd.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%LoadOrdDesc%""" -setup.ini, group1,,"""%WinobjDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Winobj.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%WinobjDesc%""" -setup.ini, group1,,"""%procexpDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\procexp.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%procexpDesc%""" +setup.ini, group1,,"""%ADExplorerDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\ADExplorer.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%ADExplorerDesc%""" setup.ini, group1,,"""%TcpviewDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Tcpview.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%TcpviewDesc%""" -setup.ini, group1,,"""%DiskViewDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\DiskView.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%DiskViewDesc%""" -setup.ini, group1,,"""%AutorunsDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Autoruns.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%AutorunsDesc%""" -setup.ini, group1,,"""%RamMapDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\RamMap.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%RamMapDesc%""" setup.ini, group1,,"""%DbgviewDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Dbgview.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%DbgviewDesc%""" -setup.ini, group1,,"""%RootkitRevealerDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\RootkitRevealer.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%RootkitRevealerDesc%""" +setup.ini, group1,,"""%RAMMapDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\RAMMap.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%RAMMapDesc%""" +setup.ini, group1,,"""%ProcmonDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Procmon.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%ProcmonDesc%""" +setup.ini, group1,,"""%ZoomItDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\ZoomIt.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%ZoomItDesc%""" +setup.ini, group1,,"""%Autoruns64Desc%"",""""""%16422%\%SysinternalsSuiteGroup%\Autoruns64.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%Autoruns64Desc%""" +setup.ini, group1,,"""%AutologonDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Autologon.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%AutologonDesc%""" +setup.ini, group1,,"""%WinobjDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Winobj.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%WinobjDesc%""" +setup.ini, group1,,"""%LoadOrd64Desc%"",""""""%16422%\%SysinternalsSuiteGroup%\LoadOrd64.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%LoadOrd64Desc%""" setup.ini, group1,,"""%AccessEnumDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\AccessEnum.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%AccessEnumDesc%""" +setup.ini, group1,,"""%DiskViewDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\DiskView.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%DiskViewDesc%""" +setup.ini, group1,,"""%CachesetDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Cacheset.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%CachesetDesc%""" +setup.ini, group1,,"""%procexp64Desc%"",""""""%16422%\%SysinternalsSuiteGroup%\procexp64.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%procexp64Desc%""" +setup.ini, group1,,"""%ADInsightDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\ADInsight.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%ADInsightDesc%""" +setup.ini, group1,,"""%DiskmonDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Diskmon.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%DiskmonDesc%""" +setup.ini, group1,,"""%AutorunsDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Autoruns.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%AutorunsDesc%""" +setup.ini, group1,,"""%Bginfo64Desc%"",""""""%16422%\%SysinternalsSuiteGroup%\Bginfo64.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%Bginfo64Desc%""" +setup.ini, group1,,"""%BginfoDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Bginfo.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%BginfoDesc%""" +setup.ini, group1,,"""%LoadOrdDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\LoadOrd.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%LoadOrdDesc%""" +setup.ini, group1,,"""%vmmapDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\vmmap.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%vmmapDesc%""" +setup.ini, group1,,"""%ShareEnumDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\ShareEnum.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%ShareEnumDesc%""" +setup.ini, group1,,"""%DesktopsDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Desktops.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%DesktopsDesc%""" +setup.ini, group1,,"""%procexpDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\procexp.exe"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""%procexpDesc%""" setup.ini, progman.groups,,""group2="%16407%\%SysinternalsSuiteGroup%\%SysinternalsSuiteDocs%\""" -setup.ini, group2,,"""%ProcexpDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Procexp.chm""""""" -setup.ini, group2,,"""%AutorunsDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Autoruns.chm""""""" -setup.ini, group2,,"""%RootkitRevealerDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\RootkitRevealer.chm""""""" -setup.ini, group2,,"""%Disk2vhdDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Disk2vhd.chm""""""" -setup.ini, group2,,"""%WinobjDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Winobj.hlp""""""" -setup.ini, group2,,"""%procmonDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\procmon.chm""""""" -setup.ini, group2,,"""%ADInsightDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\ADInsight.chm""""""" -setup.ini, group2,,"""%TcpviewDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Tcpview.chm""""""" -setup.ini, group2,,"""%DiskmonDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Diskmon.hlp""""""" -setup.ini, group2,,"""%VMMapDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\VMMap.chm""""""" +setup.ini, group2,,"""%VmmapDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Vmmap.chm""""""" setup.ini, group2,,"""%AdExplorerDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\AdExplorer.chm""""""" setup.ini, group2,,"""%DbgviewDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Dbgview.chm""""""" -setup.ini, group2,,"""%PsToolsDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\PsTools.chm""""""" +setup.ini, group2,,"""%tcpviewDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\tcpview.chm""""""" +setup.ini, group2,,"""%Disk2vhdDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Disk2vhd.chm""""""" +setup.ini, group2,,"""%PstoolsDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\Pstools.chm""""""" +setup.ini, group2,,"""%procexpDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\procexp.chm""""""" +setup.ini, group2,,"""%autorunsDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\autoruns.chm""""""" +setup.ini, group2,,"""%pagedfrgDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\pagedfrg.hlp""""""" +setup.ini, group2,,"""%ADInsightDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\ADInsight.chm""""""" +setup.ini, group2,,"""%procmonDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\procmon.chm""""""" @@ -230,84 +285,92 @@ setup.ini, group2,,"""%PsToolsDesc%"",""""""%16422%\%SysinternalsSuiteGroup%\PsT setup.ini, progman.groups,,""group1="%16407%\%SysinternalsSuiteGroup%""" setup.ini, group1,,"""%SysinternalsSuiteCmdPrompt%""" setup.ini, group1,,"""%SysinternalsSuiteURL%"" -setup.ini, group1,,"""%DiskmonDesc%"" -setup.ini, group1,,"""%BginfoDesc%"" -setup.ini, group1,,"""%ProcmonDesc%"" -setup.ini, group1,,"""%ADInsightDesc%"" -setup.ini, group1,,"""%VMMapDesc%"" -setup.ini, group1,,"""%AdExplorerDesc%"" -setup.ini, group1,,"""%ZoomItDesc%"" -setup.ini, group1,,"""%AutologonDesc%"" -setup.ini, group1,,"""%LoadOrdDesc%"" -setup.ini, group1,,"""%WinobjDesc%"" -setup.ini, group1,,"""%procexpDesc%"" +setup.ini, group1,,"""%ADExplorerDesc%"" setup.ini, group1,,"""%TcpviewDesc%"" -setup.ini, group1,,"""%DiskViewDesc%"" -setup.ini, group1,,"""%AutorunsDesc%"" -setup.ini, group1,,"""%RamMapDesc%"" setup.ini, group1,,"""%DbgviewDesc%"" -setup.ini, group1,,"""%RootkitRevealerDesc%"" +setup.ini, group1,,"""%RAMMapDesc%"" +setup.ini, group1,,"""%ProcmonDesc%"" +setup.ini, group1,,"""%ZoomItDesc%"" +setup.ini, group1,,"""%Autoruns64Desc%"" +setup.ini, group1,,"""%AutologonDesc%"" +setup.ini, group1,,"""%WinobjDesc%"" +setup.ini, group1,,"""%LoadOrd64Desc%"" setup.ini, group1,,"""%AccessEnumDesc%"" +setup.ini, group1,,"""%DiskViewDesc%"" +setup.ini, group1,,"""%CachesetDesc%"" +setup.ini, group1,,"""%procexp64Desc%"" +setup.ini, group1,,"""%ADInsightDesc%"" +setup.ini, group1,,"""%DiskmonDesc%"" +setup.ini, group1,,"""%AutorunsDesc%"" +setup.ini, group1,,"""%Bginfo64Desc%"" +setup.ini, group1,,"""%BginfoDesc%"" +setup.ini, group1,,"""%LoadOrdDesc%"" +setup.ini, group1,,"""%vmmapDesc%"" +setup.ini, group1,,"""%ShareEnumDesc%"" +setup.ini, group1,,"""%DesktopsDesc%"" +setup.ini, group1,,"""%procexpDesc%"" setup.ini, progman.groups,,""group2="%16407%\%SysinternalsSuiteGroup%\%SysinternalsSuiteDocs%\""" -setup.ini, group2,,"""%ProcexpDesc%"" -setup.ini, group2,,"""%AutorunsDesc%"" -setup.ini, group2,,"""%RootkitRevealerDesc%"" -setup.ini, group2,,"""%Disk2vhdDesc%"" -setup.ini, group2,,"""%WinobjDesc%"" -setup.ini, group2,,"""%procmonDesc%"" -setup.ini, group2,,"""%ADInsightDesc%"" -setup.ini, group2,,"""%TcpviewDesc%"" -setup.ini, group2,,"""%DiskmonDesc%"" -setup.ini, group2,,"""%VMMapDesc%"" +setup.ini, group2,,"""%VmmapDesc%"" setup.ini, group2,,"""%AdExplorerDesc%"" setup.ini, group2,,"""%DbgviewDesc%"" -setup.ini, group2,,"""%PsToolsDesc%"" +setup.ini, group2,,"""%tcpviewDesc%"" +setup.ini, group2,,"""%Disk2vhdDesc%"" +setup.ini, group2,,"""%PstoolsDesc%"" +setup.ini, group2,,"""%procexpDesc%"" +setup.ini, group2,,"""%autorunsDesc%"" +setup.ini, group2,,"""%pagedfrgDesc%"" +setup.ini, group2,,"""%ADInsightDesc%"" +setup.ini, group2,,"""%procmonDesc%"" [Strings] DisplayName = "Sysinternals Suite (Uninstall only)" -DisplayVersion = "October 26, 2015" +DisplayVersion = "September 20, 2019" SysinternalsSuiteGroup = "Sysinternals Suite" SysinternalsSuiteCmdPrompt = "Sysinternals Suite Command Prompt" SysinternalsSuiteURL = "Sysinternals Suite Web Page" -DiskmonDesc = "DiskMon for Windows" -BginfoDesc = "Bginfo" -ProcmonDesc = "Process Monitor" -ADInsightDesc = "Insight for Active Directory" -VMMapDesc = "VMMap" -AdExplorerDesc = "Active Directory Explorer" -ZoomItDesc = "ZoomIt" -AutologonDesc = "Autologon for Windows" -LoadOrdDesc = "LoadOrder" -WinobjDesc = "WinObj" -procexpDesc = "Process Explorer" +ADExplorerDesc = "Active Directory Explorer" TcpviewDesc = "TCPView for Windows" -DiskViewDesc = "DiskView" -AutorunsDesc = "AutoRuns for Windows" -RamMapDesc = "RamMap" DbgviewDesc = "DebugView for Windows" -RootkitRevealerDesc = "RootkitRevealer" +RAMMapDesc = "RamMap" +ProcmonDesc = "Process Monitor" +ZoomItDesc = "ZoomIt" +Autoruns64Desc = "AutoRuns for Windows (64bit)" +AutologonDesc = "Autologon for Windows" +WinobjDesc = "WinObj" +LoadOrd64Desc = "LoadOrder (64bit)" AccessEnumDesc = "AccessEnum" +DiskViewDesc = "DiskView" +CachesetDesc = "Cacheset" +procexp64Desc = "Process Explorer (64bit)" +ADInsightDesc = "Insight for Active Directory" +DiskmonDesc = "DiskMon for Windows" +AutorunsDesc = "AutoRuns for Windows" +Bginfo64Desc = "Bginfo (64bit)" +BginfoDesc = "Bginfo" +LoadOrdDesc = "LoadOrder" +vmmapDesc = "VMMap" +ShareEnumDesc = "ShareEnum" +DesktopsDesc = "Desktops for Windows" +procexpDesc = "Process Explorer" SysinternalsSuiteDocs = "Documentation" -ProcexpDesc = "Process Explorer Help" -AutorunsDesc = "AutoRuns for Windows Help" -RootkitRevealerDesc = "RootkitRevealer Help" -Disk2vhdDesc = "Disk2vhd Help" -WinobjDesc = "WinObj Help" -procmonDesc = "Process Monitor Help" -ADInsightDesc = "Insight for Active Directory Help" -TcpviewDesc = "TCPView for Windows Help" -DiskmonDesc = "DiskMon for Windows Help" -VMMapDesc = "VMMap Help" +VmmapDesc = "VMMap Help" AdExplorerDesc = "Active Directory Explorer Help" DbgviewDesc = "DebugView for Windows Help" -PsToolsDesc = "PsTools Help" +tcpviewDesc = "TCPView for Windows Help" +Disk2vhdDesc = "Disk2vhd Help" +PstoolsDesc = "PsTools Help" +procexpDesc = "Process Explorer Help" +autorunsDesc = "AutoRuns for Windows Help" +pagedfrgDesc = "PageDefrag for Windows Help" +ADInsightDesc = "Insight for Active Directory Help" +procmonDesc = "Process Monitor Help" UDHERE = "Software\Microsoft\Windows\CurrentVersion\Uninstall\SysinternalsSuite" diff --git a/New-SysinternalsSuiteInstaller.ps1 b/New-SysinternalsSuiteInstaller.ps1 index abed48b..f72fd36 100644 --- a/New-SysinternalsSuiteInstaller.ps1 +++ b/New-SysinternalsSuiteInstaller.ps1 @@ -1,355 +1,364 @@ -######################################################################################### -# MICROSOFT LEGAL STATEMENT FOR SAMPLE SCRIPTS/CODE -######################################################################################### -# This Sample Code is provided for the purpose of illustration only and is not -# intended to be used in a production environment. -# -# THIS SAMPLE CODE AND ANY RELATED INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY -# OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. -# -# We grant You a nonexclusive, royalty-free right to use and modify the Sample Code -# and to reproduce and distribute the object code form of the Sample Code, provided -# that You agree: -# (i) to not use Our name, logo, or trademarks to market Your software product -# in which the Sample Code is embedded; -# (ii) to include a valid copyright notice on Your software product in which -# the Sample Code is embedded; and -# (iii) to indemnify, hold harmless, and defend Us and Our suppliers from and -# against any claims or lawsuits, including attorneys’ fees, that arise -# or result from the use or distribution of the Sample Code. -######################################################################################### -# //*************************************************************************** -# // =============================== -# // Elevation PowerToys for Windows -# // =============================== -# // -# // Sysinternals Suite INF Installer Creation Script -# // -# // File: New-SysinternalsSuiteInstaller.ps1 -# // -# // Purpose: PowerShell Script to generate an INF file that installs the -# // Sysinternals Suite. -# // -# // Version: 1.0.0 -# // -# // Revisions: -# // ---------- -# // 1.0.0 10/27/2010 Created script. -# // -# //*************************************************************************** - -$scriptVersion = "1.0.0" - - -function Extract-Zip -{ - param([string]$zipfilename, [string] $destination) - - if(test-path($zipfilename)) - { - $shellApplication = new-object -com shell.application - $zipPackage = $shellApplication.NameSpace($zipfilename) - $destinationFolder = $shellApplication.NameSpace($destination) - $destinationFolder.CopyHere($zipPackage.Items()) - } -} - - -$invocation = (Get-Variable MyInvocation -Scope 0).Value -$scriptPath = Split-Path $Invocation.MyCommand.Path - -$uriZipFile = "https://download.sysinternals.com/files/SysinternalsSuite.zip" -$uriWebPage = "http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx" -$regexPattern = "

Updated: (.+?)<\/p>" -$userAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)" - - -# Template content of INF file -$infContent = @' -; ######################################################################################### -; # MICROSOFT LEGAL STATEMENT FOR SAMPLE SCRIPTS/CODE -; ######################################################################################### -; # This Sample Code is provided for the purpose of illustration only and is not -; # intended to be used in a production environment. -; # -; # THIS SAMPLE CODE AND ANY RELATED INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY -; # OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED -; # WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. -; # -; # We grant You a nonexclusive, royalty-free right to use and modify the Sample Code -; # and to reproduce and distribute the object code form of the Sample Code, provided -; # that You agree: -; # (i) to not use Our name, logo, or trademarks to market Your software product -; # in which the Sample Code is embedded; -; # (ii) to include a valid copyright notice on Your software product in which -; # the Sample Code is embedded; and -; # (iii) to indemnify, hold harmless, and defend Us and Our suppliers from and -; # against any claims or lawsuits, including attorneys’ fees, that arise -; # or result from the use or distribution of the Sample Code. -; ######################################################################################### -; //*************************************************************************** -; // =============================== -; // Elevation PowerToys for Windows -; // =============================== -; // -; // Sysinternals Suite INF Installer -; // -; // File: Install_SysinternalsSuite.inf -; // -; // Purpose: Installs the Sysinternals Suite -; // -; // Updated: -; // -; // INF File Generation Script version: -; // -; //*************************************************************************** - - -[Version] -Signature="$Windows NT$" - -[SysinternalsSuiteInstall] -CopyFiles = SysinternalsSuite.Files.Inf -CopyFiles = SysinternalsSuite.Files.ProgramFiles -AddReg = SysinternalsSuite.AddReg -UpdateInis = SysinternalsSuite.Links - -[DefaultInstall] -CopyFiles = SysinternalsSuite.Files.Inf -CopyFiles = SysinternalsSuite.Files.ProgramFiles -AddReg = SysinternalsSuite.AddReg -UpdateInis = SysinternalsSuite.Links - - -[DefaultUnInstall] -DelFiles = SysinternalsSuite.Files.Inf -DelFiles = SysinternalsSuite.Files.ProgramFiles -DelReg = SysinternalsSuite.DelReg -AddReg = SysinternalsSuite.Once.UnInst.Reg -UpdateInis = SysinternalsSuite.Links.Remove - -[SourceDisksNames] -55="Windows Sysinternals Suite","",1 - -[SourceDisksFiles] -Install_SysinternalsSuite.inf=55 - -[DestinationDirs] -SysinternalsSuite.Files.Inf = 17 -SysinternalsSuite.Files.ProgramFiles = 16422,Sysinternals Suite -SysinternalsSuite.Files.ProgramFiles.ShellRunas = 16422,Sysinternals Suite - -[SysinternalsSuite.Files.Inf] -Install_SysinternalsSuite.inf - -[SysinternalsSuite.Files.ProgramFiles] - - -[SysinternalsSuite.Once.UnInst.Reg] -HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,SysinternalsSuite,,"%11%\cmd.exe /c rd /s /q ""%16422%\Sysinternals Suite""" - -[SysinternalsSuite.AddReg] -HKLM,%UDHERE%,DisplayName,,"%DisplayName%" -HKLM,%UDHERE%,DisplayVersion,,"%DisplayVersion%" -HKLM,%UDHERE%,UninstallString,,"rundll32.exe syssetup.dll,SetupInfObjectInstallAction DefaultUninstall 132 %17%\Install_SysinternalsSuite.inf" - -[SysinternalsSuite.DelReg] -HKLM,%UDHERE% - -[SysinternalsSuite.Links] -setup.ini, progman.groups,,""group1="%16407%\%SysinternalsSuiteGroup%\""" -setup.ini, group1,,"""%SysinternalsSuiteCmdPrompt%"",""""""%11%\cmd.exe"""" /k cd /d """"%16422%\%SysinternalsSuiteGroup%"""""",,,,""%16422%\%SysinternalsSuiteGroup%"",""%SysinternalsSuiteCmdPrompt%""" -setup.ini, group1,,"""%SysinternalsSuiteURL%"",""""""%16422%\Internet Explorer\iexplore.exe"""" """"http://www.microsoft.com/technet/sysinternals/utilities/sysinternalssuite.mspx"""""",""%16422%\Internet Explorer\iexplore.exe"",1,,""%HOMEDRIVE%%HOMEPATH%"",""%SysinternalsSuiteURL%""" - - -setup.ini, progman.groups,,""group2="%16407%\%SysinternalsSuiteGroup%\%SysinternalsSuiteDocs%\""" - - - -[SysinternalsSuite.Links.Remove] -setup.ini, progman.groups,,""group1="%16407%\%SysinternalsSuiteGroup%""" -setup.ini, group1,,"""%SysinternalsSuiteCmdPrompt%""" -setup.ini, group1,,"""%SysinternalsSuiteURL%"" - - -setup.ini, progman.groups,,""group2="%16407%\%SysinternalsSuiteGroup%\%SysinternalsSuiteDocs%\""" - - - -[Strings] -DisplayName = "Sysinternals Suite (Uninstall only)" -DisplayVersion = "" - -SysinternalsSuiteGroup = "Sysinternals Suite" -SysinternalsSuiteCmdPrompt = "Sysinternals Suite Command Prompt" -SysinternalsSuiteURL = "Sysinternals Suite Web Page" - - -SysinternalsSuiteDocs = "Documentation" - - -UDHERE = "Software\Microsoft\Windows\CurrentVersion\Uninstall\SysinternalsSuite" -'@ - - -# Hash table for graphical programs that should have a Start Menu shortcut -# Entries are "" = "" -$hashStartMenuPrograms = @{ - "AccessEnum.exe" = "AccessEnum"; - "AdExplorer.exe" = "Active Directory Explorer"; - "Autologon.exe" = "Autologon for Windows"; - "ADInsight.exe" = "Insight for Active Directory"; - "Autoruns.exe" = "AutoRuns for Windows"; - "Bginfo.exe" = "Bginfo"; - "Dbgview.exe" = "DebugView for Windows"; - "Diskmon.exe" = "DiskMon for Windows"; - "DiskView.exe" = "DiskView"; - "LoadOrd.exe" = "LoadOrder"; - "procexp.exe" = "Process Explorer"; - "Procmon.exe" = "Process Monitor"; - "RamMap.exe" = "RamMap"; - "RootkitRevealer.exe" = "RootkitRevealer"; - "Tcpview.exe" = "TCPView for Windows"; - "VMMap.exe" = "VMMap"; - "Winobj.exe" = "WinObj"; - "ZoomIt.exe" = "ZoomIt" -} - -# Hash table for help files that should have a Start Menu shortcut -# Entries are "" = "" -$hashStartMenuHelp = @{ - "PsTools.chm" = "PsTools Help"; - "AdExplorer.chm" = "Active Directory Explorer Help"; - "ADInsight.chm" = "Insight for Active Directory Help"; - "Autoruns.chm" = "AutoRuns for Windows Help"; - "Dbgview.chm" = "DebugView for Windows Help"; - "Disk2vhd.chm" = "Disk2vhd Help"; - "Diskmon.hlp" = "DiskMon for Windows Help"; - "Procexp.chm" = "Process Explorer Help"; - "procmon.chm" = "Process Monitor Help"; - "RootkitRevealer.chm" = "RootkitRevealer Help"; - "Tcpview.chm" = "TCPView for Windows Help"; - "VMMap.chm" = "VMMap Help"; - "Winobj.hlp" = "WinObj Help"; -} - -$wc = new-object System.Net.WebClient -$wc.Headers.Add("user-agent", $userAgent) - -write-host "Downloading web page `"$($uriWebPage)`"" -$webPage = $wc.DownloadString($uriWebPage) - -$updatedDateString = (select-string -pattern $regexPattern -InputObject $webPage | Select -Expand Matches | Foreach { $_.Groups[1] }).Value -write-host "Suite Updated: $($updatedDateString)" - -$downloadFolder = "$($scriptPath)\$($updatedDateString)" -$extractFolder = "$($downloadFolder)\Extracted" -$filename = "$($downloadFolder)\SysinternalsSuite.zip" - -if ((Test-Path $downloadFolder) -eq $false) -{ - write-host "Creating download folder `"$($downloadFolder)`"" - New-Item -path "$($scriptPath)\" -name $updatedDateString -type directory > $null -} - -if ((Test-Path $extractFolder) -eq $false) -{ - write-host "Creating zip extraction folder `"$($extractFolder)`"" - New-Item -path "$($downloadFolder)\" -name "Extracted" -type directory > $null -} -else -{ - write-host "Deleting and recreating zip extraction folder `"$($extractFolder)`"" - Remove-Item -path $extractFolder -recurse - New-Item -path "$($downloadFolder)\" -name "Extracted" -type directory > $null -} - -write-host "Downloading Sysinternal Suite Zip file `"$($uriZipFile)`"" -$wc.DownloadFile($uriZipFile, $filename) - -write-host "Extracting Sysinternal Suite Zip file content" -extract-zip $filename $extractFolder - -write-host "Creating INF installer `"$($extractFolder)\Install_SysinternalsSuite.inf`"" -$infContent = $infContent | %{$_.replace("", $updatedDateString)} - -$extractedFiles = Get-ChildItem "$($extractFolder)\*.*" - -write-host " -- Update script version" -$infContent = $infContent | %{$_.replace("", $scriptVersion)} - -write-host " -- Update file list" -[string] $fileList = "" -foreach ($file in $extractedFiles) -{ - $fileList = $fileList + $file.Name + "`r`n" -} -$infContent = $infContent | %{$_.replace("", $fileList)} - - -write-host " -- Update entries related to program shortcuts" -[string] $AddProgramShortcuts = "" -[string] $RemoveProgramShortcuts = "" -[string] $ProgramStrings = "" -foreach ($programName in $hashStartMenuPrograms.Keys) -{ - if (Test-Path "$($extractFolder)\$($programName)") - { - [string]$fileExt = (Get-Item "$($extractFolder)\$($programName)").extension - [string]$fileBaseName = $programName -replace($fileExt ,"") - - $AddLine = 'setup.ini, group1,,"""' + "%$($fileBaseName)Desc%" + '"",""""""%16422%\%SysinternalsSuiteGroup%\' + $programName + '"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""' + "%$($fileBaseName)Desc%" + '"""' - $AddProgramShortcuts = $AddProgramShortcuts + $AddLine + "`r`n" - - $RemoveLine = 'setup.ini, group1,,"""' + "%$($fileBaseName)Desc%" + '""' - $RemoveProgramShortcuts = $RemoveProgramShortcuts + $RemoveLine + "`r`n" - - $StringsLine = "$($fileBaseName)Desc = " + '"' + "$($hashStartMenuPrograms[$programName])" + '"' - $ProgramStrings = $ProgramStrings + $StringsLine + "`r`n" - } - else - { - write-host "$($programName) not found" - } -} -$infContent = $infContent | %{$_.replace("", $AddProgramShortcuts)} -$infContent = $infContent | %{$_.replace("", $RemoveProgramShortcuts)} -$infContent = $infContent | %{$_.replace("", $ProgramStrings)} - - -write-host " -- Update entries related to help file shortcuts" -[string] $AddHelpShortcuts = "" -[string] $RemoveHelpShortcuts = "" -[string] $HelpStrings = "" -foreach ($helpName in $hashStartMenuHelp.Keys) -{ - if (Test-Path "$($extractFolder)\$($helpName)") - { - [string]$fileExt = (Get-Item "$($extractFolder)\$($helpName)").extension - [string]$fileBaseName = $helpName -replace($fileExt ,"") - #$fileBaseName - - $AddLine = 'setup.ini, group2,,"""' + "%$($fileBaseName)Desc%" + '"",""""""%16422%\%SysinternalsSuiteGroup%\' + $helpName + '"""""""' - $AddHelpShortcuts = $AddHelpShortcuts + $AddLine + "`r`n" - - $RemoveLine = 'setup.ini, group2,,"""' + "%$($fileBaseName)Desc%" + '""' - $RemoveHelpShortcuts = $RemoveHelpShortcuts + $RemoveLine + "`r`n" - - $StringsLine = "$($fileBaseName)Desc = " + '"' + "$($hashStartMenuHelp[$helpName])" + '"' - $HelpStrings = $HelpStrings + $StringsLine + "`r`n" - } - else - { - write-host "$($helpName) not found" - } -} -$infContent = $infContent | %{$_.replace("", $AddHelpShortcuts)} -$infContent = $infContent | %{$_.replace("", $RemoveHelpShortcuts)} -$infContent = $infContent | %{$_.replace("", $HelpStrings)} - -write-host " -- Saving file to disk" -$infContent | Set-Content "$($extractFolder)\Install_SysinternalsSuite.inf" - -write-host "" - +######################################################################################### +# MICROSOFT LEGAL STATEMENT FOR SAMPLE SCRIPTS/CODE +######################################################################################### +# This Sample Code is provided for the purpose of illustration only and is not +# intended to be used in a production environment. +# +# THIS SAMPLE CODE AND ANY RELATED INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY +# OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +# +# We grant You a nonexclusive, royalty-free right to use and modify the Sample Code +# and to reproduce and distribute the object code form of the Sample Code, provided +# that You agree: +# (i) to not use Our name, logo, or trademarks to market Your software product +# in which the Sample Code is embedded; +# (ii) to include a valid copyright notice on Your software product in which +# the Sample Code is embedded; and +# (iii) to indemnify, hold harmless, and defend Us and Our suppliers from and +# against any claims or lawsuits, including attorneys’ fees, that arise +# or result from the use or distribution of the Sample Code. +######################################################################################### +# //*************************************************************************** +# // =============================== +# // Elevation PowerToys for Windows +# // =============================== +# // +# // Sysinternals Suite INF Installer Creation Script +# // +# // File: New-SysinternalsSuiteInstaller.ps1 +# // +# // Purpose: PowerShell Script to generate an INF file that installs the +# // Sysinternals Suite. +# // +# // Version: 1.0.0 +# // +# // Revisions: +# // ---------- +# // 1.0.0 10/27/2010 Created script. +# // +# //*************************************************************************** + +$scriptVersion = "1.0.0" + + +function Extract-Zip +{ + param([string]$zipfilename, [string] $destination) + + if(test-path($zipfilename)) + { + $shellApplication = new-object -com shell.application + $zipPackage = $shellApplication.NameSpace($zipfilename) + $destinationFolder = $shellApplication.NameSpace($destination) + $destinationFolder.CopyHere($zipPackage.Items()) + } +} + + +$invocation = (Get-Variable MyInvocation -Scope 0).Value +$scriptPath = Split-Path $Invocation.MyCommand.Path + +$uriZipFile = "https://download.sysinternals.com/files/SysinternalsSuite.zip" +$uriWebPage = "http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx" +$regexPattern = "Updated: (.+?)<\/p>" +$userAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)" + + +# Template content of INF file +$infContent = @' +; ######################################################################################### +; # MICROSOFT LEGAL STATEMENT FOR SAMPLE SCRIPTS/CODE +; ######################################################################################### +; # This Sample Code is provided for the purpose of illustration only and is not +; # intended to be used in a production environment. +; # +; # THIS SAMPLE CODE AND ANY RELATED INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY +; # OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +; # WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +; # +; # We grant You a nonexclusive, royalty-free right to use and modify the Sample Code +; # and to reproduce and distribute the object code form of the Sample Code, provided +; # that You agree: +; # (i) to not use Our name, logo, or trademarks to market Your software product +; # in which the Sample Code is embedded; +; # (ii) to include a valid copyright notice on Your software product in which +; # the Sample Code is embedded; and +; # (iii) to indemnify, hold harmless, and defend Us and Our suppliers from and +; # against any claims or lawsuits, including attorneys’ fees, that arise +; # or result from the use or distribution of the Sample Code. +; ######################################################################################### +; //*************************************************************************** +; // =============================== +; // Elevation PowerToys for Windows +; // =============================== +; // +; // Sysinternals Suite INF Installer +; // +; // File: Install_SysinternalsSuite.inf +; // +; // Purpose: Installs the Sysinternals Suite +; // +; // Updated: +; // +; // INF File Generation Script version: +; // +; //*************************************************************************** + + +[Version] +Signature="$Windows NT$" + +[SysinternalsSuiteInstall] +CopyFiles = SysinternalsSuite.Files.Inf +CopyFiles = SysinternalsSuite.Files.ProgramFiles +AddReg = SysinternalsSuite.AddReg +UpdateInis = SysinternalsSuite.Links + +[DefaultInstall] +CopyFiles = SysinternalsSuite.Files.Inf +CopyFiles = SysinternalsSuite.Files.ProgramFiles +AddReg = SysinternalsSuite.AddReg +UpdateInis = SysinternalsSuite.Links + + +[DefaultUnInstall] +DelFiles = SysinternalsSuite.Files.Inf +DelFiles = SysinternalsSuite.Files.ProgramFiles +DelReg = SysinternalsSuite.DelReg +AddReg = SysinternalsSuite.Once.UnInst.Reg +UpdateInis = SysinternalsSuite.Links.Remove + +[SourceDisksNames] +55="Windows Sysinternals Suite","",1 + +[SourceDisksFiles] +Install_SysinternalsSuite.inf=55 + +[DestinationDirs] +SysinternalsSuite.Files.Inf = 17 +SysinternalsSuite.Files.ProgramFiles = 16422,Sysinternals Suite +SysinternalsSuite.Files.ProgramFiles.ShellRunas = 16422,Sysinternals Suite + +[SysinternalsSuite.Files.Inf] +Install_SysinternalsSuite.inf + +[SysinternalsSuite.Files.ProgramFiles] + + +[SysinternalsSuite.Once.UnInst.Reg] +HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,SysinternalsSuite,,"%11%\cmd.exe /c rd /s /q ""%16422%\Sysinternals Suite""" + +[SysinternalsSuite.AddReg] +HKLM,%UDHERE%,DisplayName,,"%DisplayName%" +HKLM,%UDHERE%,DisplayVersion,,"%DisplayVersion%" +HKLM,%UDHERE%,UninstallString,,"rundll32.exe syssetup.dll,SetupInfObjectInstallAction DefaultUninstall 132 %17%\Install_SysinternalsSuite.inf" + +[SysinternalsSuite.DelReg] +HKLM,%UDHERE% + +[SysinternalsSuite.Links] +setup.ini, progman.groups,,""group1="%16407%\%SysinternalsSuiteGroup%\""" +setup.ini, group1,,"""%SysinternalsSuiteCmdPrompt%"",""""""%11%\cmd.exe"""" /k cd /d """"%16422%\%SysinternalsSuiteGroup%"""""",,,,""%16422%\%SysinternalsSuiteGroup%"",""%SysinternalsSuiteCmdPrompt%""" +setup.ini, group1,,"""%SysinternalsSuiteURL%"",""""""%16422%\Internet Explorer\iexplore.exe"""" """"http://www.microsoft.com/technet/sysinternals/utilities/sysinternalssuite.mspx"""""",""%16422%\Internet Explorer\iexplore.exe"",1,,""%HOMEDRIVE%%HOMEPATH%"",""%SysinternalsSuiteURL%""" + + +setup.ini, progman.groups,,""group2="%16407%\%SysinternalsSuiteGroup%\%SysinternalsSuiteDocs%\""" + + + +[SysinternalsSuite.Links.Remove] +setup.ini, progman.groups,,""group1="%16407%\%SysinternalsSuiteGroup%""" +setup.ini, group1,,"""%SysinternalsSuiteCmdPrompt%""" +setup.ini, group1,,"""%SysinternalsSuiteURL%"" + + +setup.ini, progman.groups,,""group2="%16407%\%SysinternalsSuiteGroup%\%SysinternalsSuiteDocs%\""" + + + +[Strings] +DisplayName = "Sysinternals Suite (Uninstall only)" +DisplayVersion = "" + +SysinternalsSuiteGroup = "Sysinternals Suite" +SysinternalsSuiteCmdPrompt = "Sysinternals Suite Command Prompt" +SysinternalsSuiteURL = "Sysinternals Suite Web Page" + + +SysinternalsSuiteDocs = "Documentation" + + +UDHERE = "Software\Microsoft\Windows\CurrentVersion\Uninstall\SysinternalsSuite" +'@ + + +# Hash table for graphical programs that should have a Start Menu shortcut +# Entries are "" = "" +$hashStartMenuPrograms = @{ + "AccessEnum.exe" = "AccessEnum"; + "ADExplorer.exe" = "Active Directory Explorer"; + "ADInsight.exe" = "Insight for Active Directory"; + "Autologon.exe" = "Autologon for Windows"; + "Autoruns64.exe" = "AutoRuns for Windows (64bit)"; + "Autoruns.exe" = "AutoRuns for Windows"; + "Bginfo64.exe" = "Bginfo (64bit)"; + "Bginfo.exe" = "Bginfo"; + "Cacheset.exe" = "Cacheset"; + "Dbgview.exe" = "DebugView for Windows"; + "Desktops.exe" = "Desktops for Windows"; + "Diskmon.exe" = "DiskMon for Windows"; + "DiskView.exe" = "DiskView"; + "LoadOrd64.exe" = "LoadOrder (64bit)"; + "LoadOrd.exe" = "LoadOrder"; + "procexp64.exe" = "Process Explorer (64bit)"; + "procexp.exe" = "Process Explorer"; + "Procmon.exe" = "Process Monitor"; + "RAMMap.exe" = "RamMap"; + "ShareEnum.exe" = "ShareEnum"; + "Tcpview.exe" = "TCPView for Windows"; + "vmmap.exe" = "VMMap"; + "Winobj.exe" = "WinObj"; + "ZoomIt.exe" = "ZoomIt" +} + +# Hash table for help files that should have a Start Menu shortcut +# Entries are "" = "" +$hashStartMenuHelp = @{ + "AdExplorer.chm" = "Active Directory Explorer Help"; + "ADInsight.chm" = "Insight for Active Directory Help"; + "autoruns.chm" = "AutoRuns for Windows Help"; + "Dbgview.chm" = "DebugView for Windows Help"; + "Disk2vhd.chm" = "Disk2vhd Help"; + "procexp.chm" = "Process Explorer Help"; + "procmon.chm" = "Process Monitor Help"; + "Pstools.chm" = "PsTools Help"; + "tcpview.chm" = "TCPView for Windows Help"; + "Vmmap.chm" = "VMMap Help"; + "pagedfrg.hlp" = "PageDefrag for Windows Help"; + "Diskmon.hlp" = "DiskMon for Windows Help"; + "portmon.hlp" = "Port Monitor Help"; + "tcpview.hlp" = "TCPView for Windows Help"; + "Winobj.hlp" = "WinObj Help"; +} + +$wc = new-object System.Net.WebClient +$wc.Headers.Add("user-agent", $userAgent) + +write-host "Downloading web page `"$($uriWebPage)`"" +$webPage = $wc.DownloadString($uriWebPage) + +$updatedDateString = (select-string -pattern $regexPattern -InputObject $webPage | Select -Expand Matches | Foreach { $_.Groups[1] }).Value +write-host "Suite Updated: $($updatedDateString)" + +$downloadFolder = "$($scriptPath)/$($updatedDateString)" +$extractFolder = "$($downloadFolder)/Extracted" +$filename = "$($downloadFolder)/SysinternalsSuite.zip" + +if ((Test-Path $downloadFolder) -eq $false) +{ + write-host "Creating download folder `"$($downloadFolder)`"" + New-Item -path "$($scriptPath)\" -name $updatedDateString -type directory > $null +} + +if ((Test-Path $extractFolder) -eq $false) +{ + write-host "Creating zip extraction folder `"$($extractFolder)`"" + New-Item -path "$($downloadFolder)\" -name "Extracted" -type directory > $null +} +else +{ + write-host "Deleting and recreating zip extraction folder `"$($extractFolder)`"" + Remove-Item -path $extractFolder -recurse + New-Item -path "$($downloadFolder)\" -name "Extracted" -type directory > $null +} + +write-host "Downloading Sysinternal Suite Zip file `"$($uriZipFile)`"" +$wc.DownloadFile($uriZipFile, $filename) + +write-host "Extracting Sysinternal Suite Zip file content" +#extract-zip $filename $extractFolder +Expand-Archive $filename -DestinationPath $extractFolder + +write-host "Creating INF installer `"$($extractFolder)\Install_SysinternalsSuite.inf`"" +$infContent = $infContent | %{$_.replace("", $updatedDateString)} + +$extractedFiles = Get-ChildItem "$($extractFolder)\*.*" + +write-host " -- Update script version" +$infContent = $infContent | %{$_.replace("", $scriptVersion)} + +write-host " -- Update file list" +[string] $fileList = "" +foreach ($file in $extractedFiles) +{ + $fileList = $fileList + $file.Name + "`r`n" +} +$infContent = $infContent | %{$_.replace("", $fileList)} + + +write-host " -- Update entries related to program shortcuts" +[string] $AddProgramShortcuts = "" +[string] $RemoveProgramShortcuts = "" +[string] $ProgramStrings = "" +foreach ($programName in $hashStartMenuPrograms.Keys) +{ + if (Test-Path "$($extractFolder)\$($programName)") + { + [string]$fileExt = (Get-Item "$($extractFolder)\$($programName)").extension + [string]$fileBaseName = $programName -replace($fileExt ,"") + + $AddLine = 'setup.ini, group1,,"""' + "%$($fileBaseName)Desc%" + '"",""""""%16422%\%SysinternalsSuiteGroup%\' + $programName + '"""""",,,,""""%16422%\%SysinternalsSuiteGroup%"""",""' + "%$($fileBaseName)Desc%" + '"""' + $AddProgramShortcuts = $AddProgramShortcuts + $AddLine + "`r`n" + + $RemoveLine = 'setup.ini, group1,,"""' + "%$($fileBaseName)Desc%" + '""' + $RemoveProgramShortcuts = $RemoveProgramShortcuts + $RemoveLine + "`r`n" + + $StringsLine = "$($fileBaseName)Desc = " + '"' + "$($hashStartMenuPrograms[$programName])" + '"' + $ProgramStrings = $ProgramStrings + $StringsLine + "`r`n" + } + else + { + write-host "$($programName) not found" + } +} +$infContent = $infContent | %{$_.replace("", $AddProgramShortcuts)} +$infContent = $infContent | %{$_.replace("", $RemoveProgramShortcuts)} +$infContent = $infContent | %{$_.replace("", $ProgramStrings)} + + +write-host " -- Update entries related to help file shortcuts" +[string] $AddHelpShortcuts = "" +[string] $RemoveHelpShortcuts = "" +[string] $HelpStrings = "" +foreach ($helpName in $hashStartMenuHelp.Keys) +{ + if (Test-Path "$($extractFolder)\$($helpName)") + { + [string]$fileExt = (Get-Item "$($extractFolder)\$($helpName)").extension + [string]$fileBaseName = $helpName -replace($fileExt ,"") + #$fileBaseName + + $AddLine = 'setup.ini, group2,,"""' + "%$($fileBaseName)Desc%" + '"",""""""%16422%\%SysinternalsSuiteGroup%\' + $helpName + '"""""""' + $AddHelpShortcuts = $AddHelpShortcuts + $AddLine + "`r`n" + + $RemoveLine = 'setup.ini, group2,,"""' + "%$($fileBaseName)Desc%" + '""' + $RemoveHelpShortcuts = $RemoveHelpShortcuts + $RemoveLine + "`r`n" + + $StringsLine = "$($fileBaseName)Desc = " + '"' + "$($hashStartMenuHelp[$helpName])" + '"' + $HelpStrings = $HelpStrings + $StringsLine + "`r`n" + } + else + { + write-host "$($helpName) not found" + } +} +$infContent = $infContent | %{$_.replace("", $AddHelpShortcuts)} +$infContent = $infContent | %{$_.replace("", $RemoveHelpShortcuts)} +$infContent = $infContent | %{$_.replace("", $HelpStrings)} + +write-host " -- Saving file to disk" +$infContent | Set-Content "$($extractFolder)\Install_SysinternalsSuite.inf" + +write-host "" + diff --git a/readme b/readme index 3aaafde..7bb0d0d 100644 --- a/readme +++ b/readme @@ -1,4 +1,7 @@ Creating the Install_SysinternalsSuite.inf: follow the howto: -http://blogs.technet.com/b/elevationpowertoys/archive/2010/10/27/powershell-script-to-create-a-sysinternals-suite-inf-file-installer.aspx \ No newline at end of file +http://blogs.technet.com/b/elevationpowertoys/archive/2010/10/27/powershell-script-to-create-a-sysinternals-suite-inf-file-installer.aspx + +https://www.domador.net/extras/sysinternals-suite-installer/ +