Для общей папки я закончил редактированием реестра, чтобы «переименовать» сам общий ресурс, а не папку. Я сделал это, прочитав данные записи реестра, удалив запись и записав данные в новую запись. Мне также пришлось перезапустить браузер компьютера и службы сервера, чтобы сервер получил новое имя общего ресурса. Это предотвращает отправку документов сервером приложений, поскольку он не может найти общий ресурс со старым именем. Мне также пришлось преобразовать значения записи безопасности из десятичного обратно в шестнадцатеричное, прежде чем записывать их в новую запись, и подождать между остановкой и перезапуском служб, чтобы убедиться, что они закончили, прежде чем перейти к следующему сервису.
Private Function RenameShare(ByVal strOldName As String, ByVal strNewName As String) As Boolean
Dim objRegAccess As Object
Dim varValues() As Variant
Dim varItem As Variant
Dim strSharePath As String
Dim strSecurityPath As String
Dim strValues As String
Dim strCmd As String
Set objRegAccess = CreateObject("Wscript.Shell")
strSharePath = "HKLM\SYSTEM\CurrentControlSet\services\LanmanServer\Shares\"
strSecurityPath = strSharePath & "Security\"
strValues = ""
varValues = objRegAccess.RegRead(strSharePath & strOldName)
strValues = ""
For Each varItem In varValues
strValues = strValues & varItem & "~"
Next
RunCommand "REG ADD " & strSharePath & " /v " & strNewName & " /t REG_MULTI_SZ /s ~ /d " & strValues & " /f", False
RunCommand "REG DELETE " & strSharePath & " /v " & strOldName & " /f", False
strValues = ""
varValues = objRegAccess.RegRead(strSecurityPath & strOldName)
For Each varItem In varValues
strValues = strValues & varItem & "~"
Next
strValues = ConvertDecToHex(strValues)
RunCommand "REG ADD " & strSecurityPath & " /v " & strNewName & " /t REG_BINARY /d " & strValues & " /f", False
RunCommand "REG DELETE " & strSecurityPath & " /v " & strOldName & " /f", False
RunCommand "NET STOP ""Computer Browser"" ", True
RunCommand "NET STOP ""Server"" ", True
RunCommand "NET START ""Server"" ", True
RunCommand "NET START ""Computer Browser"" ", False
End Function