8
0

_Caller.cmd: Caller script enhanced about checking multiple PowerShell versions

This commit is contained in:
KammM 2024-11-24 17:55:29 +01:00
parent 078cf74927
commit 650b5dfd02
2 changed files with 124 additions and 146 deletions

View File

@ -11,7 +11,7 @@ REM Digital Data GmbH • Ludwig-Rinn-Strasse 16 • D-35452 Heuchelheim
REM Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works REM Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works
REM ---------------------------------------------------------------------------- REM ----------------------------------------------------------------------------
REM Creation Date / Author: 13.08.2015 / MK REM Creation Date / Author: 13.08.2015 / MK
REM Version Date / Editor: 23.11.2024 / MK REM Version Date / Editor: 24.11.2024 / MK
REM Version Number: 2.0.0.0 REM Version Number: 2.0.0.0
REM -------------------------------------------------------------- REM --------------------------------------------------------------
@ -21,11 +21,9 @@ REM --------------------------------------------------------------
SET /A ADMINMODE=1 SET /A ADMINMODE=1
SET FILEEXTENSION=*.ps1 SET FILEEXTENSION=*.ps1
REM -- Choose PowerShell Version -- SET POWERSHELL7EXE="C:\Program Files\PowerShell\7\pwsh.exe"
SET POWERSHELLEXE="C:\Program Files\PowerShell\7\pwsh.exe" SET POWERSHELL6EXE="C:\Program Files\PowerShell\6\pwsh.exe"
REM SET POWERSHELLEXE="C:\Program Files\PowerShell\6\pwsh.exe" SET POWERSHELLBUILDINEXE="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
REM SET POWERSHELLEXE="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
REM -------------------------------
SET DIRECTORY="%cd%" SET DIRECTORY="%cd%"
SET /A COUNT=0 SET /A COUNT=0
@ -39,22 +37,51 @@ SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
ECHO Program Startup %date% at %time:~0,8% o'clock, on %computername%. ECHO Program Startup %date% at %time:~0,8% o'clock, on %computername%.
ECHO - ECHO -
IF !ADMINMODE! EQU 1 (ECHO WARNING: In AdminMode, network drives will maybe be unavailable! && timeout /T 10) IF !ADMINMODE! EQU 1 (ECHO WARNING: In AdminMode, network drives/files will maybe be unavailable! && timeout /T 15)
ECHO -
ECHO Searching for PowerShell 7...
IF EXIST "!POWERSHELL7EXE!" (
ECHO Found PowerShell 7 on this system.
SET POWERSHELLEXE=!POWERSHELL7EXE!
) ELSE (
ECHO WARNING: Did not found PowerShell 7 on this system
ECHO This could lead to malfunctions. Check the ..._Readme.txt file
timeout /T 15
ECHO Searching for PowerShell 6...
IF EXIST "!POWERSHELL6EXE!" (
ECHO Found PowerShell 6 on this system.
SET POWERSHELLEXE=!POWERSHELL6EXE!
) ELSE (
ECHO WARNING: Did not found PowerShell 6 on this system.
ECHO This could lead to malfunctions. Check the ..._Readme.txt file.
timeout /T 15
ECHO Searching for old PowerShell buildin version...
IF EXIST "!POWERSHELLBUILDINEXE!" (
ECHO Found old PowerShell buildin version on this system.
SET POWERSHELLEXE=!POWERSHELLBUILDINEXE!
) ELSE (
ECHO ERROR: Did not found any PowerShell on this system.
ECHO Exiting, because of this issue...
timeout /T 15
GOTO exit
)
)
)
REM -------------------------------------------------------------- REM --------------------------------------------------------------
REM ---------------------Running Scripts--------------------------- REM ---------------------Running Scripts---------------------------
REM -------------------------------------------------------------- REM --------------------------------------------------------------
FOR /F "tokens=*" %%f in ('dir /S /b %FILEEXTENSION%') do ( FOR /F "tokens=*" %%f in ('dir /S /b %FILEEXTENSION%') do (
ECHO %%f
SET /a COUNT+=1 SET /a COUNT+=1
) )
ECHO - ECHO -
ECHO Found %COUNT% File(s) with File Extension %FILEEXTENSION% in Directory: ECHO Found %COUNT% File(s) with File Extension %FILEEXTENSION% in Directory:
ECHO %DIRECTORY% ECHO %DIRECTORY%
ECHO - ECHO -
IF EXIST "!POWERSHELLEXE!" (
ECHO Running these scripts now: ECHO Running these scripts now:
FOR /F "tokens=*" %%f in ('dir /S /b %FILEEXTENSION%') do ( FOR /F "tokens=*" %%f in ('dir /S /b %FILEEXTENSION%') do (
@ -88,50 +115,12 @@ IF EXIST "!POWERSHELLEXE!" (
ECHO There was an error running the script: !SCRIPT! >> !LOGFILE! ECHO There was an error running the script: !SCRIPT! >> !LOGFILE!
) )
) )
) ELSE (
ECHO WARNING specified POWERSHELLEXE-Path does not exist or access denied!
ECHO Falling back to build in Powershell Version.
timeout /T 30
ECHO Running these scripts now:
FOR /F "tokens=*" %%f in ('dir /b %FILEEXTENSION%') do (
ECHO -
SET "SCRIPT=%%f"
ECHO Running script:
ECHO !SCRIPT!
ECHO -
SET "ARGUMENTS=-NoProfile -ExecutionPolicy Bypass -File \""!SCRIPT!\"""
ECHO With Arguments:
ECHO !ARGUMENTS!
ECHO -
SET "SUBCOMMAND=Start-Process -FilePath 'powershell.exe' -WindowStyle hidden -ArgumentList '!ARGUMENTS!' "
ECHO Subcommand:
ECHO !SUBCOMMAND!
ECHO -
IF !ADMINMODE! EQU 1 (
SET "COMMAND=Start-Process powershell.exe -WindowStyle hidden -Verb runas {!SUBCOMMAND!} "
) ELSE (
SET "COMMAND=Start-Process powershell.exe -WindowStyle hidden {!SUBCOMMAND!} "
)
ECHO In nested command:
ECHO !COMMAND!
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "!COMMAND!"
IF ERRORLEVEL 1 (
ECHO There was an error running the script: !SCRIPT! >> !LOGFILE!
)
)
)
REM -------------------------------------------------------------- REM --------------------------------------------------------------
REM -------------------------final part--------------------------- REM -------------------------final part---------------------------
REM -------------------------------------------------------------- REM --------------------------------------------------------------
:exit
ENDLOCAL ENDLOCAL
ECHO - ECHO -
ECHO Program Complete %date% at %time:~0,8% o'clock, on %computername%. ECHO Program Complete %date% at %time:~0,8% o'clock, on %computername%.

View File

@ -11,7 +11,7 @@ REM Digital Data GmbH • Ludwig-Rinn-Strasse 16 • D-35452 Heuchelheim
REM Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works REM Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works
REM ---------------------------------------------------------------------------- REM ----------------------------------------------------------------------------
REM Creation Date / Author: 13.08.2015 / MK REM Creation Date / Author: 13.08.2015 / MK
REM Version Date / Editor: 23.11.2024 / MK REM Version Date / Editor: 24.11.2024 / MK
REM Version Number: 2.0.0.0 REM Version Number: 2.0.0.0
REM -------------------------------------------------------------- REM --------------------------------------------------------------
@ -21,11 +21,9 @@ REM --------------------------------------------------------------
SET /A ADMINMODE=1 SET /A ADMINMODE=1
SET FILEEXTENSION=*.ps1 SET FILEEXTENSION=*.ps1
REM -- Choose PowerShell Version -- SET POWERSHELL7EXE="C:\Program Files\PowerShell\7\pwsh.exe"
SET POWERSHELLEXE="C:\Program Files\PowerShell\7\pwsh.exe" SET POWERSHELL6EXE="C:\Program Files\PowerShell\6\pwsh.exe"
REM SET POWERSHELLEXE="C:\Program Files\PowerShell\6\pwsh.exe" SET POWERSHELLBUILDINEXE="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
REM SET POWERSHELLEXE="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
REM -------------------------------
SET DIRECTORY="%cd%" SET DIRECTORY="%cd%"
SET /A COUNT=0 SET /A COUNT=0
@ -39,22 +37,51 @@ SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
ECHO Program Startup %date% at %time:~0,8% o'clock, on %computername%. ECHO Program Startup %date% at %time:~0,8% o'clock, on %computername%.
ECHO - ECHO -
IF !ADMINMODE! EQU 1 (ECHO WARNING: In AdminMode, network drives will maybe be unavailable! && timeout /T 10) IF !ADMINMODE! EQU 1 (ECHO WARNING: In AdminMode, network drives/files will maybe be unavailable! && timeout /T 15)
ECHO -
ECHO Searching for PowerShell 7...
IF EXIST "!POWERSHELL7EXE!" (
ECHO Found PowerShell 7 on this system.
SET POWERSHELLEXE=!POWERSHELL7EXE!
) ELSE (
ECHO WARNING: Did not found PowerShell 7 on this system
ECHO This could lead to malfunctions. Check the ..._Readme.txt file
timeout /T 15
ECHO Searching for PowerShell 6...
IF EXIST "!POWERSHELL6EXE!" (
ECHO Found PowerShell 6 on this system.
SET POWERSHELLEXE=!POWERSHELL6EXE!
) ELSE (
ECHO WARNING: Did not found PowerShell 6 on this system.
ECHO This could lead to malfunctions. Check the ..._Readme.txt file.
timeout /T 15
ECHO Searching for old PowerShell buildin version...
IF EXIST "!POWERSHELLBUILDINEXE!" (
ECHO Found old PowerShell buildin version on this system.
SET POWERSHELLEXE=!POWERSHELLBUILDINEXE!
) ELSE (
ECHO ERROR: Did not found any PowerShell on this system.
ECHO Exiting, because of this issue...
timeout /T 15
GOTO exit
)
)
)
REM -------------------------------------------------------------- REM --------------------------------------------------------------
REM ---------------------Running Scripts--------------------------- REM ---------------------Running Scripts---------------------------
REM -------------------------------------------------------------- REM --------------------------------------------------------------
FOR /F "tokens=*" %%f in ('dir /S /b %FILEEXTENSION%') do ( FOR /F "tokens=*" %%f in ('dir /S /b %FILEEXTENSION%') do (
ECHO %%f
SET /a COUNT+=1 SET /a COUNT+=1
) )
ECHO - ECHO -
ECHO Found %COUNT% File(s) with File Extension %FILEEXTENSION% in Directory: ECHO Found %COUNT% File(s) with File Extension %FILEEXTENSION% in Directory:
ECHO %DIRECTORY% ECHO %DIRECTORY%
ECHO - ECHO -
IF EXIST "!POWERSHELLEXE!" (
ECHO Running these scripts now: ECHO Running these scripts now:
FOR /F "tokens=*" %%f in ('dir /S /b %FILEEXTENSION%') do ( FOR /F "tokens=*" %%f in ('dir /S /b %FILEEXTENSION%') do (
@ -88,50 +115,12 @@ IF EXIST "!POWERSHELLEXE!" (
ECHO There was an error running the script: !SCRIPT! >> !LOGFILE! ECHO There was an error running the script: !SCRIPT! >> !LOGFILE!
) )
) )
) ELSE (
ECHO WARNING specified POWERSHELLEXE-Path does not exist or access denied!
ECHO Falling back to build in Powershell Version.
timeout /T 30
ECHO Running these scripts now:
FOR /F "tokens=*" %%f in ('dir /b %FILEEXTENSION%') do (
ECHO -
SET "SCRIPT=%%f"
ECHO Running script:
ECHO !SCRIPT!
ECHO -
SET "ARGUMENTS=-NoProfile -ExecutionPolicy Bypass -File \""!SCRIPT!\"""
ECHO With Arguments:
ECHO !ARGUMENTS!
ECHO -
SET "SUBCOMMAND=Start-Process -FilePath 'powershell.exe' -WindowStyle hidden -ArgumentList '!ARGUMENTS!' "
ECHO Subcommand:
ECHO !SUBCOMMAND!
ECHO -
IF !ADMINMODE! EQU 1 (
SET "COMMAND=Start-Process powershell.exe -WindowStyle hidden -Verb runas {!SUBCOMMAND!} "
) ELSE (
SET "COMMAND=Start-Process powershell.exe -WindowStyle hidden {!SUBCOMMAND!} "
)
ECHO In nested command:
ECHO !COMMAND!
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "!COMMAND!"
IF ERRORLEVEL 1 (
ECHO There was an error running the script: !SCRIPT! >> !LOGFILE!
)
)
)
REM -------------------------------------------------------------- REM --------------------------------------------------------------
REM -------------------------final part--------------------------- REM -------------------------final part---------------------------
REM -------------------------------------------------------------- REM --------------------------------------------------------------
:exit
ENDLOCAL ENDLOCAL
ECHO - ECHO -
ECHO Program Complete %date% at %time:~0,8% o'clock, on %computername%. ECHO Program Complete %date% at %time:~0,8% o'clock, on %computername%.