⚠️ IMPORTANT This module is early in it´s development phase. Many API function and features are not yet available. You are welcome to contribute on GitHub to accelerate progress further.
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