PowerShell でサーバーにユーザーを追加する方法

PowerShell から Titan SFTP サーバーにユーザーを追加できますか?
もちろん可能です。以下に PowerShell のスクリプトサンプルをご案内いたします。

コマンドを実行する前に、PowerShell でサーバーにログインする必要があります。
(参考:PowerShell によるサーバーへの認証)

【ユーザー名とパスワードのみを追加】


$serverName = "Default Server"
$userName = "John" 
 
# Create user
$newUser = new-object Titan.API.Models.SrtApiModelsApiUserParamsPoco
$newUser.Username = $userName
$newUser.Password = "password12345"
 
$user = New-Usr -ServerGuid $serverName -AuthGuid native -Body $newUser
$user.Response | Format-List

以下のサンプルでは Share\Incoming と Share\Outgoing というサブディレクトリを作成し、各ディレクトリにアクセス制限を設けています。

【ユーザー名/パスワード/パーミッションを追加】


$serverName = "Default Server"
$userName = "John"

# Create user
$newUser = new-object Titan.API.Models.SrtApiModelsApiUserParamsPoco
$newUser.Username = $userName
$newUser.Password = "Password12345"
$newUser.CreateHomeDirNow = 1

$user = New-Usr -ServerGuid $serverName -AuthGuid native -Body $newUser
$userNameGuid = $user.Response.UserGuid

Write-Host "Created user: " $userName " UserGUID: " $userNameGuid

$r = Start-UsrAction -ServerGuid $serverName -AuthGuid native -UserGuid $userName -byUserName -Action getHomeDir
$homeDir = $r.Response.HomeDir
Write-Host "Homedir: " $homeDir

# Create some folders for this user
$incoming = Join-Path $homeDir "Share\Incoming"
$outgoing = Join-Path $homeDir "Share\Outgoing"

Write-Host "Incoming: " $incoming
Write-Host "Outgoing: " $outgoing
New-Item -ItemType Directory -Force -Path $incoming
New-Item -ItemType Directory -Force -Path $outgoing


# Setup ACL for upload only for Incoming folder
$r = New-SvrDirAccess -OwnerGuid $userNameGuid -ServerGuid $serverName -AllowAce "-W-----LI----" -DenyAce "-------------" -Level "Usr" -Path $incoming

# Setup ACL for download/delete but not upload for Outgoing folder
$r = New-SvrDirAccess -OwnerGuid $userNameGuid -ServerGuid $serverName -AllowAce "R--D---LI----" -DenyAce "-------------" -Level "Usr" -Path $outgoing

# list directory access at user level which will include group/server level for this user
Write-Host "Directory permissions for user: " $userName
(Get-SvrDirAccessUserList -serverGUID $serverName -authGUID native -userGUID $userName).Response.DirAccessList | Format-List

上記スクリプトの実行後、パーミッションは管理ポータルに以下のように反映されます。
ユーザーディレクトリアクセス

  • PowerShell による操作は通常のサポートではご提供しておりません。
    例えば、複数ユーザーの一括登録方法のサポートをご希望の場合「Professional Service」のご契約が必要です。(参考:Professional Service [別売])
  • PowerShell や NXCLI のみで全ての設定を行うことはできません。
  • SSHホストキーやアルゴリズムは、現時点では管理ポータルからのみ登録が可能。