Jump to content
Stibo

Powershell und Netzlaufwerke - trennen klappt nicht

Recommended Posts

Hallo zusammen,

 

ich schreibe gerade ein kleines Skript, mit dem sich Nutzer ein bestimmtes Netzlaufwerk (nach Aufnahme des Servers in die Domain, momentan steht er noch Standalone und die Mappings geschehen mit lokalen Benutzern) neu mappen sollen. Aufgebaut ist es folgendermaßen

 

1. Der User wird gefragt, unter welchem aktuellen Buchstaben sein Laufwerk verbunden ist

2. Das Mapping wird gelöscht

3. Der User wird nach seinen alternativen Credentials abgefragt

4. Das Mapping wird neu aufgebaut

 

So sieht der Code bislang aus:

 

# Skript zum Wiederverbinden der Freigaben des Ablageservers

# Abfragen des Laufwerkbuchstabens

Write-Host "Unter welchem Laufwerksbuchstaben ist Ihre Freigabe derzeit verbunden?"
Write-Host "Bitte den Buchstaben ohne Doppelpunkt eingeben und Enter-Taste drücken:"
$LWB = Read-Host

# Bereits verbundenes Laufwerk löschen
Remove-PSDrive -Name $LWB -PSProvider FileSystem -Scope Global

$Benutzer = Get-Credential -UserName "domain\$env:UserName" -Message "Bitte das tägliche Windowspasswort eingeben"
New-PSDrive –Name "$LWB" –PSProvider FileSystem -Root "\\servername.localdomain\Share" -Credential $Benutzer -Persist

 

Das spuckt die Console aus:

 

PS C:\Windows\System32\WindowsPowerShell\v1.0> P:\PowerShell\Ablageserver.ps1
Unter welchem Laufwerksbuchstaben ist Ihre Freigabe derzeit verbunden?
Bitte den Buchstaben ohne Doppelpunkt eingeben und Enter-Taste drücken:
Q
New-PSDrive : Der lokale Gerätename wird bereits verwendet
At P:\PowerShell\Ablageserver.ps1:13 char:1
+ New-PSDrive –Name "$LWB" –PSProvider FileSystem -Root "\\Servername.localdomain ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (Q:PSDriveInfo) [New-PSDrive], Win32Exception
    + FullyQualifiedErrorId : CouldNotMapNetworkDrive,Microsoft.PowerShell.Commands.NewPSDriveCommand
 

PS C:\Windows\System32\WindowsPowerShell\v1.0> 

 

Allem Anschein nach wird das Laufwerk überhaupt nicht getrennt. Wenn ich mit net use überprüfe, welche LWs noch gemappt sind, taucht es (Q) auch weiterhin auf.

Was mache ich falsch? :confused: Bin für jede Hilfe dankbar! :) Und: Gruppenrichtlinien können wir in diesem Fall leider nicht benutzen, weil die User alle in derselben OU sind, aber verschiedene Freigaben nutzen.

 

[Edit]

 

Ich habe vermutlich die Antwort gefunden: Laufwerkmappings, die mit "net use" verbunden wurden, werden allem Anschein nach durch Remove-PSDrive nicht entfernt. Stellt sich mir die Frage, ob man irgendwie rausfinden kann, wie das Laufwerk gemappt wurde und per Schalter in dem Skript abfragt, welche Methode genutzt wurde...?

Edited by Stibo

Share this post


Link to post
Share on other sites

Im Zweifel ist "net use" hier wohl sowieso die robustere Wahl. Ich würd einfach bei Laufwerksmappings immer "net use" benutzen (wenn GPOs keine Wahl sind - wäre vielleicht ne prima Gelegenheit, mal aufzuräumen und doch GPOs einzusetzen ;-) )

Share this post


Link to post
Share on other sites

Bin bei Tesso - ein "net use" erstellt kein PSDrive, also kann man es damit auch nicht entfernen :-)

Share this post


Link to post
Share on other sites
vor 17 Stunden schrieb BOfH_666:

Im Zweifel ist "net use" hier wohl sowieso die robustere Wahl. Ich würd einfach bei Laufwerksmappings immer "net use" benutzen (wenn GPOs keine Wahl sind - wäre vielleicht ne prima Gelegenheit, mal aufzuräumen und doch GPOs einzusetzen ;-) )

 

Das Problem hierbei ist, dass ich/wir nicht die Hoheit über die Clients habe(n). Und bis wir hier die GPOs durchgesetzt haben ist 2019 wahrsch. auch wieder vorbei... ;)

 

vor 17 Stunden schrieb Sunny61:

Vorher mit einer Batch alle verbundenen Laufwerke trennen:

 

 


net use * /delete /yes

 

 

 

Auf die Idee kam ich auch schon (aber dediziert auf das entsprechende Laufwerk, also das, was der User eingibt), aber hat nicht funktioniert.

 

vor 16 Stunden schrieb tesso:

Probier es mal mit Remove-SmbMapping

 

Werde ich gleich testen, danke!

Share this post


Link to post
Share on other sites
vor 56 Minuten schrieb Stibo:
vor 18 Stunden schrieb Sunny61:

Vorher mit einer Batch alle verbundenen Laufwerke trennen:

 

 



net use * /delete /yes

 

 

 

Auf die Idee kam ich auch schon (aber dediziert auf das entsprechende Laufwerk, also das, was der User eingibt), aber hat nicht funktioniert.

Nicht funktioniert hilft an der Stelle ungemein. Genauer geht es nicht? Fehlermeldungen gab es keine?

Share this post


Link to post
Share on other sites
vor einer Stunde schrieb Sunny61:

Nicht funktioniert hilft an der Stelle ungemein. Genauer geht es nicht? Fehlermeldungen gab es keine?

 

Ah, ich hab' die Fehlermeldung vergessen mit reinzukopieren, scusa me:

 

Unter welchem Laufwerksbuchstaben ist Ihre Freigabe derzeit verbunden?
Bitte den Buchstaben ohne Doppelpunkt eingeben und Enter-Taste drücken:
Q
net : Die Netzwerkverbindung konnte nicht gefunden werden.
At P:\PowerShell\Ablageserver.ps1:10 char:1
+ net use $LWB /d
+ ~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Die Netzwerkver...efunden werden.:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

 

Es wird einfach kein gemapptes Laufwerk gefunden.

Share this post


Link to post
Share on other sites

Vielleicht kannst Du ja diesen Teil des Scriptes sowieso etwas "tweaken"/"pimpen". ;-) Ich bin immer skeptisch, wenn Anwender eine Wahl treffen sollen und dabei quasi völlig freie Hand haben. Ich fände es deutlich weniger fehlerträchtig, wenn sie in solch einem Fall nur die Wahl hätten, aus einer Liste von Möglichkeiten, die eine Richtige auszuwählen. Also wenn 4 oder 5 Netzlaufwerke existieren, diese als Auswahlliste anbieten und keine anderen Eingaben zulassen.

Vielleicht sogar noch besser - der Pfad zur Freigabe sollte doch eigentlich bekannt sein - dann könntest Du danach suchen und das Laufwerk trennen ohne den AW behelligen zu müssen. Für das Neuverbinden der neuen Freigabe würde wieder das eben gesagte gelten - nur die sinnvollen Optionen zur Auswahl anbieten.

Edited by BOfH_666

Share this post


Link to post
Share on other sites
Am 1.2.2019 um 14:27 schrieb BOfH_666:

Vielleicht kannst Du ja diesen Teil des Scriptes sowieso etwas "tweaken"/"pimpen". ;-) Ich bin immer skeptisch, wenn Anwender eine Wahl treffen sollen und dabei quasi völlig freie Hand haben. Ich fände es deutlich weniger fehlerträchtig, wenn sie in solch einem Fall nur die Wahl hätten, aus einer Liste von Möglichkeiten, die eine Richtige auszuwählen. Also wenn 4 oder 5 Netzlaufwerke existieren, diese als Auswahlliste anbieten und keine anderen Eingaben zulassen.

Vielleicht sogar noch besser - der Pfad zur Freigabe sollte doch eigentlich bekannt sein - dann könntest Du danach suchen und das Laufwerk trennen ohne den AW behelligen zu müssen. Für das Neuverbinden der neuen Freigabe würde wieder das eben gesagte gelten - nur die sinnvollen Optionen zur Auswahl anbieten.

 

Nun ist es so, dass sich meine Scriptfähigkeiten in Grenzen halten. ;) Die Idee hatte ich auch, aber die Umsetzung traue ich mir nicht zu. Daher habe ich zu dem gegriffen, von dem ich dachte, dass das klappen könnte.

 

Am 1.2.2019 um 18:26 schrieb Sunny61:

Da fällt mir nur noch die UAC ein. Kann es sein, dass die User lokale Adminrechte haben?

 

Das muss ich erst verifizieren, ich glaube nicht, aber sicher bin ich mir nicht.

Share this post


Link to post
Share on other sites
vor 9 Stunden schrieb Stibo:

Nun ist es so, dass sich meine Scriptfähigkeiten in Grenzen halten. ;)

Na wenn das nicht die perfekte Gelegenheit ist, sich endlich tiefer in Powershell einzuarbeiten!?!?  ;-):D 

 

Speziell bei Powershell finde ich die Eintstieghürde extrem niedrig. So lange es noch verfügbar ist, könntest Du Dich z.B. in der Microsoft Virtual Academy ein bissl "berieseln" lassen. Der Einstiegskurs Getting Started with Powershell ist immernoch sehr empfehlenswert - auch wenn er nicht mehr taufrisch ist. Das kostet Dich nur ein wenig Deiner Zeit, bringt Dich aber enorm vorwärts. Besonders, wenn Du vorhast, Dich noch eine Weile in Windows-basierten System-Umgebungen zu bewegen.

 

Und wenn Du irgendwo stecken bleibst, kannst Du ja immernoch hier fragen, oder hier oder hier oder hier oder hier:D 

Edited by BOfH_666

Share this post


Link to post
Share on other sites

Olaf, zu Stackoverflow solltest ihn nicht schicken - da gibts nur gleich Mecker wegen "zu unspezifisch" und blah... :-)

Share this post


Link to post
Share on other sites

Jaaa ... da geht er natürlich erst hin, wenn er ein bissl Erfahrung gesammelt hat und sich die Anfänger-Hilfe durchgelesen hat und sich auch dran hält ... dann klappt das schon.  ;-):D

Share this post


Link to post
Share on other sites

@tesso: Remove-SMBShare kann ich leider nicht nutzen, weil alle Clients noch Windows 7 sind.

 

vor 14 Stunden schrieb BOfH_666:

Na wenn das nicht die perfekte Gelegenheit ist, sich endlich tiefer in Powershell einzuarbeiten!?!?  ;-):D 

 

Speziell bei Powershell finde ich die Eintstieghürde extrem niedrig. So lange es noch verfügbar ist, könntest Du Dich z.B. in der Microsoft Virtual Academy ein bissl "berieseln" lassen. Der Einstiegskurs Getting Started with Powershell ist immernoch sehr empfehlenswert - auch wenn er nicht mehr taufrisch ist. Das kostet Dich nur ein wenig Deiner Zeit, bringt Dich aber enorm vorwärts. Besonders, wenn Du vorhast, Dich noch eine Weile in Windows-basierten System-Umgebungen zu bewegen.

 

Und wenn Du irgendwo stecken bleibst, kannst Du ja immernoch hier fragen, oder hier oder hier oder hier oder hier:D 

 

Ich versuche schon sehr lange, mich tiefer in Powershell einzuarbeiten, aber so richtig gelingen will mir das nicht; ich bin mir ziemlich sicher ich weiß auch weshalb, nur kriege ich das Problem auf kurz- bis mittelfristige Sicht wahrscheinlich nicht gelöst. Den MVA-Kurs habe ich sogar schon durchgesehen / -gearbeitet, der ist tatsächlich sehr hilfreich. Ich bin Dir / Euch wirklich dankbar für die Hilfe bisher, aber ich habe an dieses Thema für mich einen Haken gemacht und verwende eine ganz simple Batchdatei. Die mag eventuell nicht die schönste Option sein, aber in einem Test hat sie super funktioniert und liefert das, was ich brauche.

 

vor 9 Stunden schrieb daabm:

Olaf, zu Stackoverflow solltest ihn nicht schicken - da gibts nur gleich Mecker wegen "zu unspezifisch" und blah... :-)

 

Das ist mir schon passiert,. :D ich weiß, was Du meinst.

 

 

 

Das Thema hat sich dann erledigt.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Werbepartner:



×
×
  • Create New...