プロジェクト

全般

プロフィール

[Windows/PowerShell/ExPack] PowerShell でプロファイル中にマイドキュメント等のフォルダーを作るバッチを生成したい.

技術ノート
2016/12/15

[番号]
技術ノート KGTN 2016120602

[現象]
[Windows/PowerShell/ExPack] PowerShell でプロファイル中にマイドキュメント等のフォルダーを作るバッチを生成したい.

[説明]
ローカルアカウントで Windows PowerShell を 「管理者として実行する」 で起動し,その中で下記のコマンドを実行して下さい.

#
# プロファイルに各種フォルダーを作成するバッチを生成するスクリプト
#
# 設定情報
$FilePrefix = "Gen\MakeProfileFolder" # 生成するファイルのプリフィックス
$HomeFolder = "C:\HOME" # プロファイルのホームフォルダー
$FolderList = # 生成するフォルダーのリスト
@(
"Documents",
"Favorites",
"Downloads" 
)
# ホスト情報およびユーザー情報の設定など
Try
{
. (".\Conf\confUserList.ps1")
}
Catch
{
Write-Host "インクルードファイルが見つかりません。" 
Exit 1001
}
# 引数のチェック
if($Args.Length -ne 0)
{
Write-Host "Usage: genProfileFolderList.ps1" 
Exit 1002
}
# 既存ファイルの削除
if ((Test-Path "$FilePrefix.bat") -eq $True)
{
Remove-Item ("$FilePrefix.bat")
}

# プロファイルのフォルダーを作成するバッチの生成
$ii = 0
ForEach($targetU In $userList)
{
++$ii
$jj = 0
ForEach($folder In $FolderList)
{
# mkdir C:\HOME\localUser001\Documents
$OutMessage = "mkdir $HomeFolder\{0}\{1}" -f $targetU[0],$folder
write-output $OutMessage | out-file -filepath ("$FilePrefix.bat") -encoding default -
append
# cacls C:\HOME\localUser001\Documents /E /P localUser001:F
$OutMessage = "cacls $HomeFolder\{0}\{1} /E /P {0}:F" -f $targetU[0],$folder
write-output $OutMessage | out-file -filepath ("$FilePrefix.bat") -encoding default -
append
# ::
$OutMessage = "::" 
write-output $OutMessage | out-file -filepath ("$FilePrefix.bat") -encoding default -
append
#---
++$jj
}
}

生成されるバッチファイルの内容のサンプルは,以下の通りです.

mkdir C:\HOME\localUser001\Documents
cacls C:\HOME\localUser001\Documents /E /P localUser001:F
::
mkdir C:\HOME\localUser001\Favorites
cacls C:\HOME\localUser001\Favorites /E /P localUser001:F
::
mkdir C:\HOME\localUser001\Downloads
cacls C:\HOME\localUser001\Downloads /E /P localUser001:F
::
mkdir C:\HOME\localUser002\Documents
cacls C:\HOME\localUser002\Documents /E /P localUser002:F
::
mkdir C:\HOME\localUser002\Favorites
cacls C:\HOME\localUser002\Favorites /E /P localUser002:F
::
mkdir C:\HOME\localUser002\Downloads
cacls C:\HOME\localUser002\Downloads /E /P localUser002:F
::

ファイル

KGTN2016120602.pdf (72 KB) kitasp 技術センター, 2016/12/15 10:23