PSImmich
This project has adopted the following policies
Project status
About
PSImmich is a Powershell API wrapper for Immich
Installation
PowerShell Gallery
To install from the PowerShell gallery using PowerShellGet run the following command:
Install-Module PSImmich -Scope CurrentUser
Usage
Before calling the Immich cmdlets a session needs to be created. Currently it is supported to use an API key or credentials (username and password)
Connect-Immich -BaseURL 'https://immich.domain.com' -AccessToken 'ztKkvGWVIacJATX7RLCbWCISpamwEQkLpakn8O48acE'
$Cred = Get-Credential
Connect-Immich -BaseURL 'https://immich.domain.com' -Credential $Cred
You can verify that the connection is working by calling Get-IMSession
and verifying that AccessTokenValid
is true
Get-IMSession
BaseUri : https://immich.domain.com
AuthMethod : AccessToken
AccessToken : System.Security.SecureString
AccessTokenValid : True
Credential :
JWT :
APIUri : https://immich.domain.com/api
ImmichVersion : 1.98.2
SessionID : 67055f46-51aa-42a2-8471-46170c441558
The session object can be passed to all cmdlets. This is useful if connection to more than one Immich instance is needed.
$Session1 = Connect-Immich -BaseURL 'https://immich.domain.com' -AccessToken 'ztKkvGWVIacJATX7RLCbWCISpamwEQkLpakn8O48acE' -PassThru
Get-IMAsset -Session $Session1
To see available cmdlets you can use the following command
Get-Command -Module PSImmich | Format-Wide -Column 4 -Property Name
Add-IMActivity Add-IMAlbumAsset Add-IMAlbumUser Add-IMAsset
Add-IMAssetTag Add-IMMyProfilePicture Add-IMPartner Add-IMSharedLinkAsset
...
...
Available commands
Below is a reference of the available command. For documentation about each command please see the docs
Activity
- Add-IMActivity
- Get-IMActivity
- Get-IMActivityStatistic
- Remove-IMActivity
Album
- Add-IMAlbumUser
- Get-IMAlbum
- Get-IMAlbumCount
- New-IMAlbum
- Remove-IMAlbum
- Remove-IMAlbumUser
- Rename-IMAlbum
- Set-IMAlbum
- Set-IMAlbumUser
API key
- Get-IMAPIKey
- New-IMAPIKey
- Remove-IMAPIKey
- Set-IMAPIKey
Asset
- Export-IMAssetThumbnail
- Get-IMAsset
- Get-IMAssetMemoryLane
- Get-IMAssetStatistic
- Import-IMAsset
- Remove-IMAsset
- Restore-IMAsset
- Save-IMAsset
- Set-IMAsset
- Start-IMAVideoTranscode
- Update-IMAssetMetadata
- Update-IMAssetThumbnail
Audit
- Get-IMAuditDelete
Auth
- Test-IMAccessToken
AuthSession
- Get-IMAuthSession
- Remove-IMAuthSession
Face
- Get-IMFace
FileReport
- Get-IMAuditFile
- Get-IMFileChecksum
Job
- Clear-IMJob
- Get-IMJob
- Resume-IMJob
- Start-IMJob
- Suspend-IMJob
Library
- Get-IMLibrary
- New-IMLibrary
- Remove-IMLibrary
- Remove-IMOfflineLibraryFile
- Set-IMLibrary
- Sync-IMLibrary
- Test-IMLibrary
Map
- Get-IMMapMarker
- Get-IMMapStyle
Memories
- Get-IMMemory
- New-IMMemory
- Remove-IMMemory
- Set-IMMemory
Notification
- Send-IMTestMessage
Partner
- Add-IMPartner
- Get-IMPartner
- Remove-IMPartner
- Set-IMPartner
Person
- Export-IMPersonThumbnail
- Get-IMPerson
- Merge-IMPerson
- New-IMPerson
- Set-IMPerson
Search
- Find-IMAsset
- Find-IMCity
- Find-IMExploreData
- Find-IMPerson
- Find-IMPlace
ServerConfig
- Get-IMConfig
- Set-IMConfig
ServerInfo
- Get-IMServer
- Get-IMServerConfig
- Get-IMServerFeature
- Get-IMServerStatistic
- Get-IMServerStorage
- Get-IMServerVersion
- Get-IMSupportedMediaType
- Get-IMTheme
- Test-IMPing
Session
- Connect-Immich
- Disconnect-Immich
- Get-IMSession
- Invoke-ImmichMethod
SharedLink
- Add-IMSharedLinkAsset
- Get-IMSharedLink
- New-IMSharedLink
- Remove-IMSharedLink
- Remove-IMSharedLinkAsset
- Set-IMSharedLink
Tag
- Add-IMAssetTag
- Get-IMTag
- New-IMTag
- Remove-IMAssetTag
- Remove-IMTag
- Rename-IMTag
Timeline
- Get-IMTimeBucket
User
- Add-IMMyProfilePicture
- Export-IMProfilePicture
- Get-IMUser
- New-IMUser
- Remove-IMMyProfilePicture
- Remove-IMUser
- Restore-IMUser
- Set-IMUser