Наша команда по серверам внедрила DFS, но пользователи в компании по-прежнему сопоставляют диски, используя имена серверов на разных сайтах. Я хотел бы выпустить сценарий PS, который обновляет значение реестра SINGLE (для каждого диска).
Моя цель - просмотреть каждый буквенный ключ диска, если ключ существует, а удаленный путь начинается с имени сервера, то замените его на имя DFS \\domain.com\SITE\+остаток пути. Таким образом, пользователи сохраняют одни и те же буквы дисков без необходимости переназначать свои диски.
На примере офиса в Денвере...
$OldServer = "\\denvernas01\"
$NewServer = "\\domain.com\DEN\"
$DriveLetterArray = "A","B","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"
foreach ($DriveLetter in $DriveLetterArray)
{ $Drives = Get-ItemPropertyValue HKCU:\Network\$DriveLetter -Name RemotePath -ErrorAction SilentlyContinue
$RemainingPath = $Drives.Replace($OldServer,"")
foreach ($Drive in $Drives)
{ if ($Drive -like "*$OldServer*")
{ Set-ItemProperty HKCU:\Network\$DriveLetter -Name RemotePath -Value "$NewServer"+"$RemainingPath" }}}
EDIT ^^^В настоящее время это работает, но только если имя сервера в RemotePath написано строчными буквами. т.е. переменные сервера чувствительны к регистру. Есть мысли о том, как определить переменные $OldServer и $NewServer, чтобы они работали с вариантами регистра???? например. Denvernas01, DENVERNAS01 (или что-то среднее между ними)
Я наткнулся на несколько тем, в которых обсуждались New-PSDrive, Get-WMIObject и т. д., но мне бы очень хотелось просто заменить это значение реестра. Это был бы хороший патч, который снял бы нагрузку с нашей команды поддержки настольных компьютеров. Поверьте мне, я буду выступать за то, чтобы GPO вытесняла обычные подключаемые диски, как только все это закончится.
Любая обратная связь очень ценится. Благодарю вас!