locked
Script zur Umbenennung von Netzwerkfreigaben RRS feed

  • Frage

  • Unser alter FileServer (DC) wird durch einen neuen Windows Server 2008 R2 ersetzt,
    um sich die Arbeit auf den Clients (XP, VISTA, Windows 7) zu erleichern, suche ich nach einem Script das am Client aus der Registry
    die alten Einträge der Netzwerkffreigaben ausliest und durch den Namen des neuen Servers ersetzt...

    hat evtl. jemand Tip oder eine Lösung wie man sich bei dieser Aufgabe die Arbeit etwas vereinfachen kann...

    über einen Hinweis würde mich sehr freuen - DANKE

    Mittwoch, 23. September 2009 09:15

Antworten

  • Hallo zusammen

    @Sebastian: wie sieht es aus? Hast du dich für eine der vorgeschlagenen Lösungen entschieden?

    PS: ein Script könnte so aussehen: http://www.microsoft.com/technet/scriptcenter/resources/qanda/sept05/hey0928.mspx

    Gruß
    Andrei
    • Als Antwort markiert iT-Geek Dienstag, 9. Februar 2010 12:23
    Dienstag, 6. Oktober 2009 07:18
  • Hallo TechNet-Forum Community,

    meine Antwort hat sich leider etwas verzögert - andere Prioritäten in der iT-Landschaft hatten Vorrang ;-)
    zur Entschädigung gibt's dafür was funktionierendes & brauchbares ^^


    die Migration der Daten vom alten Windows Server 2003 auf den neuen Windows Server 2008 R2 war mit dem Microsoft-Migrations-Tool erfolgreich...
    d.h. die von mir händisch zuvor eingerichteten Freigaben werden durch das Microsoft-Migrations-Tool ebenfalls erledigt

    was die Netzwerk-Freigaben betrifft, hat mein Kollege, der das obige Script sich angesehen hat, noch ein optimaleres Script gefunden...

    hier die Source dazu, welche z.B. als ChangeNetworkShare.bat im NETLOGON abgespeichert werden kann:
    - - -
    @echo off
    set OldName=ServerOld
    set NewName=ServerNew

    net use | find /i "%OldName%" > nul || goto :eof
    for /F "tokens=2-3" %%a in ('net use ^| find "\\"') do call :Sub %%a %%b %%c


    net use | find /i "%OldName%" > nul || goto :eof
    for /F "tokens=3-4" %%a in ('net use ^| find "\\"') do call :Sub %%a %%b %%c
    goto :eof


    :Sub
    set DriveLetter=%1
    if %DriveLetter:~1,1%==: goto Letter


    :NoLetter
    set ShareName=%1
    call set ShareName=%%ShareName:%OldName%=%NewName%%%
    net use %1 /d
    net use %ShareName%
    goto :eof

    :Letter
    set ShareName=%2
    set ShareName=%ShareName:ServerOld=ServerNew%
    net use %DriveLetter% /d
    net use %DriveLetter% %ShareName%

    - - -

    viel Erfolg ...

    schöne Grüße aus dem sonnigen Salzburger-Land,
    Sebastian

    • Als Antwort markiert iT-Geek Dienstag, 9. Februar 2010 12:38
    Dienstag, 9. Februar 2010 12:38

