Windows 7'de ağ paylaşımlarına yükseltilmiş bir işlemden nasıl erişilir?


5

UAC, Varsayılan seviyeye ayarlıyken , Windows 7'de eşlenen ağ klasörlerine yönetimsel bir komut isteminden veya başka bir yükseltilmiş işlemden erişilmesi mümkün değildir.

Bu, örneğin ağ paylaşımında bulunan bir * .reg dosyasını içe aktarmaya çalışırken istenmeyen hatalara yol açar. UAC istemini kabul ettikten sonra aşağıdaki ve çift kafa karıştırıcı hata mesajında ​​sonuçları çift tıklamak:

M: \ sharename \ settings.reg içe aktarılamıyor: Dosya açılırken hata oluştu. Bir disk veya dosya sistemi hatası olabilir.

Daha önce eşlenmiş ağ paylaşımlarının yükseklikle çalışırken de mevcut olması mümkün mü? Yoksa bu davranışa geçici bir çözüm var mı?

Güncelleme: Bunun bir yönetici komut istemi açmanın ve sürücüleri kullanarak bağlamanın işe yaradığını biliyorum net use. Bu, payın yükseltilmiş tüm işlemlerde kullanılabilir olmasını sağlar; ancak, bunu yapmak kalıcı değildir ve her oturum açtıktan sonra tekrarlanması gerekir.

Yanıtlar:


4

Kısacası hayır. Geçerli eşlenmiş / kimliği doğrulanmış ağ kaynakları kümesini yükseltilmemiş bir bağlamdan yükseltilmiş bağlamınıza kopyalamanın desteklenen bir yolu yoktur. Tüm amaç ve amaçlar için, aynı konsoldan etkileşime girebildiğiniz ayrı girişler. Yükseltilmiş ve yükseltilmemiş süreçler arasında iletişim kurabilmek, onları ayrı tutmanın tüm güvenlik amacını bozacaktır.

Ancak, bu ağ sürücüleri, kullanıcı hesabınızın kimlik bilgilerini kullanarak monte edilirse (ve ayrı bir giriş / şifre değil), gerçek bir sürücü eşlemesi yerine UNC yolu ile erişmeye çalışabilirsiniz.



2

Geçerli oturumda eşleştirilen sürücüleri, yükseltilmiş yönetici oturumu için tekrar eşleyen basit bir VBScript hazırladım. Komut dosyasını çalıştırdıktan sonra, eşlenen sürücüler tüm yükseltilmiş işlemlerde kullanılabilir. Bu, geçerli kullanıcı zaten yerel bir yönetici ise çalışır:

Option Explicit
Dim objNetwork, objShell
Dim strDriveLetter, strNetworkPath
Dim colDrives, intDrive, strDrives


If WScript.Arguments.length =0 Then
    Set objNetwork = CreateObject("WScript.Network")
    Set colDrives = objNetwork.EnumNetworkDrives

    For intDrive = 0 To (colDrives.Count -1) Step 2
        WScript.Echo colDrives.Item(intDrive) & " is mapped to: " & colDrives.Item(intDrive + 1)
        If Len(strDrives) > 0 Then strDrives = strDrives & " "
        strDrives = strDrives & " " & Chr(34) & colDrives.Item(intDrive) & Chr(34) &  " " & Chr(34) & colDrives.Item(intDrive + 1) & Chr(34) 
    Next

  If Len(strDrives) > 0 Then
      ' re-call script with elevation
      Set objShell = CreateObject("Shell.Application")
      objShell.ShellExecute "cscript.exe", Chr(34) & WScript.ScriptFullName & Chr(34) & strDrives, "", "runas", 1
    Else
        WScript.Echo "No drives Mapped."
    End If

Else
  ' elevated part
  Set objNetwork = CreateObject("WScript.Network")

  For intDrive = 0 To (WScript.Arguments.Count - 1) Step 2
        WScript.Echo WScript.Arguments(intDrive) & " is mapped to: " & WScript.Arguments(intDrive + 1)
        On Error Resume Next ' ignore already mapped drives
        objNetwork.MapNetworkDrive WScript.Arguments(intDrive), WScript.Arguments(intDrive + 1)
        On Error GoTo 0
    Next

End If

1

'' EnableLinkedConnections '' kayıt defteri ayarı, Windows 7'de (şirket bilgisayarında) benim için hiç çalışmadı. Boşuna olmamak için çeşitli şekillerde denedim.

Bu çalıştı 0xA3 gelen senaryo ve kusursuz çalışır . Bunun için teşekkürler.

Otomatik olarak çalıştırmak için, komut dosyasını bir dosyaya (remount-admin.vbs gibi) yazın ve bu dosyayı C: \ ProgramData \ Microsoft \ Windows \ Start Menu \ Programs \ Startup konumuna kaydedin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.