Изменить общий сетевой ресурс внутри активного сеанса 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" для всех общих папок в реестре.

Другие вопросы по тегам