Alle Antworten

  • Hi,

    was genau soll mit dem Vorhaben erreicht werden? Den String in der Registrierung auszutauschen wird kaum alle "Funktionen" auf den anderen Server "umziehen".
    Von daher ist eine komplette Migrationsstrategie eher sinnvoll.

    Vielleicht beschreibst Du noch einmal ein wenig genauer, was Du im Kern erreichen möchtest. Es gibt sicherlich andere Möglichkeiten Dein Ziel zu erreichen.

    Viele Grüße
    Fabian
    http://blogs.technet.com/deds
    Mittwoch, 23. September 2009 16:54
  • Hallo Fabian,

    am neuen Windows Server 2008 R2 FileServer sind bereits sämtliche Freigaben eingerichtet - mir geht es lediglich darum, auf den Clients die Netzlaufwerke so zu sagen mit dem neuen Namen des FileServers zu korrigieren ohne jetz bei jedem Client einzeln die Registry zu durchforsten...

    hab leider noch keinen Hinweis im Netz gefunden wie man dies evtl. über die PowerShell oder eben ein entsprechendes Script lösen kann - ich denk mir auch, vor dieser Aufgabe stehen sämtliche Administratoren, welche die alten Server durch neue ersetzen und den neuen Servern auch neue Namen geben...


    hier hätte ich aus der Registry (unter Windows 7) die entsprechenden einträge rauskopiert, die betroffen sind
    (denk unter Windows Vista und Windows XP werden die Einträge entsprechend ähnlich oder gleich sein - dies schau ich mir seperat noch an) 


    HKEY_CURRENT_USER\Network\X
    Name: RemotePath
    Typ: REG_SZ
    Wert: \\W2K8R2FileSrv\Share


    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Map Network Drive MRU
    Name: a
    Typ: REG_SZ
    Wert: \\W2K8R2FileSrv\Share


    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\##W2K8R2FileSrv#Share
    Name: _CommentFromDesktopINI
    Typ: REG_SZ
    Wert:

    Name: _LabelFromDesktopINI
    Typ: REG_SZ
    Wert:


    HKEY_USERS\S-1-5-21-227890448-1867060154-1540833222-8904\Network\X
    Name: RemotePath
    Typ: REG_SZ
    Wert: \\W2K8R2FileSrv\Share


    HKEY_USERS\S-1-5-21-227890448-1867060154-1540833222-8904\Software\Microsoft\Windows\CurrentVersion\Explorer\Map Network Drive MRU
    Name: a
    Typ: REG_SZ
    Wert: \\W2K8R2FileSrv\Share


    HKEY_USERS\S-1-5-21-227890448-1867060154-1540833222-8904\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\##W2K8R2FileSrv#Share
    Name: _CommentFromDesktopINI
    Typ: REG_SZ
    Wert:

    Name: _LabelFromDesktopINI
    Typ: REG_SZ
    Wert:


    die Aufgabenstellung ist nicht umfangreich, produziert jedoch (wie soll es denn auch anders sein) ne Menge manuelle Arbeit, die, so denk ich mir, doch einem abgenommen werden könnte ;-)

    DANKE jedenfalls für Deine Antwort/Frage/Mitarbeit - evtl. hat ja jemand hier eine clevere iDee, einen Hinweis oder sogar eine Lösung :-)

    schöne Grüße,
    Sebastian
    Donnerstag, 24. September 2009 07:48
  • Hallo Sebastian,

    Dir stehen viele Wege offen, auch je nach Client Betriebssystem.

    Per Anmeldescript kannst Du bei Clients <Vista mit 'net use' arbeiten
    Bei Vista und höher am Besten per Gruppenrichtlinien
    und um auch zukunftsicher zu sein, zzgl  lieber gleich DFS miteinsetzen.
    Gruß Ralph Andreas Altermann
    Donnerstag, 24. September 2009 08:04
  • Hallo Ralph,

    die Idee mit dem AnmeldeScript ist im Prinzip ein guter Ansatz, jedoch verwenden die verschiedenen Abteilungen und auch hier die User verschiedene Netzwerkfreigaben - klar wäre der Ruf nach einer Vereinheitlichung nahe, bin ich auch dafür, vereinfacht immerhin die Administration um einiges ...

    die Einstellung der Gruppenrichtlinien für VISTA bzw. windows 7 muß ich mir noch ansehen - dies wurde bislang vernachlässigt - leider ...

    DFS ist derzeit überhaupt nicht im Einsatz - ist auch schon länger her, wo ich es in einem MS-Training gehört & mal praktisch umgesetzt hab ...

    schöne Grüße,
    Sebastian
    Donnerstag, 24. September 2009 08:59
  • Hi Sebastian,

    ich denke wie oben schon angemerkt nicht, daß das Ersetzen der Strings den gewünschten Erfolg hat. Es spielen noch andere Komponenten, wie zum Beispiel der Credential Manager o.ä. mit in das Thema hinein.

    Du kannst ja testweise einmal einen Client manuell mit den Ersetzungen ausstatten - kann der getestete Benutzer dann tatsächlich auf die Freigaben des neuen Systems problemlos zugreifen bzw. hat er sie weiterhin problemlos als Netzlaufwerke verbunden? Ich vermute eher nicht.

    Alternativ könntest Du im DNS einen CNAME für "W2K8R2FileSrv" erstellen und diesen auf den neuen Server zeigen lassen. Dann kann es jedoch Probleme mit Kerberos geben, wenn die CNAME SPNs nicht korrekt registriert sind. Das wäre also nur eine Übergangs- bzw. Testlösung.

    Viele Grüße
    Fabian

    http://blogs.technet.com/deds
    Donnerstag, 24. September 2009 16:55
  • Hallo zusammen

    @Sebastian: wie sieht es aus? Hast du dich für eine der vorgeschlagenen Lösungen entschieden?

    PS: ein Script könnte so aussehen: http://www.microsoft.com/technet/scriptcenter/resources/qanda/sept05/hey0928.mspx

    Gruß
    Andrei
    • Als Antwort markiert iT-Geek Dienstag, 9. Februar 2010 12:23
    Dienstag, 6. Oktober 2009 07:18
  • Hallo Andrei,

    das Script hätte ich mal ins Visier genommen, habs überflogen, der erste Eindruck war gut & brauchbar - könnte die Lösung sein, bin jedoch noch nicht dazu gekommen mich im Detail damit auseinander zu sezten - ich gebe mehr Feedback, wenn ich mich dem Task wieder widme - DANKE fürs erste ...
    Freitag, 16. Oktober 2009 06:44
  • Hallo TechNet-Forum Community,

    meine Antwort hat sich leider etwas verzögert - andere Prioritäten in der iT-Landschaft hatten Vorrang ;-)
    zur Entschädigung gibt's dafür was funktionierendes & brauchbares ^^


    die Migration der Daten vom alten Windows Server 2003 auf den neuen Windows Server 2008 R2 war mit dem Microsoft-Migrations-Tool erfolgreich...
    d.h. die von mir händisch zuvor eingerichteten Freigaben werden durch das Microsoft-Migrations-Tool ebenfalls erledigt

    was die Netzwerk-Freigaben betrifft, hat mein Kollege, der das obige Script sich angesehen hat, noch ein optimaleres Script gefunden...

    hier die Source dazu, welche z.B. als ChangeNetworkShare.bat im NETLOGON abgespeichert werden kann:
    - - -
    @echo off
    set OldName=ServerOld
    set NewName=ServerNew

    net use | find /i "%OldName%" > nul || goto :eof
    for /F "tokens=2-3" %%a in ('net use ^| find "\\"') do call :Sub %%a %%b %%c


    net use | find /i "%OldName%" > nul || goto :eof
    for /F "tokens=3-4" %%a in ('net use ^| find "\\"') do call :Sub %%a %%b %%c
    goto :eof


    :Sub
    set DriveLetter=%1
    if %DriveLetter:~1,1%==: goto Letter


    :NoLetter
    set ShareName=%1
    call set ShareName=%%ShareName:%OldName%=%NewName%%%
    net use %1 /d
    net use %ShareName%
    goto :eof

    :Letter
    set ShareName=%2
    set ShareName=%ShareName:ServerOld=ServerNew%
    net use %DriveLetter% /d
    net use %DriveLetter% %ShareName%

    - - -

    viel Erfolg ...

    schöne Grüße aus dem sonnigen Salzburger-Land,
    Sebastian

    • Als Antwort markiert iT-Geek Dienstag, 9. Februar 2010 12:38
    Dienstag, 9. Februar 2010 12:38