Имя: Пароль:
1C
 
Как получить IP адрес в 1С компьютера?
Ø
0 РДС
 
19.10.06
13:56
Или нужно использовать внешние модули?
1 VZ
 
19.10.06
13:58
Какой интересует?
2 asady
 
19.10.06
14:02
ipconfig >out.txt
командаСистемы
анализ файла out.txt
3 Alias
 
19.10.06
14:09
А через WScript.Network и ComputerName нельзя?
4 Lexusss
 
19.10.06
14:11
ВвестиСтроку(Адрес,"Какой у ВАс адрес?",100);
5 Alias
 
19.10.06
14:12
Да, действительно можно.
Вот ссылка.
http://1c.realnet.ru/kuban/169210.html (с) DeiMos
6 Alias
 
19.10.06
14:15
Или в .Network нет методов получения айпишника? Было бы странно. Честно говоря, не знаю всех возможностей. Поищу...
7 user1C
 
19.10.06
14:19
(6)
в нетворк нет
8 Alias
 
19.10.06
14:43
Да, действительно нет...
поискал, всё какая-то ерунда.
через (2) проще. :)
9 Мутабор
 
19.10.06
14:44
WMI юзай.
10 andrewalexk
 
20.10.06
10:18
(9)
:)
кстати насчет wmi
не могу понять можно ли считать все папки компьютера в сети?
11 Fynjy
 
20.10.06
10:59
Можно
12 andrewalexk
 
20.10.06
11:02
(11)
:)
примерчик бы
из книжки михайлова не понял как..
13 2Green
 
20.10.06
11:04
 а чем имя компа хуже?
14 Fynjy
 
20.10.06
11:12
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colShares = objWMIService.ExecQuery("Select * from Win32_Share")
For each objShare in colShares
    Wscript.Echo "AllowMaximum: " & vbTab & objShare.AllowMaximum
    Wscript.Echo "Caption: " & vbTab & objShare.Caption
    Wscript.Echo "MaximumAllowed: " & vbTab & objShare.MaximumAllowed
    Wscript.Echo "Name: " & vbTab & objShare.Name
    Wscript.Echo "Path: " & vbTab & objShare.Path
    Wscript.Echo "Type: " & vbTab & objShare.Type
Next
15 andrewalexk
 
20.10.06
11:17
(14)
:)
класс!
а strcomputer это \.\ или имя типа \\***?
спс
16 andrewalexk
 
20.10.06
11:34
(14)
:)
пытаюсь привести выполнение к стандартному варианту:
strComputer = ".";
  ScrptCtrl=СоздатьОбъект("MSScriptControl.ScriptControl");
  ScrptCtrl.Language="vbscript";
  ScrptCtrl.AddCode("
  |Function GetFolders()
  | strInfo=vbNullString
  | Set objWMIService = GetObject(""winmgmts: {impersonationLevel=impersonate}!\\"+strComputer+"\root\cimv2"")
  | Set colShares = objWMIService.ExecQuery(""Select * from Win32_Share"")
  | For each objShare in colShares
  | strInfo = strInfo & objShare.Name & vbCrLf
  | Next
  | GetFolders = strInfo
  |End Function
  |");
  Текст=ScrptCtrl.Run("GetFolders");
..
не работает..
17 andrewalexk
 
20.10.06
11:56
(14)
:)
урря
спс
заработало
18 smaharbA
 
20.10.06
11:56
(16) может это и "стандартный" вариант, но уж больно некрасивый...
19 smaharbA
 
20.10.06
14:53
(16) а воопчето можно прям в 1С получать эти коллекции и их свойства
без этого строчного вида, причем незная заранее какие есть названия свойств, типа Name,Caption,Path и т.д.
20 andrey995
 
21.10.06
22:11
ламерский вопрос - а почему не остановиться на варианте (2) ipconfig >out.txt ?
21 Мутабор
 
22.10.06
07:25
(20) Нет гарантии что есть диск C:, да и вообще зачем делать лишние файлы если есть другие варианты. Кроме того сетевуха может быть не одна, парсить дольше.
22 andrewalexk
 
23.10.06
10:12
(19)
:))
ну я конечно далек до уровня гуру...
но чем же он не красив?!
хочу управление сетью в сис.конфу влить
и подбираю функционал
а код запроса похожий..
все выносится в системную функцию в функцию 1с
и вся информация по шаблону:
ИначеЕсли Номер=3 Тогда
                WMIАнализ("диски",,"Win32_LogicalDisk"," objItem.Name & vbTab & objItem.Description & vbTab & objItem.FileSystem & vbTab & objItem.FreeSpace & vbTab & objItem.VolumeName ");
    WMIАнализ("процессор",,"win32_Processor",);
    WMIАнализ("материнская плата",,"win32_BaseBoard",);
    WMIАнализ("память",,"win32_physicalMemory",);
    WMIАнализ("звуковая карта",,"win32_SoundDevice",);
    WMIАнализ("сетевая карта",,"win32_NetworkAdapter",);
    WMIАнализ("дисковод",,"win32_CDROMDrive",);
    WMIАнализ("флопповод",,"win32_FloppyDrive",);
    WMIАнализ("монитор",,"win32_DesktopMonitor",);
    WMIАнализ("видео плата",,"win32_videocontroller",);
    WMIАнализ("принтер",,"win32_printer",);
    WMIАнализ("клавиатура",,"win32_Keyboard",);
    WMIАнализ("манипулятор",,"win32_PointingDevice",);
    WMIАнализ("биос",,"Win32_BIOS",);
