[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 ::