Ich versuche, eine .bat-Datei zu erstellen, die beim Klicken auf ein Netzlaufwerk abgebildet wird (es wäre sogar noch besser, wenn beim Anmelden automatisch eine Verbindung hergestellt werden könnte, falls eine Verbindung zum Netzwerk besteht.
Was ich bisher habe, ist:
Net Use P: "\\server\foldername\foldername"
Gibt es eine Möglichkeit, die ich erstellen kann, damit die Benutzer nicht mit der rechten Maustaste klicken und als Administrator ausgeführt werden müssen? Ich würde es gerne haben, wenn sie einfach auf die .bat-Datei klicken könnten und sie für sie zuordnen würde.
Ich habe es gerade herausgefunden! Was ich getan habe war, dass ich die Batchdatei so erstellt habe, wie ich sie ursprünglich hatte:
Net Use P: "\\server\foldername\foldername"
Ich habe es dann auf dem Desktop gespeichert und mit der rechten Maustaste auf die Eigenschaften geklickt und als Administrator ausgeführt. Ich kopierte die Datei dann unter C:\Benutzer\"TheUser"\AppData\Roaming\Microsoft\Windows\Startmenü\Programme\Startup
Wo "TheUser" der gewünschte Benutzer war, wollte ich ihn hinzufügen.
Speichern Sie unten in einem test.bat
und es funktioniert für Sie:
@echo off
Net Use Z: \\server\SharedFolderName password /user:domain\Username /persistent:yes
Das /persistent:yes
-Flag weist den Computer an, diese Freigabe beim Anmelden automatisch wieder zu verbinden. Andernfalls müssen Sie das Skript während jedes Startvorgangs erneut ausführen, um das Laufwerk zuzuordnen.
Zum Beispiel:
Net Use Z: \\WindowsServer123\g$ [email protected] /user:Mynetdomain\Sysadmin /persistent:yes
@echo off
Net Use z: /delete
cmdkey /add:servername /user:userserver /pass:userstrongpass
Net Use z: \\servername\userserver /savecred /persistent:yes
set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs"
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT%
echo sLinkFile = "%USERPROFILE%\Desktop\userserver_in_server.lnk" >> %SCRIPT%
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT%
echo oLink.TargetPath = "Z:\" >> %SCRIPT%
echo oLink.Save >> %SCRIPT%
cscript /nologo %SCRIPT%
del %SCRIPT%
Ich habe versucht, einen zugeordneten Netzwerktreiber über 'Net Use' mit Administratorrechten zu erstellen, schlug aber fehl, es wird nicht angezeigt. Und wenn ich es über die Benutzeroberfläche hinzufüge, verschwand es nach dem Neustart, jetzt habe ich das über Powershell gemacht .. Also, ich denke, Sie können Powershell-Skripts von einer .bat-Datei ausführen, und das Skript ist
New-PSDrive -Name "P" -PSProvider "FileSystem" -Root "\\Server01\Public"
fügen Sie -persist
hinzu. Am Ende erstellen Sie ein permanentes zugeordnetes Netzlaufwerk
New-PSDrive -Name "P" -PSProvider "FileSystem" -Root "\\Server01\Scripts" -Persist
weitere Informationen finden Sie unter New-PSDrive - Microsoft Docs
Dieser VBS-Code erstellt eine BAT-Datei mit den aktuell zugeordneten Netzlaufwerken. Legen Sie dann einfach die erstellte Datei in den Computer, auf dem Sie die Zuordnungen neu erstellen möchten, und doppelklicken Sie darauf. Es wird versucht, alle Zuordnungen mit denselben Laufwerksbuchstaben zu erstellen (Fehler können auftreten, wenn ein Buchstabe verwendet wird). Diese Methode kann auch als Sicherung der aktuellen Zuordnungen verwendet werden. Speichern Sie den folgenden Code als VBS-Datei (z. B. Mappings.vbs) und doppelklicken Sie darauf.
' ********** My Code **********
Set wshShell = CreateObject( "WScript.Shell" )
' ********** Get ComputerName
strComputer = wshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%" )
' ********** Get Domain
sUserDomain = createobject("wscript.network").UserDomain
Set Connect = GetObject("winmgmts://"&strComputer)
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set oDrives = WshNetwork.EnumNetworkDrives
Set oPrinters = WshNetwork.EnumPrinterConnections
' ********** Current Path
sCurrentPath = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)
' ********** Blank the report message
strMsg = ""
' ********** Set objects
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objWbem = GetObject("winmgmts:")
Set objRegistry = GetObject("winmgmts://" & strComputer & "/root/default:StdRegProv")
' ********** Get UserName
sUser = CreateObject("WScript.Network").UserName
' ********** Print user and computer
'strMsg = strMsg & " User: " & sUser & VbCrLf
'strMsg = strMsg & "Computer: " & strComputer & VbCrLf & VbCrLf
strMsg = strMsg & "### COPIED FROM " & strComputer & " ###" & VbCrLf& VbCrLf
strMsg = strMsg & "@echo off" & vbCrLf
For i = 0 to oDrives.Count - 1 Step 2
strMsg = strMsg & "Net Use " & oDrives.Item(i) & " " & oDrives.Item(i+1) & " /user:" & sUserDomain & "\" & sUser & " /persistent:yes" & VbCrLf
Next
strMsg = strMsg & ":exit" & VbCrLf
strMsg = strMsg & "@pause" & VbCrLf
' ********** write the file to disk.
strDirectory = sCurrentPath
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(strDirectory) Then
' Procede
Else
Set objFolder = objFSO.CreateFolder(strDirectory)
End if
' ********** Calculate date serial for filename **********
intMonth = month(now)
if intMonth < 10 then
strThisMonth = "0" & intMonth
else
strThisMonth = intMOnth
end if
intDay = Day(now)
if intDay < 10 then
strThisDay = "0" & intDay
else
strThisDay = intDay
end if
strFilenameDateSerial = year(now) & strThisMonth & strThisDay
sFileName = strDirectory & "\" & strComputer & "_" & sUser & "_MappedDrives" & "_" & strFilenameDateSerial & ".bat"
Set objFile = objFSO.CreateTextFile(sFileName,True)
objFile.Write strMsg & vbCrLf
' ********** Ask to view file
strFinish = "End: A .bat was generated. " & VbCrLf & "Copy the generated file (" & sFileName & ") into the machine where you want to recreate the mappings and double-click it." & VbCrLf & VbCrLf
MsgBox(strFinish)