ИначеЕсли Номер=4 Тогда
    WMIАнализ("ОС",,"Win32_OperatingSystem"," objItem.Name & vbTab & objItem.Caption & vbTab & objItem.WindowsDirectory & vbTab & objItem.Version ");
    WMIАнализ("программы",,"Win32_Product"," objItem.Name & vbTab & objItem.Vendor & vbTab & objItem.Version ");
  ИначеЕсли Номер=5 Тогда
    WMIАнализ("процессы",,"Win32_Service"," objItem.Name & vbTab & objItem.DisplayName & vbTab & objItem.PathName & vbTab & objItem.Processid & vbTab & objItem.started & vbTab & objItem.State ");
    WMIАнализ("автозагрузка",,"Win32_StartupCommand"," objItem.Name & vbTab & objItem.Command & vbTab & objItem.Description & vbTab & objItem.Location & vbTab & objItem.User ");
  ИначеЕсли Номер=6 Тогда
    wshNetwork = СоздатьОбъект( "WScript.Network");
    wshShell = СоздатьОбъект("WScript.Shell");
    Пока wshNetwork.username = "" Цикл КонецЦикла;
    User = wshNetwork.UserName;
    Domain = wshNetwork.UserDomain;
    Computer = wshNetwork.ComputerName;
    Сообщить("Компьютер: " + Computer);
    Сообщить("Домен: " + Domain);
    Сообщить("Пользователь: " + User);
  ИначеЕсли Номер=7 Тогда
    WMIАнализ("учетные записи сети",,"win32_Account",);
  ИначеЕсли Номер=8 Тогда
    WMIАнализ("анализ папок сетевого компьютера ",ВыбКомп,"Win32_Share"," objItem.Name & vbTab & objItem.AllowMaximum & vbTab & objItem.Caption & vbTab & objItem.MaximumAllowed & vbTab & objItem.Path & vbTab & objItem.Type ");
..
23 andrewalexk
 
23.10.06
10:14
(19)
:)
ну я не знаю все классы win32, их объекты и свойства..для 8.0 есть методика получения в Михайлове..а для 7.7 нет..
24 smaharbA
 
23.10.06
10:15
а и ненада знать...
...
//*******************************************
Функция Win32_X(Путь="Win32_process",Фильтр="name='1CV7S.EXE'",Компьютер=".")
  Если ПустоеЗначение(Фильтр)=1 Тогда
    Ф="";
  Иначе
    Ф= "Where "+Фильтр;
  КонецЕсли;
  Сп=СоздатьОбъект("СписокЗначений");
  Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl");
  Скрипт.Language="javascript";
  Локатор=СоздатьОбъект("wbemscripting.swbemlocator");
  Сервис=Локатор.ConnectServer(Компьютер,"root\cimv2");
  Коллекция=Сервис.ExecQuery("Select * from "+Путь+" "+Ф);
  Если Коллекция.count=0 Тогда
    Сп.ДобавитьЗначение("Ненайдены экземпляры","Select * from "+Путь+" "+Ф);
    Возврат Сп;
  КонецЕсли;
  Скрипт.AddObject("Коллекция",Коллекция);
  Перечисленные=Скрипт.Eval("new Enumerator(Коллекция)");
  Свойства=Перечисленные.item(0).Properties_;
  Скрипт.AddObject("Свойства",Свойства);
  Пока Перечисленные.atEnd(0)=0 Цикл
    ПеречисленныеСвойства=Скрипт.Eval("new Enumerator(Свойства)");
    Пока ПеречисленныеСвойства.atEnd(0)=0 Цикл
      Стр=ПеречисленныеСвойства.item(0).name;
      Сп.ДобавитьЗначение(Перечисленные.item(0).Properties_.Item(Стр).Value,Стр);
      ПеречисленныеСвойства.moveNext(0);
    КонецЦикла;
    Перечисленные.moveNext(0);
  КонецЦикла;
  Возврат Сп;
КонецФункции
Процедура Сформировать()
  Перем Стр;
  Сп=Win32_X("Win32_Share","");
  ТекстВывода="";
  Для к=1 По Сп.РазмерСписка() Цикл
    Сп.ПолучитьЗначение(к,Стр);
    ТекстВывода=ТекстВывода+Стр+": "+Сп.ПолучитьЗначение(к)+РазделительСтрок;
  КонецЦикла;
  Предупреждение(ТекстВывода);
КонецПроцедуры // Сформировать
25 andrewalexk
 
23.10.06
10:38
(24)
:)
мучо грасиас...