Citrix UPMプロファイルのFSLogixへの移行

あなたがまだCitrix UPMモバイルプロファイルを使用している人の一人である場合 (ユーザープロファイル管理) そして、あなたはFSLogixの素晴らしさを試してみたいです, でももちろん, UPM プロファイルを持つユーザーがいて、それを FSLogix に移行して、最初から始めないようにしたい, これがあなたの投稿です!

だから私が言ったこと, FSLogixが何であるかを確認したい場合は、それがどのように機能するかを説明したドキュメントをすでに作成しました, この投稿では、既存のUPMプロファイルからFSLogixVHDまたはVHDXコンテナにデータを移行する方法のみを見ていきます.

デビッド・オットの素晴らしい脚本を使用します, それが行うことは、 'Fで見つけたプロファイルを変換することです:\Perf_XenApp’ そして、それらをFSLogix形式で 'F:\Perf_FSLogix’ (明らかにスクリプトでは、正しいパスで変更してください, また、作成する仮想ディスクの最大サイズも変更します, 私はダイナミックな成長で10GBでそれを持っています). スクリプトを実行すると、検出されたプロファイルが検出されます, そして、移行したいものを選択します. お試しいただけます, そして、それを検証した後、グループに分かれて行きます, あるいは、勇敢な者のように一斉に. 良い点は、元のプロファイルが触れられていないことです, これは, ユーザーの新しいVHDまたはVHDXで問題が発生した場合に備えて、常に引き返すことができます.

これが私たちが使用しているスクリプトです: Migra_Perfiles_UPM_a_FSLogix.ps1の

<#
David Ottによって書かれたこのスクリプトは、Citrix UPMプロファイルをFSLogix .vhdプロファイルに変換します (VHDXを実行するためにも編集できるはずです)
コメントされたすべての領域に注意してください.  diskpart を使用して .vhd ファイルを作成/マウント/マウント解除します, とrobocopyは、UPMプロファイルを.vhdにコピーします.
一度実行されると (環境に合わせて$newprofilepathと$oldprofilesを編集したと仮定します) 変換するプロファイルのリストが表示されます.  その後、プロファイルを選択できます(s) FSLogixプロファイルに変換したい.
hyperv モジュールがインストールされている場合は、hyperv コマンドを使用して diskpart の代わりに vhd/vhdx ファイルを作成/マウント/マウント解除するように、このスクリプトを編集することもできます.
生産テストで使用する前に!!
#>
# fslogix プロファイルのパス $newprofilepath = "F:\Perf_FSLogix" ##### FSLogix ルート プロファイル パス
<#
UPM プロファイル・パス - 本番環境のUPMルートフォルダはusername.domainです, と実際の Windows 7 プロファイルは v2x64UPM_Profile:
\\servershare%USERNAME%.%USERDOMAIN%!CTX_PROFILEVER!!CTX_OSBITNESS!
これは、環境に基づいて編集する必要があります - 主なことは、実際のUPM_Profileディレクトリすべてへのフルパスを持つことです#>
$oldprofiles = gci F:\Perf_XenApp | select -フルネームを展開 | ソート | out-gridview -OutputMode 複数 -title "プロファイルを選択(s) 変換するには"| %{
ジョインパス $_ "UPM_Profile"
}

# | ?{$_.name -like "*.$環境:ユーザードメイン"}
 
