Hur man säkert donerar CPU-tid med Windows Sandbox

I den här världen leder datorkraft till mirakel. Datorkraft kan spela en stor roll för att lösa problem som kretsar kring oss. Detta är en av anledningarna till att hela teknikindustrin (inklusive Microsoft ) investeras i kvantdatorer(Quantum) som kommer att bidra till att göra en dator mer effektiv för att lösa dessa problem. Folding Home är ett distribuerat datorprojekt som utför molekylära dynamiksimuleringar av proteindynamik.

Microsoft har lagt ut en detaljerad guide där alla kan donera sina datorresurser till projektet. Vi kommer att prata om hur du säkert donerar CPU- tid med Windows Sandbox i den här guiden.

Hur man säkert donerar CPU-tid med Windows Sandbox

Donera CPU- tid på ett säkert sätt med Windows Sandbox

Innan du börjar måste du se till att Windows Sandbox är aktiverat på din dator(Windows Sandbox is enabled on your computer) .

Öppna nu Anteckningar(Notepad) och kopiera och klistra in följande kod i den:

#Requires -RunAsAdministrator

#For a custom username, add -username <your username> to the command execution
param([string]$username=‘wsandbox_anon‘)
$ProgressPreference = ‘SilentlyContinue‘ #Progress bar makes things way slower

# Ensure that virtualization is enabled in BIOS.
Write-Output ‘Verifying that virtualization is enabled in BIOS…‘
if ((Get-WmiObject Win32_ComputerSystem).HypervisorPresent -eq $false) {
Write-Output ‘ERROR: Please Enable Virtualization capabilities in your BIOS settings…‘
exit
}

# Determine if Windows Sandbox is enabled.
Write-Output ‘Checking to see if Windows Sandbox is installed…‘
If ((Get-WindowsOptionalFeature –FeatureName ‘Containers-DisposableClientVM‘ –Online).State -ne ‘Enabled‘) {
Write-Output ‘Windows Sandbox is not installed, attempting to install it (may require reboot)…‘
if ((Enable-WindowsOptionalFeature –FeatureName ‘Containers-DisposableClientVM‘ –All –Online –NoRestart).RestartNeeded) {
Write-Output ‘Please reboot to finish installing Windows Sandbox, then re-run this script…‘
exit
}
} else {
Write-Output ‘Windows Sandbox already installed.‘
}

# Download the latest version of FAH.
Write-Output ‘Checking for latest version of foldingathome…‘
$installer_url = ‘https://download.foldingathome.org/releases/public/release/fah-installer/windows-10-32bit/‘

# Use regex to get the latest version from the FAH website.
$version = ((Invoke-WebRequest –Uri $installer_url –UseBasicParsing).Links | Where-Object {$_.href -match ‘^v\d+([.]\d+)?‘} | ForEach-Object {[float]($_.href -replace ‘[^.\d]‘, ‘‘)} | Measure-Object –Max).Maximum
$installer = “$($installer_url)v$($version)/latest.exe“
$installer_size =(Invoke-WebRequest $installer –Method Head –UseBasicParsing).Headers.‘Content-Length‘
Write-Output “Using FAH v$version.“

# Check if the installer is present, download otherwise.
$working_dir = “$env:USERPROFILE\fah_conf“
$install_fname = ‘folding_installer.exe‘
If (!(test-path “$working_dir\$install_fname“) -or (Get-ChildItem “$working_dir\$install_fname“).Length -ne $installer_size ) {
Remove-Item “$working_dir\$install_fname“ –Force –ErrorAction SilentlyContinue
Write-Output “Downloading latest folding executable: $working_dir\$install_fname“
Write-Output “Saving to $working_dir\$install_fname…“
New-Item –ItemType Directory –Force –Path $working_dir | Out-Null
Invoke-WebRequest –Uri $installer –OutFile “$working_dir\$install_fname“
}

# Create the FAH configuration file with the Windows Sandbox FAH team #251561.
Write-Output ‘Creating init command…‘
$conf_file = ‘fah_sandbox_conf.xml‘
Write-Output “Saved [email protected] configuration file to $working_dir\$conf_file“
New-Item –Force –Path “$working_dir\$conf_file“ –ItemType File
Set-Content –Path “$working_dir\$conf_file“ –Value @”
<config>
<user v=’$username‘/>
<team v=’251561’/>
<core-priority v=’low’/>
<power v=’full’ />
<priority v=’realtime’/>
<smp v=’true’/>
<gpu v=’true’/>
<open-web-control v=’true’/>
</config>
“@

<#
Create the script that runs at logon. This script:
1. Starts the installer
2. Creates a volatile working directory
3. Copies the config into the working directory
4. Sets the firewall policies to let FAH run
5. Starts the FAH client
#>
Write-Output ‘Creating init command…‘
$logon_cmd = “$working_dir\init.cmd“
$wdg_install_dir = ‘C:\users\wdagutilityaccount\desktop\fah_conf‘
$wdg_working_dir = ‘C:\users\wdagutilityaccount\desktop\fah_working_dir‘
Write-Output “Saved logon script to $logon_cmd, this will be run upon starting Sandbox.“
New-Item –Force –Path $logon_cmd –ItemType File
Set-Content –Path $logon_cmd –Value @”
start $wdg_install_dir\$install_fname /S
goto WAITLOOP

:WAITLOOP
if exist “C:\Program Files (x86)\FAHClient\FAHClient.exe” goto INSTALLCOMPLETE
ping -n 6 127.0.0.1 > nul
goto WAITLOOP

:INSTALLCOMPLETE
mkdir $wdg_working_dir
cd $wdg_working_dir
echo \”Copying config file to $wdg_working_dir\”
copy $wdg_install_dir\$conf_file $wdg_working_dir
netsh advfirewall firewall Add rule name=”FAHClient” program=”C:\Program Files (x86)\FAHClient\FAHClient.exe” action=allow dir=out
netsh advfirewall firewall Add rule name=”FAHClient” program=”C:\Program Files (x86)\FAHClient\FAHClient.exe” action=allow dir=in
start C:\”Program Files (x86)”\FAHClient\FAHClient.exe –config $wdg_working_dir\$conf_file
“@

# Create the Sandbox configuration file with the new working dir & LogonCommand.
$sandbox_conf = “$working_dir\fah_sandbox.wsb“
Write-Output “Creating sandbox configuration file to $sandbox_conf“
New-Item –Force –Path $sandbox_conf –ItemType File
Set-Content –Path $sandbox_conf –Value @”
<Configuration>
<VGpu>Enable</VGpu>
<MappedFolders>
<MappedFolder>
<HostFolder>$working_dir</HostFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
</MappedFolders>
<LogonCommand>
<Command>$wdg_install_dir\init.cmd</Command>
</LogonCommand>
</Configuration>
“@

# For convenience, start the Sandbox.
Write-Output ‘Starting sandbox…‘
Start-Process ‘C:\WINDOWS\system32\WindowsSandbox.exe‘ –ArgumentList $sandbox_conf

Alternativt kan du bara ladda ner det från Microsofts GitHub-förråd(Microsoft’s GitHub repository) .

När det är klart, kör det bara med Windows PowerShell och det startar en Windows Sandbox- miljö som kommer att donera din dators resurser till det distribuerade datorprojektet.

All the best!



About the author

Jag är en datavetare med över 10 års erfarenhet av mjukvaruutveckling och säkerhet. Jag har ett starkt intresse för Firefox, Chrome och Xbox-spel. Jag är särskilt intresserad av hur jag ser till att min kod är säker och effektiv.



Related posts