GitXplorerGitXplorer
c

PSBoinc

public
4 stars
1 forks
0 issues

Commits

List of commits on branch master.
Verified
a869141656b9a3cf3367af55315fa8095d95e98e

Add badges to README.md

cchausner committed 3 years ago
Unverified
822aa98dfec2a0c6a4b4047f6aef2c8bb176eef4

Bump version to 1.1

cchausner committed 3 years ago
Unverified
1cacbe6b05e7e14a4c2dadac2ff20204caa75b9f

Implement Update-BoincAccountManager

cchausner committed 3 years ago
Unverified
0e23587325856e870764768f6395e8b663782401

Use BoincRpc NuGet package, bump target framework version to 4.6.1, update copyright year

cchausner committed 3 years ago
Unverified
f7f1aa7ca7a99b51d6279998fe377780c94ab4dc

Copy output also to PowerShell 7 modules folder

cchausner committed 4 years ago
Unverified
ad95d1457eb717f1e51bb822a67ba7f3a4a52ca3

Look for gui_rpc_auth.cfg at the proper location on non-Windows systems

cchausner committed 4 years ago

README

The README file for this repository.

PSBoinc

PowerShell module for managing BOINC clients on local and remote hosts

PowerShell Gallery Version license

Installation

Install via Install-Module PSBoinc -Scope CurrentUser.

Usage

RPC cmdlets operate in local or remote sessions. Local sessions are authenticated automatically:

Enter-BoincSession

Remote sessions require the RPC password (can be looked up from gui_rpc_auth.cfg):

Enter-BoincSession "192.168.0.11" "9096083b1c5a02d473a81784eb8e0862"

After a session has been opened, RPC cmdlets can be used to manage the client. Sessions are closed explicitly with Exit-BoincSession and implicitly when opening another session.

Help

Get a list of all cmdlets in PSBoinc:

Get-Command -Module PSBoinc

Get help on command Add-BoincAccountManager:

Get-Help Add-BoincAccountManager -Detailed

Examples

Do not receive new work from any project:

Get-BoincProject | Set-BoincProject -NoMoreWork

Abort all tasks that are at least 3 days behind their deadline:

Get-BoincTask | where { ([DateTimeOffset]::Now - $_.ReportDeadline).TotalDays -ge 3 } | Stop-BoincTask

Show a list of all current tasks from Rosetta@home and PrimeGrid, grouped by project and sorted by progress:

Get-BoincTask -Project rosetta*,prime* | sort FractionDone -Descending | fl -GroupBy ProjectUrl -Property WorkunitName,FractionDone

Suspend tasks after their next checkpoint and shutdown the machine:

while ($true)
{
    Get-BoincTask | where { ($_.CurrentCpuTime - $_.CheckpointCpuTime).TotalSeconds -le 30 } | Suspend-BoincTask
    if (-not (Get-BoincTask | where Suspended -NE $true))
    {
        break
    }
    Start-Sleep -Seconds 10
}
Stop-Computer

Attach multiple remote clients to a project:

"pc-01","pc-02","pc-03" | foreach { 
    Enter-BoincSession $_ "9096083b1c5a02d473a81784eb8e0862"
    Add-BoincProject "http://boinc.bakerlab.org/rosetta" "johndoe@example.com" "P@ssW0rD!"
}

Show benchmark results for a list of remote clients:

"pc-01","pc-02","pc-03" | foreach { 
    Enter-BoincSession $_
    $hostinfo = Get-BoincHostInformation
    [pscustomobject]@{Machine=$_;Whetstone=$hostinfo.FloatingPointOperations;Drhystone=$hostinfo.IntegerOperations}
}