Изменить общий сетевой ресурс внутри активного сеанса Citrix и общего имени
Мне нужно изменить подключенный сетевой диск внутри бесшовного сеанса Citrix. Ничего страшного, если я использую PS3 для запуска программ:
$y = \\server\share1
if(!(get-psdrive y)){
New-PSDrive -Name Y $y -Persist -PSProvider FileSystem
}
else{
Get-PSDrive Y | Remove-PSDrive -Force
New-PSDrive -Name Y $y -Persist -PSProvider FileSystem
}
Проблема возникает после изменения $y на другое значение (например, \server\share2) и переназначение диска в активном бесшовном сеансе. В уже запущенных приложениях Citrix Seamless повторное сопоставление выполнено, диск отображает содержимое share2, но его имя в проводнике (например, файл, сохраняемый как диалог) по-прежнему \server\share1, что сбивает с толку.
Есть ли способ обновить также имя общего ресурса внутри уже запущенных бесшовных приложений.
- Конечно, все действия / запуск приложений выполняются в одном сеансе ica.
- XenApp 6
Спасибо
1 ответ
Мне это удалось. Я думаю, что это уродливое решение, но оно работает для меня. Если у кого-то есть лучшее решение, пожалуйста, дайте мне знать.
Вот мое: Windows хранит имя каждого когда-либо подключенного общего ресурса в реестре по адресу "hkcu:Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\"
Если определена метка, используется это имя. Так что просто пометьте каждую акцию. Но учтите, что если у вас подключено более одного сетевого диска, все метки всех сетевых дисков будут изменены!
$regkeypart1 = "hkcu:Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\"
$regkeypart2 = "_LabelFromDesktopINI"
foreach( $currentItem in Get-ChildItem -Path $regkeypart1){
set-itemproperty -Path $regkeycomplete -Name $regkeypart2 -Value "New Volume Display Label"
}
Если вы хотите избавиться от меток, просто удалите или очистите "_LabelFromDesktopINI" для всех общих папок в реестре.