Ich versuche, ein Skript zu verwenden, um
- Zuordnung eines Laufwerks aufheben
- Löschen Sie die zwischengespeicherten Anmeldeinformationen, die zum Zuordnen dieses Laufwerks verwendet wurden.
- Ordnen Sie das Laufwerk mit anderen Benutzeranmeldeinformationen erneut zu.
Unter Windows 7 hat bei mir folgendes Skript funktioniert
@echo off
net use Z: /delete /y >nul
net stop LanmanWorkstation /y >nul
net start LanmanWorkstation >nul
timeout 1 >nul
net use Z: \\path\to\directory
Mit diesem Skript können Sie das auf Z abgebildete Laufwerk aushängen. Anschließend löschen Sie die zwischengespeicherten Anmeldeinformationen, die zum Mounten von Z verwendet wurden. Ordnen Sie das Laufwerk anschließend mit den Anmeldeinformationen eines anderen Benutzers neu zu.
Wenn ich dies unter Windows 10 ausführe, geben Net Stop und Net Start Zugriffsverweigerungsfehler aus. Ich habe versucht, eine Verknüpfung des Skripts zu erstellen und die Verknüpfung so einzustellen, dass sie immer als Administrator ausgeführt wird, aber diese Option ist auf meiner Box wahrscheinlich aufgrund von Gruppenrichtlinieneinstellungen ausgegraut.
Ich versuche, einen Weg zu finden, diese gleiche Unmap/Map-Lösung zu erreichen, und untersuche derzeit die Optionen, die über Powershell bereitgestellt werden. Mein aktueller Versuch in Powershell ist die Verwendung von
mount -Name "z" -PSProvider filesystem -Root "\\path\to\directory" -Persist
Die Zuordnung muss dauerhaft sein, damit das Laufwerk im Windows Explorer angezeigt wird. Dieser Befehl funktioniert wie vorgesehen, wenn ich ihn in Powershell ausführe, aber ein Doppelklick auf die Datei zum Ausführen ordnet das Laufwerk nicht zu, wahrscheinlich aufgrund von Zugriffsproblemen. Ich bin neu bei Powershell und lerne es noch, daher kenne ich nicht alle mir zur Verfügung stehenden Optionen. Kennt jemand eine Möglichkeit, den gewünschten Effekt zu erzielen?
Antwort1
Siehe unten ---
Löschen des Windows-Anmeldeinformationscache
Das Dienstprogramm zum Löschen zwischengespeicherter Anmeldeinformationen ist schwer zu finden. Es speichert sowohl Zertifikatsdaten als auch Benutzerkennwörter.
Öffnen Sie eine Eingabeaufforderung oder geben Sie Folgendes in den Ausführungsbefehl ein
rundll32.exe keymgr.dll,KRShowKeyMgr
Es gibt auch ein Befehlszeilenprogramm:
C:\> cmdkey /?
Erstellt, zeigt an und löscht gespeicherte Benutzernamen und Passwörter.
Laufwerkszuordnungen sind schon immer ein Ärgernis gewesen. Naja, Sie wissen schon... ;-}
Net Use war nicht die einzige Option, da Sie hierfür auch WScript in VBS oder WMIC verwenden konnten. PowerShell kann hierfür also sicher WMI verwenden.
#PSTip Zugeordnetes Netzlaufwerk mit WScript.Network erstellen
Ein Beispiel für die Zuordnung eines Laufwerks sehen Sie hier:
(New-Object -ComObject WScript.Network).MapNetworkDrive('Z:','\\server\folder')
Dadurch wird das Laufwerk nicht dauerhaft zugeordnet. Mit anderen Worten, das Laufwerk verschwindet nach einem Neustart oder wenn sich ein Benutzer abmeldet. Um sicherzustellen, dass die Laufwerkszuordnung dauerhaft ist, sollte ein drittes Argument hinzugefügt werden – ein Boolescher Wert, der auf „true“ gesetzt ist:
(New-Object -ComObject WScript.Network).MapNetworkDrive('Z:','\\server\folder',$true)
Die Verwendung des Schalters -persist ist die PowerShell-Option zum Festlegen der Laufwerksfixierung, seit Version 3 stehen Ihnen jedoch auch die SMB-Cmdlets zur Verfügung.
Get-Command -Name '*smb*'
CommandType Name Version Source
----------- ---- ------- ------
...
Function Get-SmbGlobalMapping 2.0.0.0 SmbShare
Function Get-SmbMapping 2.0.0.0 SmbShare
...
Function Get-SmbShare 2.0.0.0 SmbShare
Function Get-SmbShareAccess 2.0.0.0 SmbShare
....
Function New-SmbMapping 2.0.0.0 SmbShare
...
Function New-SmbShare 2.0.0.0 SmbShare
...
Function Remove-SmbShare 2.0.0.0 SmbShare
...
Function Set-SmbShare 2.0.0.0 SmbShare
...
Siehe auch: Powershell: Netzlaufwerk auf einem Remotecomputer zuordnen/aufheben
Was das betrifft...
Ich führe es in Powershell aus, aber wenn ich zum Ausführen auf die Datei doppelklicke, wird das Laufwerk nicht zugeordnet, wahrscheinlich aufgrund von Zugriffsproblemen.
… das ist nichts. .ps1 sind standardmäßig mit Notepad oder anderen Texteditoren verknüpft. Das ist so gewollt. Natürlich können Sie diese Verknüpfung ändern, aber tun Sie das nicht. Benutzer doppelklicken auf so ziemlich alles, und das kann für Sie und Ihre Organisation zu einer Reihe echter Sicherheits-/Risikomanagement-/Betriebsprobleme führen.
Es gibt verschiedene Möglichkeiten zum Ausführen per Doppelklick, mit/ohne erhöhte Berechtigungen:
- Die ganze Sache mit den Vereinen, das sollten Sie einfach nicht tun.
- Rufen Sie eine .ps1 aus einer Bat/cmd-Datei auf.
Ich habe das wirklich schon immer geglaubt, selbst für .bat, .vbs, .cmd war es eine schlechte Sache, einfach per Doppelklick auszuführen, und schon lange bevor es PowerShell gab. Die Industrie hat sich diese Gewohnheit jedoch angewöhnt und es ist schwierig, die Leute davon abzubringen.
- Erstellen Sie eine benutzerdefinierte Verknüpfung, die so konfiguriert ist, dass sie zum Ausführen per Doppelklick ausgeführt werden kann.
Beispiel:
# specify the path to your PowerShell script
$ScriptPath = "C:\test\test.ps1"
# create a lnk file
$shortcutPath = [System.IO.Path]::ChangeExtension($ScriptPath, "lnk")
$filename = [System.IO.Path]::GetFileName($ScriptPath)
# create a new shortcut
$shell = New-Object -ComObject WScript.Shell
$scut = $shell.CreateShortcut($shortcutPath)
# launch the script with powershell.exe:
$scut.TargetPath = "powershell.exe"
# skip profile scripts and enable execution policy for this one call
# IMPORTANT: specify only the script file name, not the complete path
$scut.Arguments = "-noprofile -executionpolicy bypass -file ""$filename"""
# IMPORTANT: leave the working directory empty. This way, the
# shortcut uses relative paths
$scut.WorkingDirectory = ""
# optinally specify a nice icon
$scut.IconLocation = "$env:windir\system32\shell32.dll,162"
# save shortcut file
$scut.Save()
# open shortcut file in File Explorer
explorer.exe /select, $ShortcutPath
- Wandeln Sie unser Skript mit diesem Tool von MS PowerShellGallery.com in eine EXE-Datei um.
PS2EXE-GUI: PowerShell-Skripte mit GUI in EXE-Dateien „konvertieren“
Sie haben also Optionen. Welche Sie wählen, hängt von den Betriebskosten usw. ab.