powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как поменять путь сохранения файла в VB
6 сообщений из 6, страница 1 из 1
Как поменять путь сохранения файла в VB
    #37798090
rnikolos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте уважаемые форумчане.

Я далек от программирования на каких либо языках, и поэтому прошу помощи.
Необходимо создать скрипт который бы собирал информацию о компьютерах в домене. Не вопрос, погуглил и нашел

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
598.
599.
600.
601.
602.
603.
604.
605.
606.
607.
608.
609.
610.
611.
612.
613.
614.
615.
Const ForReading = 1

Const ForWriting = 2

 

strComputer = "."

 

 

 

'Set objComputer = CreateObject("Shell.LocalMachine")

 

Set objWMIService = GetObject( "winmgmts://./root/cimv2" )

               

                Set colItems = objWMIService.ExecQuery( "Select * from Win32_ComputerSystem", "WQL", 48 )

               

                For Each objItem in colItems

                               strComputer = objItem.Name

                Next

 

Set objFSO = CreateObject("Scripting.FileSystemObject")

 

Set objCommentFile = objFSO.OpenTextFile(strComputer & ".ini",  ForWriting, TRUE)

 

 

on error resume next

 

objCommentFile.Write "[Суммарная информация]"

objCommentFile.Write VbCrLf

objCommentFile.Write VbCrLf

 

 

               

objCommentFile.Write "Компьютер|Имя компьютера= " & strComputer & VbCrLf

 

on error resume next

Set colItems = objWMIService.ExecQuery("SELECT TotalVisibleMemorySize FROM Win32_OperatingSystem")

If Err Then ShowError

 

For Each objItem in colItems

     objCommentFile.Write "Системная плата|Системная память= " & round((((objItem.TotalVisibleMemorySize +1023) / 1024) / 1024),0) & " ГБ"  & VbCrLf

Next

 

on error resume next

Set colItems = objWMIService.ExecQuery("SELECT Name FROM Win32_Keyboard")

For Each objItem in colItems

    objCommentFile.Write "Ввод|Клавиатура= " & objItem.Name & VbCrLf

Next

on error resume next

Set colMice = objWMIService.ExecQuery _
    ("Select * from Win32_PointingDevice")

 

For Each objMouse in colMice

     objCommentFile.Write "Ввод|Мышь= " & objMouse.HardwareType & VbCrLf

 

Next

on error resume next

Set colItems = objWMIService.ExecQuery("SELECT Description, Manufacturer FROM Win32_SoundDevice")

i=1

For Each objItem in colItems

    objCommentFile.Write "Мультимедиа|Звуковой адаптер" & i & "=" & ltrim(objItem.Description) & VbCrLf

    i=i+1

Next

on error resume next

Set colItems = objWMIService.ExecQuery("SELECT Product, OtherIdentifyingInfo, SerialNumber, Manufacturer FROM Win32_BaseBoard")

 

For Each objItem in colItems

 

objCommentFile.Write "DMI|DMI серийный номер системной платы= " & ltrim(objItem.SerialNumber) & VbCrLf

 

Next

 

 

objCommentFile.Write VbCrLf

objCommentFile.Write VbCrLf

 

objCommentFile.Write "[DMI]"

 

objCommentFile.Write VbCrLf

objCommentFile.Write VbCrLf

on error resume next

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

 

Set colItems = objWMIService.ExecQuery("SELECT Name, CurrentClockSpeed, SocketDesignation, Manufacturer FROM Win32_Processor")

 

i=1

For Each objItem in colItems

   objCommentFile.Write "Процессоры" & i & "|Свойства процессора|Производитель= " & ltrim(objItem.Manufacturer) & VbCrLf

   objCommentFile.Write "Процессоры" & i & "|Свойства процессора|Версия= " & ltrim(objItem.Name) & VbCrLf

   objCommentFile.Write "Процессоры" & i & "|Свойства процессора|Тип разъёма= " & ltrim(objItem.SocketDesignation) & VbCrLf

   objCommentFile.Write "Процессоры" & i & "|Свойства процессора|Текущая частота= " & ltrim(objItem.CurrentClockSpeed) & VbCrLf