# foreach 古いプロファイル foreach ($$oldprofiles年の古い) {
<#
フォルダにユーザー名があることを知っているので、それを取得してsam変数に保存します, and use that to get the user's sid
then save that to $sid.
ほとんどの場合、$sam行を編集して、古いプロファイルパスからユーザー名を引き出す必要があります.  ユーザー名だけを突き止めるまで、文字列と分割パスで遊んでください.  For instance let's say your current profile path is
\\server\profileshare\username\v2x64\UPM_Profile  you could do something like this
$sam = (($古い-split "プロファイルシェア")[1] -割る "V2x64の")[0] -取り替える "\\",""
これにより、文字列がprofileshareで分割されます, そして、2番目の部分を選択します (0 が最初になるでしょう) これは usernamev2x64 UPM_Profile次に v2x64 を使用して再度分割し、最初の部分を選択します (思い出す 0 が最初の) これはusernameです最後に、 "\" 文字 (一致させる必要があります \\ として \ は特殊文字で、最初のスラッシュは文字列として使用するように指示しているだけです) 何もない... ユーザー名を残します.  
#>
$サム = (($古い-split "Perf_XenApp")[1] -割る "UPM_Profile")[0] -取り替える "\\",""
$sid = (新しいオブジェクト System.Security.Principal.NTAccount($サム)).翻訳([System.Security.Principal.SecurityIdentifier (英語)]).価値
<#
%localappdata%FSLogix にある .reg ファイル - スクリプトの最後に、ProfileList キーの .reg ファイルを作成します#>
$regtext = "Windowsレジストリエディタのバージョン 5.00
 
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList$sid]
`"ProfileImagePath」と入力します。"=`"C:\\ユーザー\$sam'"
`"FSL_OriginalProfileImagePath'"=`"C:\\ユーザー\$sam'"
`"フラッグス"=dワード:00000000
`"状態」"=dワード:00000000
`"ProfileLoadTimeLow」と入力します。"=dワード:00000000
`"ProfileLoadTimeHigh'"=dワード:00000000
`"RefCount'"=dワード:00000000
`"RunLogonScriptSync'"=dワード:00000000
"
<# nFolder パスを \NewProfilePath に設定しますusername_sid - これはデフォルトではありません デフォルトを使用する場合は、以下のように$sam/$sid変数を置き換えてから逆にします $nfolder = join-path $newprofilepath ($SID+"_"+$サム)
#>
$nfolder = ジョインパス $newprofilepath ($SID+"_"+$サム) ##### 上記の注を参照してください
# if $nfolder doesn't exist - 次の場合は作成します (!(test-path の$nfolder)) {New-Item -Path $nfolder -ItemType ディレクトリ | アウトヌル}
& icacls $nfolder /setowner "$環境:ユーザードメイン$sam" /T/C
& icacls $nfolder /grant $env:ユーザードメイン$sam':`(OI')`(CIの ')F/Tの
# vhd を \nfolderpathprofile_username.vhd $vhd = Join-Path $nfolder に設定します。 ("プロフィール_"+$サム+".高感度")
# diskpart コマンド $script 1 = "vdiskファイル='"$VHDの'" 最大 10240 タイプ=拡張可能"
$スクリプト 2 = "sel vdiskファイル='"$VHDの'"'r'nattach vdisk"
$スクリプト 3 = "sel vdiskファイル='"$VHDの'"'r'ncreate part prim'r'nselect part 1'r'nformat fs=ntfs quick"
$スクリプト4 = "sel vdiskファイル='"$VHDの'"'r'nsel part 1'r'nassign letter=T"
$スクリプト5 = "sel vdiskファイル'"$VHDの'"'r'nデタッチvdisk"
$スクリプト6 = "sel vdiskファイル='"$VHDの'"'r'nattach vdisk readonly'"'r'ncompact vdisk"
<#
if the vhd doesn't exist create, 添付する, 待つ 5 お代わり (Windows は追いつく必要があります), パーティションの作成/フォーマット,
文字 T を割り当てます。 (必要に応じて変更します), ディスクラベルを Profile-username に設定します。#>
もし (!(test-path $vhd)) {
$スクリプト1 | ディスクパート $script 2 | diskpart スタート-スリープ -s 5
$スクリプト3 | ディスクパート $script 4 | ディスクパーツ
& ラベルT: プロファイル$sam 新着アイテム -パス T:\プロファイル -ItemType ディレクトリ | アウトヌル
# プロファイル Start-Process ICACLS に対する権限の設定 "T:\プロファイル /setowner SYSTEM"
Start-Process icacls -ArgumentList (英語) "T:\プロファイル /reset /T"
Start-Process icacls -ArgumentList (英語) "T:\プロファイル/継承:d"
$cmd1 = "T:\プロフィール/grant $env:ユーザードメイン$sam':`(OI')`(CIの ')F"
Start-Process icacls -ArgumentList (英語) "T:\プロフィール/grant SYSTEM':`(OI')`(CIの ')F"
Start-Process icacls -ArgumentList (英語) "T:\プロフィール /grant 管理者:`(OI')`(CIの ')F"
Start-Process icacls -ArgumentList $cmd 1
} 然も無くば {
# VHD が存在する場合はアタッチします, 待つ 5 お代わり, 文字 T $script 2 を割り当てる | diskpart スタート-スリープ -s 5
$スクリプト4 | ディスクパーツ
}

# は、UPM プロファイル内の vhd /E /Purge のプロファイル ディレクトリにコピーします。 - これは、最新の情報で更新されるためです
"$old から $vhd へのコピー"
& ロボコピー $old T:\プロファイル /E /パージ /r:0 | アウトヌル

# cambiar nombre perfil UPM ya migrado #Rename-Item -Path F:\Perf_XenApp$sam -新しい名前 "Cambio.$sam" -力

# ムーバーパーフィルUPMヤミグラード移動アイテムF:\Perf_XenApp$sam F:\Perf_XenApp_Cambiado_UPM_Profile$sam-フォース

# %localappdata%FSLogix パスが存在しない場合は、次の場合に作成されます。 (!(テストパス "T:\プロファイルAppDataLocalFSLogix")) {
新しいアイテム -パス "T:\プロファイルAppDataLocalFSLogix" -ItemType ディレクトリ | アウトヌル
}
# creates the profiledata.reg file if it doesn't exist
if (!(テストパス "T:\プロファイルAppDataLocalFSLogixProfileData.reg")) {$レグテキスト | アウトファイル "T:\プロファイルAppDataLocalFSLogixProfileData.reg" -ASCII のエンコード}
$スクリプト5 | ディスクパーツ
}

万が一必要になった場合に備えて、お役に立てれば幸いです, 脚本の作者に感謝します. よく見ると, 各ユーザーの名前を使用して、SID がコンテナー ディレクトリに正しく名前を付けるようにします, 完全な権限を持つコンテナユーザーを所有します, 指定されたサイズの VHD を作成します, 彼はそれを組み立てます, NTFSにパーティション分割します, ユニットTとして一時的に:, UPM プロファイルのすべての内容をこの VHD にコピーします.

お読みいただきありがとうございました & ソーシャルメディアで共有する.

おすすめの投稿

著者

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, 私に連絡することを躊躇しないでください, できる限りお手伝いします, シェアリングは生きていること ;) . ドキュメントを楽しむ!!!