PowerShell で別サーバのフォルダの共有設定を行う

2016 年 6 月 13 日 by sora

PowerShellで別のファイルサーバにフォルダを作成した後、共有の設定を行いたい場合がありました。
別サーバにフォルダを作成する方法はNew-Itemコマンドレットを使用して以下のように簡単に行うことができます。

New-Item "\\[サーバ名]\[親共有名]\[作成したいフォルダ名]"

# 例)
New-Item "\\A-Server\share\createFolder"

作成したフォルダ(createFolder)に共有を設定したい(共有名:B-Folder)場合、New-Itemコマンドように簡単に設定を行うことはできません。

New-SmbShare –Name "[共有名]" –Path "[共有先フォルダ]" -FullAccess "everyone"

# 例)
New-SmbShare –Name "B-Folder" –Path "\\A-Server\share\createFolder" 
-FullAccess "everyone"

やはり、GUIを使用して手動で設定する方法と同様に共有フォルダを指定して、別サーバの共有設定を行うことはできません。

CIMを通してアクセスすることで、共有の設定を行うことができます。

#パスワードをSecureStringに変換
$secPassword = ConvertTo-SecureString "[パスワード]" -AsPlainText -Force
#認証情報の生成
$credential = New-Object System.Management.Automation.PSCredential("[ユーザ名]", 
$secPassword)
$cim = New-CimSession -ComputerName "[サーバ名]" -Credential $credential
# 共有を設定
New-SmbShare –Name "[共有名]" –Path "[共有するフォルダのローカスパス]" 
-FullAccess "everyone" -CimSession $cim

# 例)
#パスワードをSecureStringに変換
$secPassword = ConvertTo-SecureString "password" -AsPlainText -Force
#認証情報の生成
$credential = New-Object System.Management.Automation.PSCredential("administrator", 
$secPassword)
$cim = New-CimSession -ComputerName "A-Server" -Credential $credential
# 共有を設定
New-SmbShare –Name "B-Folder" –Path "c:\sample\share\createFolder" 
-FullAccess "everyone" -CimSession $cim

これで共有を設定することができました。
処理時間が少し掛かることが難点ですが…。

タグ:

TrackBack