i=i+1

Next

 

objCommentFile.Write VbCrLf

objCommentFile.Write VbCrLf

 

objCommentFile.Write "[Системная плата]"

objCommentFile.Write VbCrLf

objCommentFile.Write VbCrLf

 

on error resume next

Set colItems = objWMIService.ExecQuery("SELECT Product, OtherIdentifyingInfo, SerialNumber, Manufacturer FROM Win32_BaseBoard")

 

For Each objItem in colItems

 

 

objCommentFile.Write "Производитель системной платы|Фирма= " & ltrim(objItem.Manufacturer) & VbCrLf

objCommentFile.Write "Свойства системной платы|Системная плата= " & ltrim(objItem.Product) & VbCrLf

objCommentFile.Write "DMI|DMI серийный номер системной платы= " & ltrim(objItem.SerialNumber) & VbCrLf

 

Next

 

 

 

objCommentFile.Write VbCrLf

objCommentFile.Write VbCrLf

 

objCommentFile.Write "[Видео Windows]"

 

objCommentFile.Write VbCrLf

objCommentFile.Write VbCrLf

 

on error resume next

Set colItems = objWMIService.ExecQuery ("SELECT Name, AdapterRAM FROM Win32_VideoController")

i=1

For Each objItem in colItems

    objCommentFile.Write "Видео Windows" & i & "|Свойства видеоадаптера|Объем видеоОЗУ= " & round((((objItem.AdapterRAM) / 1024) / 1024),0) & " Мб."  & VbCrLf

    objCommentFile.Write "Видео Windows" & i & "|Свойства видеоадаптера|Описание устройства= " & ltrim(objItem.Name)  & VbCrLf

i=i+1

Next

 

objCommentFile.Write VbCrLf

objCommentFile.Write VbCrLf

 

objCommentFile.Write "[Монитор]"

 

objCommentFile.Write VbCrLf

objCommentFile.Write VbCrLf

 

on error resume next

Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_DesktopMonitor")

i=1

For Each objItem in colItems

   

objCommentFile.Write "Монитор" & i & "|Свойства монитора|Имя монитора= " & ltrim(objItem.Name)  & VbCrLf

objCommentFile.Write "Монитор" & i & "|Свойства монитора|ID монитора= " & ltrim(objItem.DeviceID)  & VbCrLf

objCommentFile.Write "Монитор" & i & "|Производитель монитора|Фирма= " & ltrim(objItem.MonitorManufacturer)  & VbCrLf

objCommentFile.Write "Монитор" & i & "|Свойства монитора|Тип монитора= " & ltrim(objItem.DisplayType)  & VbCrLf

i=i+1

Next

 

 

objCommentFile.Write VbCrLf

objCommentFile.Write VbCrLf

 

objCommentFile.Write "[ATA]"

 

objCommentFile.Write VbCrLf

objCommentFile.Write VbCrLf

 

on error resume next

Set colDiskDrives = objWMIService.ExecQuery ("SELECT Model, size, Manufacturer FROM Win32_DiskDrive")

 

i=1

For each objDiskDrive in colDiskDrives

 

   objCommentFile.Write "ATA" & i & "|Производитель ATA-устройства|Фирма= " & ltrim(objDiskDrive.Manufacturer)  & VbCrLf

   objCommentFile.Write "ATA" & i & "|Свойства устройства ATA|ID модели= " & ltrim(objDiskDrive.Model)  & VbCrLf

   objCommentFile.Write "ATA" & i & "|Физические данные устройства ATA|Форматированная ёмкость= " & round(((objDiskDrive.Size /1024)/1024)/1024,0)  & " ГБ"  & VbCrLf  

    

    i=i+1

Next

 
Set colDiskDrives = objWMIService.ExecQuery ("SELECT * FROM Win32_PhysicalMedia")
i=1

For each objDiskDrive in colDiskDrives
   objCommentFile.Write "ATA" & i & "|Свойства устройства ATA|Серийный номер= " & ltrim(objDiskDrive.SerialNumber)  & VbCrLf
    i=i+1

Next


objCommentFile.Write VbCrLf
objCommentFile.Write VbCrLf



objCommentFile.Write VbCrLf

objCommentFile.Write VbCrLf

 

objCommentFile.Write "[Оптические накопители]"

 

objCommentFile.Write VbCrLf

objCommentFile.Write VbCrLf

 

on error resume next

Set colItems = objWMIService.ExecQuery("Select * from Win32_CDROMDrive")

i=1

For Each objItem in colItems

 

    objCommentFile.Write "Оптические накопители" & i & "|Свойства оптического накопителя|Производитель= " & ltrim(objItem.Manufacturer)  & VbCrLf

    objCommentFile.Write "Оптические накопители" & i & "|Свойства оптического накопителя|Описание устройства= " & ltrim(objItem.Name)  & VbCrLf

   

    i=i+1

Next

 

 

 

objCommentFile.Write VbCrLf

objCommentFile.Write VbCrLf

 

objCommentFile.Write "[Принтеры]"

 

objCommentFile.Write VbCrLf

objCommentFile.Write VbCrLf

 

on error resume next

Set colInstalledPrinters =  objWMIService.ExecQuery ("SELECT Name FROM Win32_Printer")

i=1

For each objPrinter in colInstalledPrinters

 

if (objPrinter.Name = "Fax") or (objPrinter.Name = "Microsoft XPS Document Writer") or objPrinter.name = "Отправить в OneNote 2010" then
'If (clpSTR Like "*'*") And Not (tagSTR Like "*apos*") Then 

 

else

    objCommentFile.Write "Принтеры" & i & "|Свойства принтера|Имя принтера= " & ltrim(objPrinter.Name)   & VbCrLf

     i=i+1

end if

Next

 

objCommentFile.Write VbCrLf

objCommentFile.Write VbCrLf

 

objCommentFile.Write "[Сеть Windows]"

 

objCommentFile.Write VbCrLf

objCommentFile.Write VbCrLf

'######################################################################################################

 

on error resume next

Set colItems = objWMIService.ExecQuery _
    ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")

On Error Resume Next

 

i=1

For Each objItem in colItems

 

 

For Each arrValue In arrIPAddress

 

If Not IsNull(objItem.IPAddress) Then

      For z = 0 To UBound(objItem.IPAddress)

        objCommentFile.Write  "Сеть Windows" & i & "|Адреса сетевого адаптера|Маска IP / Подсети= " & ltrim(objItem.IPAddress(z))  & VbCrLf

      i=i+1

Next

   End If

 

i=1

objCommentFile.Write  "Сеть Windows" & i & "|Свойства сетевого адаптера|Аппаратный адрес= " & ltrim(objItem.MACAddress)  & VbCrLf

objCommentFile.Write  "Сеть Windows" & i & "|Свойства сетевого адаптера|Сетевой адаптер= " & ltrim(objItem.Description)  & VbCrLf

i=i+1

Next

 

 

 

Next

 

 

 

'#######################################################################################################

 

 

objCommentFile.Write VbCrLf

objCommentFile.Write VbCrLf

 

objCommentFile.Write "[Операционная система]"

 

objCommentFile.Write VbCrLf

objCommentFile.Write VbCrLf

 

on error resume next

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

 

Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")

 

For Each objOperatingSystem in colOperatingSystems

    objCommentFile.Write "Свойства операционной системы|Название ОС= " & ltrim(objOperatingSystem.Caption) & VbCrLf

    objCommentFile.Write "Лицензионная информация|Ключ продукта= " & ltrim(objOperatingSystem.SerialNumber) & VbCrLf

    objCommentFile.Write "Свойства операционной системы|Версия ОС= " & ltrim(objOperatingSystem.Version) & VbCrLf

Next

 

objCommentFile.Write VbCrLf

objCommentFile.Write VbCrLf

 

objCommentFile.Write "[Установленные программы]"

 

objCommentFile.Write VbCrLf

objCommentFile.Write VbCrLf

 

on error resume next   

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colSoftware = objWMIService.ExecQuery("SELECT Name, Vendor FROM Win32_Product")

 

i=1

