From 93192c0bc2ce784175cc41e8048df01d22c5537e Mon Sep 17 00:00:00 2001 From: R4SAS Date: Tue, 10 Mar 2020 02:35:00 +0300 Subject: [PATCH] add icon for Start menu shortcuts, manage service using PS commands Signed-off-by: R4SAS --- yggdrasil/tools/chocolateyinstall.ps1 | 12 ++++++--- yggdrasil/tools/chocolateyuninstall.ps1 | 2 +- yggdrasil/tools/service-restart.bat | 31 ------------------------ yggdrasil/tools/service-start.bat | 30 ----------------------- yggdrasil/tools/service-stop.bat | 30 ----------------------- yggdrasil/tools/yggdrasil.ico | Bin 0 -> 45492 bytes 6 files changed, 10 insertions(+), 95 deletions(-) delete mode 100644 yggdrasil/tools/service-restart.bat delete mode 100644 yggdrasil/tools/service-start.bat delete mode 100644 yggdrasil/tools/service-stop.bat create mode 100644 yggdrasil/tools/yggdrasil.ico diff --git a/yggdrasil/tools/chocolateyinstall.ps1 b/yggdrasil/tools/chocolateyinstall.ps1 index e10c154..d520961 100644 --- a/yggdrasil/tools/chocolateyinstall.ps1 +++ b/yggdrasil/tools/chocolateyinstall.ps1 @@ -44,9 +44,15 @@ if (-not (Test-Path -Path $startMenuDir)) { New-Item -Path $startMenuDir -ItemType Directory } +# Get PowerShell executable path +$psPath = (Get-Command powershell.exe).Path + Install-ChocolateyShortcut -shortcutFilePath "$startMenuDir\Start service.lnk" ` - -targetPath "$toolsDir\service-start.bat" -workDirectory "$appDir" -description "Start yggdrasil service" -RunAsAdmin + -targetPath $psPath -Arguments "Start-Service -name 'Yggdrasil'" ` + -workDirectory "$appDir" -description "Start yggdrasil service" -IconLocation "$toolsDir\yggdrasil.ico" -RunAsAdmin Install-ChocolateyShortcut -shortcutFilePath "$startMenuDir\Restart service.lnk" ` - -targetPath "$toolsDir\service-restart.bat" -workDirectory "$appDir" -description "Restart yggdrasil service" -RunAsAdmin + -targetPath $psPath -Arguments "Restart-Service -name 'Yggdrasil'" ` + -workDirectory "$appDir" -description "Restart yggdrasil service" -IconLocation "$toolsDir\yggdrasil.ico" -RunAsAdmin Install-ChocolateyShortcut -shortcutFilePath "$startMenuDir\Stop service.lnk" ` - -targetPath "$toolsDir\service-stop.bat" -workDirectory "$appDir" -description "Stop yggdrasil service" -RunAsAdmin + -targetPath $psPath -Arguments "Stop-Service -name 'Yggdrasil'" ` + -workDirectory "$appDir" -description "Stop yggdrasil service" -IconLocation "$toolsDir\yggdrasil.ico" -RunAsAdmin diff --git a/yggdrasil/tools/chocolateyuninstall.ps1 b/yggdrasil/tools/chocolateyuninstall.ps1 index 7d96e16..e11a9ae 100644 --- a/yggdrasil/tools/chocolateyuninstall.ps1 +++ b/yggdrasil/tools/chocolateyuninstall.ps1 @@ -7,7 +7,7 @@ $startMenuDir = "$([Environment]::GetFolderPath('CommonStartMenu'))\Programs\ $softwareName = 'Yggdrasil Network*' # Remove package, it don't touch configs -Write-Host "We removing package, but doesn't touch your configs. You can still find them in '$confDir' directory" +Write-Host "Package is being uninstalled, but configs are preserved. You can still find them in '$confDir' directory" [array]$key = Get-UninstallRegistryKey -SoftwareName $softwareName diff --git a/yggdrasil/tools/service-restart.bat b/yggdrasil/tools/service-restart.bat deleted file mode 100644 index d76384f..0000000 --- a/yggdrasil/tools/service-restart.bat +++ /dev/null @@ -1,31 +0,0 @@ -@set @_cmd=1 /* -@echo off -setlocal EnableExtensions -title Yggdrasil - -whoami /groups | findstr "S-1-16-12288" >nul && goto :admin -if "%~1"=="RunAsAdmin" goto :error - -echo Requesting privileges elevation for managing the dnscrypt-proxy service . . . -cscript /nologo /e:javascript "%~f0" || goto :error -exit /b - -:error -echo. -echo Error: Administrator privileges elevation failed, -echo please manually run this script as administrator. -echo. -goto :end - -:admin -sc stop "Yggdrasil" -sc start "Yggdrasil" - -:end -set /p =Press [Enter] to exit . . . -exit /b */ - -// JScript, restart batch script as administrator -var objShell = WScript.CreateObject('Shell.Application'); -var ComSpec = WScript.CreateObject('WScript.Shell').ExpandEnvironmentStrings('%ComSpec%'); -objShell.ShellExecute(ComSpec, '/c ""' + WScript.ScriptFullName + '" RunAsAdmin"', '', 'runas', 1); diff --git a/yggdrasil/tools/service-start.bat b/yggdrasil/tools/service-start.bat deleted file mode 100644 index ecd78f9..0000000 --- a/yggdrasil/tools/service-start.bat +++ /dev/null @@ -1,30 +0,0 @@ -@set @_cmd=1 /* -@echo off -setlocal EnableExtensions -title Yggdrasil - -whoami /groups | findstr "S-1-16-12288" >nul && goto :admin -if "%~1"=="RunAsAdmin" goto :error - -echo Requesting privileges elevation for managing the dnscrypt-proxy service . . . -cscript /nologo /e:javascript "%~f0" || goto :error -exit /b - -:error -echo. -echo Error: Administrator privileges elevation failed, -echo please manually run this script as administrator. -echo. -goto :end - -:admin -sc start "Yggdrasil" - -:end -set /p =Press [Enter] to exit . . . -exit /b */ - -// JScript, restart batch script as administrator -var objShell = WScript.CreateObject('Shell.Application'); -var ComSpec = WScript.CreateObject('WScript.Shell').ExpandEnvironmentStrings('%ComSpec%'); -objShell.ShellExecute(ComSpec, '/c ""' + WScript.ScriptFullName + '" RunAsAdmin"', '', 'runas', 1); diff --git a/yggdrasil/tools/service-stop.bat b/yggdrasil/tools/service-stop.bat deleted file mode 100644 index 39966bb..0000000 --- a/yggdrasil/tools/service-stop.bat +++ /dev/null @@ -1,30 +0,0 @@ -@set @_cmd=1 /* -@echo off -setlocal EnableExtensions -title Yggdrasil - -whoami /groups | findstr "S-1-16-12288" >nul && goto :admin -if "%~1"=="RunAsAdmin" goto :error - -echo Requesting privileges elevation for managing the dnscrypt-proxy service . . . -cscript /nologo /e:javascript "%~f0" || goto :error -exit /b - -:error -echo. -echo Error: Administrator privileges elevation failed, -echo please manually run this script as administrator. -echo. -goto :end - -:admin -sc stop "Yggdrasil" - -:end -set /p =Press [Enter] to exit . . . -exit /b */ - -// JScript, restart batch script as administrator -var objShell = WScript.CreateObject('Shell.Application'); -var ComSpec = WScript.CreateObject('WScript.Shell').ExpandEnvironmentStrings('%ComSpec%'); -objShell.ShellExecute(ComSpec, '/c ""' + WScript.ScriptFullName + '" RunAsAdmin"', '', 'runas', 1); diff --git a/yggdrasil/tools/yggdrasil.ico b/yggdrasil/tools/yggdrasil.ico new file mode 100644 index 0000000000000000000000000000000000000000..5433a383e4252c4df0e00c12af0f31c19d75843d GIT binary patch literal 45492 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 jy4T@5#XS!9H=%c< literal 0 HcmV?d00001