Hallo,
Ik heb een paar weken terug ook een vraag gesteld over .vbs
Verwijzen naar het bedrijf in een batchbestand
Nu heb ik een welkomscherm:
Goedemorgen gebruikersnaam,
Het is vandaag maandag 9 maart 2015
Je bent ingelogd op het .. domein
De volgende schijven zijn toegevoegd:
-
-
-
De volgende printers zijn toegevoegd:
- venster 1
- venster 2
- venster 3
Nu krijg ik de volgende 2 problemen:
1. Bij de printers moet er eerst 2x op "OK" worden geklikt voordat alle printers in 1 venster staan.
2. En als ik de variable strEnumDrive gebruik bij netwerkschijven én printers krijg ik deze bij mekaar, en als ik strEnumDrive1 gebruik voor de netwerkschijven krijg ik maar 1 netwerkschijf in het venster.
Het probleem met de netwerkschijven is al verholpen door strNetDrive te gebruiken i.p.v. strEnumDrive zoals bij de printers
Ik gebruik het volgende voor de netwerkschijven en printers:
'####################SCHIJVEN#####################
Set objNetwork = Nothing
Set objShell = Nothing
Set objDrives = Nothing
Dim objNetwork, objDrives, objShell
Dim strSubst, strSubstVal, strSubstName, strEnumDrive
Set objNetwork = CreateObject("WScript.Network")
Set objShell = CreateObject("Shell.Application")
Set objDrives = objNetwork.EnumNetworkDrives
For i = 0 to objDrives.Count - 1 Step 2
strSubst = objShell.NameSpace(objDrives.Item(i) & Chr(92)).Self.Name
strSubstVal = inStr(1,strSubst, Chr(40)) - 2
strSubstName = Mid(strSubst, 1, strSubstVal)
strNetDrive = strNetDrive & "Drive Letter: " & objDrives.Item(i) & vbCrlF & _
"Drive Name: " & strSubstName & vbCrlF & "Drive Path: " & _
objDrives.Item(i+1) & vbCrLf & vbCrLf
set strEnumDrive = NetDrive
Next
'####################PRINTERS#####################
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where Local = FALSE")
' Bericht opbouwen
For Each objPrinter in colInstalledPrinters
strEnumDrive = strEnumDrive & "Name: " & objPrinter.Name & vbCrlF & _
"Location: " & objPrinter.Location & vbCrlF & "Default: " & _
objPrinter.Default & vbCrLf & vbCrLf
'#####################BERICHT######################
myBlankLine = " "
myMessage = strGreeting
myMessage = myMessage & strFullName
myMessage1 = "Het is vandaag "
myMessage1 = myMessage1 & myDateString1
myMessage2 = myString
myMessage3 = "Toegevoegde netwerkschijven en printers:"
myPrinters = strEnumDrive
myMessage31 = "Toegevoegde netwerkschijven:"
myNetDrives = strNetDrive
msgbox myMessage & vbNewLine & _
myBlankLine & vbNewLine & _
myMessage1 & vbNewLine & _
myBlankLine & vbNewLine & _
myMessage2 & vbNewLine & _
myBlankLine & vbNewLine & _
myMessage31 & vbNewLine & _
myBlankLine & vbNewLine & _
myNetDrives & vbNewLine & _
myMessage3 & vbNewLine & _
myBlankLine & vbNewLine & _
myPrinters & vbNewLine & _
Wat ik zelf al geprobeerd heb:
De printers en netwerkschijven in een apart scherm weergeven;
objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "cscript C:\...\printerinfo.vbs"
set myPrinter = strEmunDrive
Do Until tsAtEndOfStream
filepath = Chr(34) & "C:\...\printerinfo.vbs" & Chr(34)
Set objshell= CreateObject("WScript.Shell")
objshell.Run "wscript " & filepath, , True
Als ik 2 aparte scripten maak (printers.vbs en schijf.vbs) komen de netwerkschijven en printers wél in 1 venster te staan.
Ik hoop dat iemand mijn vraag / probleem snapt.
Ik heb een paar weken terug ook een vraag gesteld over .vbs
Verwijzen naar het bedrijf in een batchbestand
Nu heb ik een welkomscherm:
Goedemorgen gebruikersnaam,
Het is vandaag maandag 9 maart 2015
Je bent ingelogd op het .. domein
De volgende schijven zijn toegevoegd:
-
-
-
De volgende printers zijn toegevoegd:
- venster 1
- venster 2
- venster 3
Nu krijg ik de volgende 2 problemen:
1. Bij de printers moet er eerst 2x op "OK" worden geklikt voordat alle printers in 1 venster staan.
2. En als ik de variable strEnumDrive gebruik bij netwerkschijven én printers krijg ik deze bij mekaar, en als ik strEnumDrive1 gebruik voor de netwerkschijven krijg ik maar 1 netwerkschijf in het venster.
Het probleem met de netwerkschijven is al verholpen door strNetDrive te gebruiken i.p.v. strEnumDrive zoals bij de printers
Ik gebruik het volgende voor de netwerkschijven en printers:
'####################SCHIJVEN#####################
Set objNetwork = Nothing
Set objShell = Nothing
Set objDrives = Nothing
Dim objNetwork, objDrives, objShell
Dim strSubst, strSubstVal, strSubstName, strEnumDrive
Set objNetwork = CreateObject("WScript.Network")
Set objShell = CreateObject("Shell.Application")
Set objDrives = objNetwork.EnumNetworkDrives
For i = 0 to objDrives.Count - 1 Step 2
strSubst = objShell.NameSpace(objDrives.Item(i) & Chr(92)).Self.Name
strSubstVal = inStr(1,strSubst, Chr(40)) - 2
strSubstName = Mid(strSubst, 1, strSubstVal)
strNetDrive = strNetDrive & "Drive Letter: " & objDrives.Item(i) & vbCrlF & _
"Drive Name: " & strSubstName & vbCrlF & "Drive Path: " & _
objDrives.Item(i+1) & vbCrLf & vbCrLf
set strEnumDrive = NetDrive
Next
'####################PRINTERS#####################
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where Local = FALSE")
' Bericht opbouwen
For Each objPrinter in colInstalledPrinters
strEnumDrive = strEnumDrive & "Name: " & objPrinter.Name & vbCrlF & _
"Location: " & objPrinter.Location & vbCrlF & "Default: " & _
objPrinter.Default & vbCrLf & vbCrLf
'#####################BERICHT######################
myBlankLine = " "
myMessage = strGreeting
myMessage = myMessage & strFullName
myMessage1 = "Het is vandaag "
myMessage1 = myMessage1 & myDateString1
myMessage2 = myString
myMessage3 = "Toegevoegde netwerkschijven en printers:"
myPrinters = strEnumDrive
myMessage31 = "Toegevoegde netwerkschijven:"
myNetDrives = strNetDrive
msgbox myMessage & vbNewLine & _
myBlankLine & vbNewLine & _
myMessage1 & vbNewLine & _
myBlankLine & vbNewLine & _
myMessage2 & vbNewLine & _
myBlankLine & vbNewLine & _
myMessage31 & vbNewLine & _
myBlankLine & vbNewLine & _
myNetDrives & vbNewLine & _
myMessage3 & vbNewLine & _
myBlankLine & vbNewLine & _
myPrinters & vbNewLine & _
Wat ik zelf al geprobeerd heb:
De printers en netwerkschijven in een apart scherm weergeven;
objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "cscript C:\...\printerinfo.vbs"
set myPrinter = strEmunDrive
Do Until tsAtEndOfStream
filepath = Chr(34) & "C:\...\printerinfo.vbs" & Chr(34)
Set objshell= CreateObject("WScript.Shell")
objshell.Run "wscript " & filepath, , True
Als ik 2 aparte scripten maak (printers.vbs en schijf.vbs) komen de netwerkschijven en printers wél in 1 venster te staan.
Ik hoop dat iemand mijn vraag / probleem snapt.