For Each objSoftware in colSoftware

   objCommentFile.Write "Установленные программы" & i & "= " & ltrim(objSoftware.Name) & VbCrLf

   objCommentFile.Write objSoftware.Name & "|Publisher=" & ltrim(objSoftware.Vendor) & VbCrLf

      i=i+1

Next

 

 

Sub ShowError()

                strMsg = vbCrLf & "Error # " & Err.Number & vbCrLf & _
                         Err.Description & vbCrLf & vbCrLf

                Syntax

End Sub

 

 

objCommentFile.Close



я даже умудрился его запустить и он сработал.На рабочем столе появился заветный ini файл с информацией о компьютере. Но теперь вопрос, как поменять путь сохранения файла? мне надо чтобы он на сервере в отдельной папке сохранял информацию.

Помогите пожалуйста.
...
Рейтинг: 0 / 0
Как поменять путь сохранения файла в VB
    #37798103
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rnikolos,

Вот твой objFSO должен иметь такой метод. Напечатай objFSO. и после точки выпадет список методов и свойств, только ты его сначала продекларируй как Scripting.FileSystemObject. А в методе будет подсказка:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
    Dim oFSO As New FileSystemObject
    Dim oT As TextStream
  
    Set oT = oFSO.CreateTextFile("C:\a.txt")
    oT.WriteLine "1"
    oT.WriteLine "2"
    oT.Close
    
...
Рейтинг: 0 / 0
Как поменять путь сохранения файла в VB
    #37798109
rnikolos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VladConnrnikolos,

Вот твой objFSO должен иметь такой метод. Напечатай objFSO. и после точки выпадет список методов и свойств, только ты его сначала продекларируй как Scripting.FileSystemObject. А в методе будет подсказка:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
    Dim oFSO As New FileSystemObject
    Dim oT As TextStream
  
    Set oT = oFSO.CreateTextFile("C:\a.txt")
    oT.WriteLine "1"
    oT.WriteLine "2"
    oT.Close
    



Уважаемый VladConn, из того что вы написали мне мало что понятно, практически ничего.
Наверное мне нужно было изначально задать вопрос по другому. Код который я дал выше, что мне нужно в него добавить и куда чтобы файл ini сохранялся в нужное мне место. Напоминаю что его писал не я, как и на чем его написали мне неизвестно.

Вообще я представляю себе это так, открываю код в блокноте, вставляю нужные команды в нужном месте, сохраняю и готово! Если я не прав, то извиняюсь за глупые вопросы. А если прав, то ткните носом что и куда нужно вставить в этом коде.
...
Рейтинг: 0 / 0
Как поменять путь сохранения файла в VB
    #37798124
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rnikolos,
в этой строке
Код: vbnet
1.
Set objCommentFile = objFSO.OpenTextFile(strComputer & ".ini",  ForWriting, TRUE)

вместо
Код: vbnet
1.
strComputer & ".ini"

пишете
Код: vbnet
1.
"\\имя_сервера\имя_общей_папки_на_сервере\" & strComputer & ".ini"

Если у пользователя, от имени которого запускается скрипт есть права на запись в эту папку, то должно получиться.

ЗЫ: WMI позволяет получать информацию и об удалённых системах.
...
Рейтинг: 0 / 0
Как поменять путь сохранения файла в VB
    #37798141
rnikolos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,

О чудо, заработало! Только с правами администратора.
А можно ли как нибудь сказать сему чудо скрипту, чтобы он запускался с правами администратора?

Именно в скрипте прописать, права администратора.
...
Рейтинг: 0 / 0
Как поменять путь сохранения файла в VB
    #37799287
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> rnikolos
> А можно ли как нибудь сказать сему чудо скрипту, чтобы он запускался с правами администратора?
> Именно в скрипте прописать, права администратора.

Не готов ответить на этот эти вопросы.


1) проверьте, будет ли работать ВАШ ИСХОДНЫЙ скрипт с правами ПРОЛЬЗОВАТЕЛЯ
2) если исходный скрипт работает без админских прав,
то надо дать права пользователям на "папку на сервере" ( и не забыть их отобрать после отработки скрипта )

ЗЫ ещё раз: WMI позволяет получать информацию и об удалённых системах.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как поменять путь сохранения файла в VB
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]