From 2b5b524921685e34b857b4894531a8110794cff1 Mon Sep 17 00:00:00 2001 From: James Stringer <38541878+jamesstringerparsec@users.noreply.github.com> Date: Tue, 12 Oct 2021 03:55:11 -0700 Subject: [PATCH] Auto Install Parsec (attempt 1) --- CopyFilesToVM.ps1 | 39 ++++++++++++++++++++++++++++++++++++++- Install.ps1 | 19 +++++++++++++++++++ gpt.ini | 3 +++ parsecpublic.cer | Bin 0 -> 1468 bytes psscripts.ini | 4 ++++ 5 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 Install.ps1 create mode 100644 gpt.ini create mode 100644 parsecpublic.cer create mode 100644 psscripts.ini diff --git a/CopyFilesToVM.ps1 b/CopyFilesToVM.ps1 index b0dd751..470c6fc 100644 --- a/CopyFilesToVM.ps1 +++ b/CopyFilesToVM.ps1 @@ -1,4 +1,41 @@ -Function Add-VMGpuPartitionAdapterFiles { +function add-gpo-modifications { +param( +[string]$DriveLetter +) + $querygpt = Get-content $DriveLetter\Windows\System32\GroupPolicy\gpt.ini + $matchgpt = $querygpt -match '{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B6664F-4972-11D1-A7CA-0000F87571E3}' + if ($matchgpt -contains "*0000F87571E3*" -eq $false) { + $gptstring = get-content $DriveLetter\Windows\System32\GroupPolicy\gpt.ini + $gpoversion = $gptstring -match "Version" + $GPO = $gptstring -match "gPCMachineExtensionNames" + $add = '[{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B6664F-4972-11D1-A7CA-0000F87571E3}]' + $replace = "$GPO" + "$add" + (Get-Content "$DriveLetter\Windows\System32\GroupPolicy\gpt.ini").Replace("$GPO","$replace") | Set-Content "$DriveLetter\Windows\System32\GroupPolicy\gpt.ini" + [int]$i = $gpoversion.trim("Version=") + [int]$n = $gpoversion.trim("Version=") + $n +=2 + (Get-Content $DriveLetter\Windows\System32\GroupPolicy\gpt.ini) -replace "Version=$i", "Version=$n" | Set-Content $DriveLetter\Windows\System32\GroupPolicy\gpt.ini + } + else{ + write-output "Not Required" + } + } + +Function Setup-ParsecInstall { +param( +[string]$DriveLetter +) + add-gpo-modifications -DriveLetter $DriveLetter + if((Test-Path -Path $DriveLetter\Windows\system32\GroupPolicy\Machine\Scripts\Startup) -eq $true) {} Else {New-Item -Path $DriveLetter\Windows\system32\GroupPolicy\Machine\Scripts\Startup -ItemType directory | Out-Null} + if((Test-Path -Path $DriveLetter\Windows\system32\GroupPolicy\Machine\Scripts\Shutdown) -eq $true) {} Else {New-Item -Path $DriveLetter\Windows\system32\GroupPolicy\Machine\Scripts\Shutdown -ItemType directory | Out-Null} + if((Test-Path -Path $DriveLetter\ProgramData\Easy-GPU-P) -eq $true) {} Else {New-Item -Path $DriveLetter\Windows\system32\GroupPolicy\Machine\Scripts\Easy-GPU-P -ItemType directory | Out-Null} + Move-Item -Path $psscriptroot\psscripts.ini -Destination $DriveLetter\Windows\system32\GroupPolicy\Machine\Scripts + Move-Item -Path $psscriptroot\Install.ps1 -Destination $DriveLetter\Windows\system32\GroupPolicy\Machine\Scripts\Startup + Move-Item -Path $psscriptroot\parsecpublic.cer -Destination $DriveLetter\ProgramData\Easy-GPU-P +} + + +Function Add-VMGpuPartitionAdapterFiles { param( [string]$hostname = $ENV:COMPUTERNAME, [string]$DriveLetter, diff --git a/Install.ps1 b/Install.ps1 new file mode 100644 index 0000000..769c6a5 --- /dev/null +++ b/Install.ps1 @@ -0,0 +1,19 @@ +while(!(Test-NetConnection Google.com).PingSucceeded){ + Start-Sleep -Seconds 1 + } + +if (Test-Path HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Parsec) + {} + else { + (New-Object System.Net.WebClient).DownloadFile("https://builds.parsecgaming.com/package/parsec-windows.exe", "C:\Users\$env:USERNAME\Downloads\parsec-windows.exe") + (New-Object System.Net.WebClient).DownloadFile("https://builds.parsec.app/vdd/parsec-vdd-0.37.0.0.exe", "C:\Users\$env:USERNAME\Downloads\parsec-vdd.exe") + Start-Process "C:\Users\$env:USERNAME\Downloads\parsec-windows.exe" -ArgumentList "/silent", "/shared" -wait + Import-Certificate -CertStoreLocation Cert:\LocalMachine\TrustedPublisher -FilePath "C:\ProgramData\Easy-GPU-P\parsecpublic.cer" | Out-Null + Start-Process "C:\Users\$env:USERNAME\Downloads\parsec-vdd.exe" -ArgumentList "/silent" -wait + $configfile = Get-Content C:\ProgramData\Parsec\config.txt + $configfile += "host_virtual_monitors = 1" + $configfile += "host_privacy_mode = 1" + $configfile | Out-File C:\ProgramData\Parsec\config.txt -Encoding ascii + Stop-Process Parsec -Force + } + diff --git a/gpt.ini b/gpt.ini new file mode 100644 index 0000000..4e41c3c --- /dev/null +++ b/gpt.ini @@ -0,0 +1,3 @@ +[General] +gPCMachineExtensionNames=[{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B6664F-4972-11D1-A7CA-0000F87571E3}] +Version=4 \ No newline at end of file diff --git a/parsecpublic.cer b/parsecpublic.cer new file mode 100644 index 0000000000000000000000000000000000000000..dfc68ab4698742a88a2fab9805c4c0f904c0b27f GIT binary patch literal 1468 zcma)6drVVz6z=cd+Xu9zV4;A#3We~H$L~_!Lguv)-VWA*$Tml9n^LG0OQ8w_p=vP> z1w~vmZgf#2fyiUo42omPM!^~wB1BD=K?VymxS4@4TpX}_2^iS+$L@dUeCOQroiE?{ zK_k5v8ZomOMF4`>^Oo$K#vU~%tOoh_PJMCkAmlP^f=nrFQYclcO4KDPp@a|yNK=ULKOPy6r}E5b)`(N)|TM* z(2j!Xd}b6Bi^FlaeP0L2qhJ=FwNGgf9?u zU`m=$d;>)P3xr1CvsH0Gr=do`qmg-A#0UVb{Z@W<{i4*lq40He(emKvF!R;U(wY}> zw3kQL_GF7`R=iWreURF6sZYH!Gjy^5O(gm*+eco0gV9gAuErc2!GqlbCX;)J zp2gLE_ldI~h%Pmb(}OjqI{fyyUv6vbLfC8SfirurJXrn1#C;l7v-JnS4PS)KUvD9m;#*EW9b+?Cn z#uI4q6P8<+#)rKb9Xa>&YNMqC?7v)P2nuN6ni0&Ciu?w>NR>TAm?B4J)i$!-EIF8it_=vv%G49)1`H+HQ8ED6FD> z>V@f{4n~_J&0-T?sMnXqg@ws=8u7MU2usSPe7|9P%JCs8Jd`Z^cVoo=Y)q$y3$aAF z7e+H|3QQ@$w4y-~7z6`0DI!4NPBAJYDgE<0!z5W!$Yjt}bsT`gn#~pfFdZy~zMC-w zCYOz+wDPjjZQNkWn<~Tnw9M{Rz248W#XIo*>4r=f*uJzZI+nw{ey@Y1)t|uIcS0b3E#05{;_lPp=eKEA ziu}0Dv`$fV-gugID*OhaPp**3 zR|KP@o`YXTdJNPw6B@tA);vq&m9Lg(?o3IESV3jax9J~=tit(}R^Jn5byu|hZ@e+) AOaK4? literal 0 HcmV?d00001 diff --git a/psscripts.ini b/psscripts.ini new file mode 100644 index 0000000..25e56e3 --- /dev/null +++ b/psscripts.ini @@ -0,0 +1,4 @@ + +[Startup] +0CmdLine=c:\Windows\system32\GroupPolicy\Machine\Scripts\Startup\Install.ps1 +0Parameters= \ No newline at end of file