# ------------------------------------------------------------------ # AUTHOR: [LucidLink Support] # NAME: user_group_script.ps1 # VERSION: 1.0.1 # DESCRIPTION: Lists users group assignments in Filespace instance 1 # and assign accordingly in Filespace instance 2 # # THE SCRIPT IS PROVIDED “AS IS” AND “AS AVAILABLE” AND IS WITHOUT # WARRANTY OF ANY KIND. PLEASE REVIEW ALL TERMS AND CONDITIONS. # https://www.lucidlink.com/legal-documents # ------------------------------------------------------------------ Param( [string]$FS1ROOTPWD, [string]$FS2ROOTPWD ) # --- Ensure password --- if ([string]::IsNullOrEmpty($FS1ROOTPWD)) { Write-Host "Usage: .\user_group_script.ps1 `r`nRequest failed with: Bad Request `r`nEmpty required parameter 'password' is not allowed!" exit 1; } # --- List and filter Lucid group names form instance 1 --- $SOURCEGROUPS = lucid --instance 1 group --password ""$FS1ROOTPWD"" $GROUPS = $SOURCEGROUPS -match "lucid\\" -replace '\s.+$' # --- Split each individual group user memebers within instance 1 --- foreach ($LINES in $GROUPS) { $GROUP = $LINES $MEMBERS = lucid --instance 1 group --get ""$GROUP"" --password ""$FS1ROOTPWD"" $USRLIST = $MEMBERS.replace('Users','').trim() -ne "" -split ',' | Select-Object -Skip 1 # --- Loop through user assignments, assigning users to groups for instance 2 --- foreach ($ENTRIES in $USRLIST) { $USRLIST = $ENTRIES Start-Process -WindowStyle hidden -FilePath "C:\Program Files\Lucid\Resources\Lucid.exe" -ArgumentList "--instance 2 group --set ""$GROUP"" --add-user ""$USRLIST"" --password ""$FS2ROOTPWD""" -Wait -RedirectStandardOutput lucid_group_user_output.txt -RedirectStandardError lucid_group_user_error_output.txt Get-Content lucid_group_user_output.txt, lucid_group_user_error_output.txt Get-Content lucid_group_user_output.txt, lucid_group_user_error_output.txt | Out-File lucid_group_user_log.txt -Append } } exit