|
Сободное место на удаленном компьютере | ☑ | ||
---|---|---|---|---|
0
1Сергей
13.09.19
✎
15:22
|
Приветствую всех и с праздником!
Подскажите кто какие знает варианты получить информацию о дисках на удалённом компьютере. Есть у меня один вариант, но он работает если на удалённом компьютере установлен MS SQL: &НаСервере Процедура КомандаОбновитьДискиНаСервере() Объект.Диски.Очистить(); Для Каждого СтрокаДисков Из РаботаССУБД.ЗапросSQL(Объект.Адрес, "master", Объект.SQL_Login, Объект.SQL_Password, "SET NOCOUNT ON |declare @srvinfo table(output nvarchar(255)) | |insert into @srvinfo ([output]) exec master..xp_cmdshell 'wmic logicaldisk get size,freespace,caption' | |select substring([output], 1,1) AS disk, | cast(substring([output], 10, 14) as money) as free_space, | cast(substring([output], 24, 14) as money) as size |from @srvinfo |where substring([output], 2,1)=':' | and cast(substring([output], 10, 14) as money)>0 |") Цикл НоваяСтрока = Объект.Диски.Добавить(); НоваяСтрока.Имя = СтрокаДисков.disk; НоваяСтрока.Размер = СтрокаДисков.size; НоваяСтрока.СвободноеМесто = СтрокаДисков.free_space; КонецЦикла; КонецПроцедуры Какие ещё варианты? |
|||
1
Веселый собака
13.09.19
✎
15:24
|
Накопировать туда файлов известного размера до ошибки записи..
|
|||
2
Beduin
13.09.19
✎
15:26
|
(1) Не, не так. Удалять по килобайту, и когда инфа кончится, то до килобайта можно размер понять.
|
|||
3
Chum
13.09.19
✎
15:33
|
||||
4
sqr4
13.09.19
✎
15:35
|
Вот они, серийные программисты)
|
|||
5
dka80
13.09.19
✎
15:43
|
FSO = Новый COMОбъект("Scripting.FileSystemObject");
Drive = FSO.GetDrive("C"); СвободноеМесто = Drive.AvailableSpace; |
|||
6
dka80
13.09.19
✎
15:45
|
НужнаяСтрока = "";
КомандаСистемы("dir \\serv\Archive > " + КаталогВременныхФайлов() + "freespace.txt"); Текстфайла = Новый ЧтениеТекста(КаталогВременныхФайлов() + "freespace.txt",КодировкаТекста.OEM); СтрФайла = ТекстФайла.ПрочитатьСтроку(); Пока СтрФайла <> Неопределено Цикл Если СтрНайти(СтрФайла, "свободно") > 0 Тогда НужнаяСтрока = СтрФайла; ОтсечениеСлево = СтрНайти(НужнаяСтрока,"папок") + 6; НужнаяСтрока = СтрЗаменить(НужнаяСтрока,"байт свободно",""); НужнаяСтрока = СокрЛП(Сред(НужнаяСтрока,ОтсечениеСлево)); КонецЕсли; СтрФайла = ТекстФайла.ПрочитатьСтроку(); КонецЦикла; СвободноМб = Число(НужнаяСтрока)/1024/1024; Сообщить("Свободно " + СвободноМб + " Мб"); |
|||
7
dka80
13.09.19
✎
15:46
|
||||
8
1Сергей
13.09.19
✎
15:51
|
(5) (6) список дисков как узнать?
|
|||
9
trooba
13.09.19
✎
15:54
|
||||
10
dka80
13.09.19
✎
15:55
|
||||
11
Карст
13.09.19
✎
15:58
|
ланскопом ))))
|
|||
12
1Сергей
13.09.19
✎
16:01
|
(9) и где там про удалённую машину?
|
|||
13
Сияющий в темноте
13.09.19
✎
16:01
|
Свободное место на сервере,где сервер 1с запущен?
или просто компьютер? если есть к нему доступ,то сунуть нос в Wmi и запросить данные. |
|||
14
1Сергей
13.09.19
✎
16:04
|
(13) просто удаленный компьютер. доступы к нему есть
|
|||
15
1Сергей
13.09.19
✎
16:04
|
чёт сколько ни читаю про WMI, про удаленный так и не нашёл
|
|||
16
1Сергей
13.09.19
✎
16:12
|
Пока вот такой способ самый простой мне показался:
get-WmiObject win32_logicaldisk -computername SERV01 |
|||
17
1Сергей
13.09.19
✎
17:42
|
Как-то так получилось
objSWbemLocator = Новый COMОбъект("WbemScripting.SWbemLocator"); Если ВРЕГ(Объект.Адрес)=ВРЕГ(ИмяКомпьютера()) Тогда objSWbemServices = objSWbemLocator.ConnectServer(Объект.Адрес, "root\cimv2"); Иначе objSWbemServices = objSWbemLocator.ConnectServer(Объект.Адрес, "root\cimv2", "User", "Pass"); КонецЕсли; colSWbemObjectSet = objSWbemServices.InstancesOf("win32_logicaldisk"); Для Каждого objSWbemObject Из colSWbemObjectSet Цикл НоваяСтрока = Объект.Диски.Добавить(); НоваяСтрока.Имя = objSWbemObject.Name; НоваяСтрока.Размер = objSWbemObject.Size; НоваяСтрока.СвободноеМесто = objSWbemObject.FreeSpace; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |