19. maj 2005 - 15:36Der er
31 kommentarer og 4 løsninger
Sharing af netværksdrev og udførelse af simple kommandoer
Hej Eksperter!
En stresset stresset stresset mand søger hjælp.
Jeg er løbet lidt ind i et problem. Jeg skal have lavet følgende:
1. Mappe et share 2. Kopiere indholdet af sharen (\\servernavn\share\folder\*.*) til c:\folder 3. Kopieret c:\folder\filnavn.ini til C:\WINNT\ 4. Kopiere genvejen (som ligger i \\servernavn\share\folder) i C:\Documents and Settings\All Users\Desktop.
Og så tænker du sikkert. Jamen, hvorfor laver idioten ikke bare noget lignende det her:
@echo off net use x: \\servernavn\share\folder copy x:\folder c:\folder copy c:\folder\filnavn.ini c:\winnt net use x: /d pause.
Grunden til at jeg IKKE kan gøre det, er at jeg faktisk har alle drevbogstaver i brug (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,w,x,y,z), og kan derfor ikke assigne en share til den - og man kan ikke bare bruge en commando alá copy \\servernavn\folder\share c:\folder - det virker simpelthen ikke!
Jeg så her for nyligt et .vsb-script hvor nedenstående stod:
statusfile = "\\servernavn\install" <- Når jeg ser dette går jeg ud fra at man kan klare ovenstående i Visual Basic.
Hej ulrich Jeg havde noget liggende som du måske kan bruge:
On Error Resume Next Set shell = wscript.createobject("wscript.shell") Set fso = CreateObject("Scripting.FileSystemObject") Set objNetwork= CreateObject("Wscript.Network") Set WshShell = CreateObject("WScript.Shell")
Hej maximus25. Mange tak. Jeg er sku ikke en haj til vbs. Faktisk har jeg aldrig selv lavet noget i det, men det ser meget logisk ud. Jeg prøver lige, og så vender jeg lige tilbage.
Umiddelbart ser det, for mig, ud som om den mapper \\serverpath\c$\test til z:. Er jeg helt forkert på den?
Læs nedenstående (her mapper den ikke):
-----START-----
Option Explicit '------------------------- Begin Main() -------------------------
' ***************************************************************************** 'Const LOG_FILENAME = "Dev_IDs.log" 'Name of logfile Const SYSTEM32_PATH = "System32" 'Name of system32 directory Const TITLE = "Hardwaredetection" '----- define variables --------------------------------------------------- Dim fso, wso Dim SysRoot, SysDrive Dim Sys32Path Dim statusfile Dim DEV_ID_2_A '----- Get basic objects -------------------------------------------------- On error resume next
Set fso = CreateObject( "Scripting.FileSystemObject" ) Set wso = WScript.CreateObject( "WScript.Shell" ) If fso is nothing or wso is nothing then MsgBox("Error creating wsh- or scripting object") WScript.Quit End If
' statusfile = SysDrive & "\" & LOG_FILENAME statusfile = "\\sw\install\manfred\" & DEV_ID_2_A '------------- Get hardware info -------------------------
'------ Delete LogFile if exists ------------------------------------------ ' Tom todo: Rausnehmen, wenn in gleiches file wie postsetup geloggt werden soll If fso.FileExists(statusfile) then fso.DeleteFile statusfile
' Wso.PopUp "Detecting Vendor and Devices",3,TITLE,64
Dim DeviceSet, PnPEntity, numDev, numtmp Set DeviceSet = GetObject("winmgmts:").ExecQuery("select * from Win32_PnPEntity")
' Count number of detected devices numDev = 0 For each PnPEntity in DeviceSet If (UCase(Left(PnPEntity.DeviceID,4)) <> "ROOT" AND (UCase(Left(PnPEntity.DeviceID,2)) <> "SW") _ AND (UCase(Left(PnPEntity.DeviceID,7)) <> "STORAGE")) Then numDev=numDev+1 End If Next
' Create Array and store devices ' arrDevices(ID, DeviceID, DeviceDescription, DeviceManufacturer) Dim arrDevices() ReDim arrDevices(numDev,3) numtmp=0 For each PnPEntity in DeviceSet If (UCase(Left(PnPEntity.DeviceID,4)) <> "ROOT" AND (UCase(Left(PnPEntity.DeviceID,2)) <> "SW") _ AND (UCase(Left(PnPEntity.DeviceID,7)) <> "STORAGE")) Then arrDevices(numtmp,0) = numtmp arrDevices(numtmp,1) = PnpEntity.DeviceID arrDevices(numtmp,2) = PnPEntity.Description arrDevices(numtmp,3) = PnPEntity.Manufacturer numtmp=numtmp+1 End If Next
' ------------- Write Log (with all detected devices if running in debug mode) Dim iloc If numDev > 0 Then fnWriteLog "" fnWriteLog "PnP device detection finished - " & numDev+1 & " devices found." fnWriteLog "" Else fnWriteLog "PnP device detection failed - no devices found." wso.popup "Errors detecting devices! Detection stopped...",10,TITLE,64 Wscript.Quit(1) End If For iloc = 0 to numDev-1 fnWriteLog " " & arrDevices(iLoc,1) & vbCRLF & " " & arrDevices(iloc,2) & vbCRLF & " (" & arrDevices(iloc,3) & ")" Next 'iloc
' Log end of processing this subscript fnWriteLog "" fnWriteLog "Finished reading Device IDs." fnWriteLog ""
' ----------------------------------------------------------------------------- ' FunctionName: fnWriteSystemInfo ' ----------------------------------------------------------------------------- Sub fnWriteSystemInfo Dim oWMISet, oWMIObj Dim i
Set oWMISet = GetObject("winmgmts:").InstancesOf("Win32_ComputerSystem") If oWMISet.Count = 0 Then fnWriteLog("Cannot retrieve computer system information") Else For Each oWMIObj In oWMISet fnWriteLog("Manufacturer : " & oWMIObj.Manufacturer) fnWriteLog("Modeltype : " & oWMIObj.Model) fnWriteLog("Memory : " & oWMIObj.TotalPhysicalMemory \(1024*1024)+1 & " MB") Next End If
Set oWMISet = GetObject("winmgmts:").InstancesOf("Win32_VideoController") If oWMISet.Count = 0 Then fnWriteLog("Video Adapter : Cannot retrieve information") Else For Each oWMIObj In oWMISet fnWriteLog("Video Adapter : " & oWMIObj.VideoProcessor) Next End If
i = 1 Set oWMISet = GetObject("winmgmts:").ExecQuery ("select * from Win32_NetworkAdapterConfiguration where IPEnabled=true") If IsNull(oWMISet) Then fnWriteLog("Network Adapter: Cannot retrieve information or device not available") Else For Each oWMIObj In oWMISet fnWriteLog("Net Adapter (" & i & "): " & oWMIObj.Description & "(" & oWMIObj.IPAddress(0) & ")") i = i + 1 Next End If
Set oWMISet = GetObject("winmgmts:").InstancesOf("Win32_SoundDevice") If oWMISet.Count = 0 Then fnWriteLog("Sound Device : Cannot retrieve information or device not available") Else For Each oWMIObj In oWMISet fnWriteLog("Sound Device : " & oWMIObj.Description) Next End If
fnWriteLog("") End Sub
' ----------------------------------------------------------------------------- ' FunctionName: fnWriteLog ' Function: Appends a line with the given text in the logfile ' Parameter: sText - Text writing to the logfile ' iMode - ' ----------------------------------------------------------------------------- Sub fnWriteLog (sText) Dim f
on error resume next Set f = fso.OpenTextFile( statusfile, 8, True ) f.WriteLine sText f.Close End Sub
Hejsa ulrich Det script du lister ovenfor detecterer hardware på en maskine og skriver resultatet til en textfil. Det er noget andet end det du har brug for.
Det er rigtigt at det script jeg listede mapper \\serverpath\c$\test til "Z".
1. Den skal tage fat i \\x.x.x.x\install\div\wtbooks og kopiere mappen+indholdet til c:\ 2. Den skal kopiere filen C:\Wtbooks\bookcase.ini ind i c:\WINNT 3. Den skal kopiere C:\wtbooks\Ordbøger.lnk til C:\Documents and Settings\All Users\Desktop
On Error Resume Next Set shell = wscript.createobject("wscript.shell") Set fso = CreateObject("Scripting.FileSystemObject") Set objNetwork= CreateObject("Wscript.Network") Set WshShell = CreateObject("WScript.Shell")
for at afvikle .vbs scrits skal dette være installeret.....det følger med windows 2000 og XP(i forskellige versioner). Jeg har mistanke om at det er fjernet fra din maskine....så du skal som udgangspunkt ikke installerer det på alle dine klienter.
Prøv at installer det og se om det virker.....ellers kan du pushe det ud via login scriptet.....men jeg tror ikke det bliver nødvendigt.
Min klient, er en ny client, som ikke har hverken flere eller færrer rettigheder end alle andre der skal have det på. Man kunne godt køre det via login-script, eller runatonce, men det er altså alligevel også tungt at hente ned med 9.6 kb/s mobil opkobling. Kan det virkelig ikke lade sig gøre på andre måde?
Vi kører, som så mange andre, Microsoft Windows XP [Version 5.1.2600] m. SP2.
IP-adressen passer, og kontoen jeg logger på med har både administrative rettigheder på pc'en, samt adgang til sharen. både read/write. Hvad skal jeg ellers tage hensyn til?
Hm. Så er jeg på banen igen. Af uvisse årsager kunne jeg ikke skrive noget til exp.dk igår.
Nej, det virker umiddelbart ikke endnu. Tager lige .vbs filen med hjem, og tester på min egen computer i eftermiddag - vi kører en lidt speciel opsætning, mht. rettigheder osv.
Desværre ikke. Jeg har rodet lidt frem og tilbage og det viser sit at være pc'en, og den specielle opsætning der er skyld i at koden ikke kan afvikles korrekt. Du får dine point som tak for hjælpen!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.