<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; WSH: как получить размер кластера?]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=7279</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7279&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «WSH: как получить размер кластера?».]]></description>
		<lastBuildDate>Wed, 20 Jun 2012 23:46:16 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: WSH: как получить размер кластера?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=61060#p61060</link>
			<description><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>выполняете под пользователем с административными полномочиями?</p></blockquote></div><p>Дома - да, на работе - под бесправным пользователем. Результат одинаковый.</p><div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Выполняете мой vbs-скрипт, или на JScript?</p></blockquote></div><p>И то, и другое. Сначала - Ваш скрипт, потом играюсь с js вариациями.</p><div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>есть ли у класса «Win32_Volume» метод «.DefragAnalysis()».</p></blockquote></div><p>Есть. (Не может не есть <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> )</p><p>Вероятно, как я уже говорил, проблема в доступности объектов именно из скриптов. Не сомневаюсь, что из полноценной программы будет работать всё, или почти всё (ну, может, UAC о чём-нибудь спросит).</p><p>Поиграл с WMICodeCreator - всё то же. Метод есть, возвращает &quot;ложь&quot;.</p>]]></description>
			<author><![CDATA[null@example.com (Serge Yolkin)]]></author>
			<pubDate>Wed, 20 Jun 2012 23:46:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=61060#p61060</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: как получить размер кластера?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=60967#p60967</link>
			<description><![CDATA[<p><strong>Serge Yolkin</strong>, выполняете под пользователем с административными полномочиями? Выполняете мой vbs-скрипт, или на JScript?</p><p>Загрузите <a href="http://www.microsoft.com/en-us/download/details.aspx?id=24045">Download: WMI Administrative Tools - Microsoft Download Center - Download Details</a> и посмотрите, есть ли у класса «Win32_Volume» метод «.DefragAnalysis()». Должен быть.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Mon, 18 Jun 2012 12:48:30 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=60967#p60967</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: как получить размер кластера?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=60965#p60965</link>
			<description><![CDATA[<p>У меня под семёркой условие If .DefragAnalysis(... никогда не выполняется (в смысле - ни для какого диска). Методом комментирования лишнего пришел к выводу: нет у меня .DefragAnalysis : если убираю If - «Ошибка выполнения Microsoft VBScript: Требуется объект: &#039;&#039;». Собственно, примерно то же я получил и в самом начале по Вашей подсказке (только на js), поэтому полез искать альтернативу. Интересно, универсального способа нет?</p>]]></description>
			<author><![CDATA[null@example.com (Serge Yolkin)]]></author>
			<pubDate>Mon, 18 Jun 2012 10:40:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=60965#p60965</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: как получить размер кластера?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=60961#p60961</link>
			<description><![CDATA[<p>Ну, вот, смотрите:<br /></p><div class="codebox"><pre><code>Option Explicit

Dim strComputer

Dim objSWbemLocator
Dim objSWbemServicesEx
Dim objSWbemObjectEx_Win32_Volume
Dim objSWbemObjectEx_Win32_DefragAnalysis

Dim boolDefragRecommended


strComputer = &quot;.&quot;

Set objSWbemLocator    = WScript.CreateObject(&quot;WbemScripting.SWbemLocator&quot;)
Set objSWbemServicesEx = objSWbemLocator.ConnectServer(strComputer, &quot;root\cimv2&quot;)

For Each objSWbemObjectEx_Win32_Volume In objSWbemServicesEx.InstancesOf(&quot;Win32_Volume&quot;)
    With objSWbemObjectEx_Win32_Volume
        WScript.Echo &quot;-----------------------------------&quot;
        WScript.Echo &quot;Drive:&quot;, .DriveLetter, &quot;(&quot; &amp; .Label &amp; &quot;) [&quot; &amp; .DeviceID &amp; &quot;]&quot;
        WScript.Echo &quot;-----------------------------------&quot;
        WScript.Echo &quot;Serial number:               &quot;, Left(Hex(.SerialNumber), 4) &amp; &quot;-&quot; &amp; Right(Hex(.SerialNumber), 4)
        WScript.Echo &quot;Volume automount/boot/system:&quot;, Array(&quot;Yes&quot;, &quot;No&quot;)(Abs(Not .Automount)) &amp; &quot;/&quot; &amp; Array(&quot;Yes&quot;, &quot;No&quot;)(Abs(Not .BootVolume)) &amp; &quot;/&quot; &amp; Array(&quot;Yes&quot;, &quot;No&quot;)(Abs(Not .SystemVolume))
        WScript.Echo &quot;Size total/free (% usage):   &quot;, FormatNumber(.Capacity / (2 ^ 30), 1) &amp; &quot; Gb/&quot; &amp; FormatNumber(.FreeSpace / (2 ^ 30), 1) &amp; &quot; Gb (&quot; &amp; FormatPercent((.Capacity - .FreeSpace) / .Capacity, 1) &amp; &quot;)&quot;
        WScript.Echo &quot;Drive type (File system):    &quot;, Array(&quot;Unknown&quot;, &quot;No Root Directory&quot;, &quot;Removable Disk&quot;, &quot;Local Disk&quot;, &quot;Network Drive&quot;, &quot;Compact Disk&quot;, &quot;RAM Disk&quot;)(.DriveType) &amp; &quot; (&quot; &amp; .FileSystem &amp; &quot;)&quot;
        
        If .DefragAnalysis(boolDefragRecommended, objSWbemObjectEx_Win32_DefragAnalysis) = 0 Then
            WScript.Echo &quot;Block size/Cluster size:     &quot;, .BlockSize &amp; &quot; b/&quot; &amp; objSWbemObjectEx_Win32_DefragAnalysis.ClusterSize &amp; &quot; b&quot;
        End If
        
        Set objSWbemObjectEx_Win32_DefragAnalysis = Nothing
        
        WScript.Echo &quot;-----------------------------------&quot;
        WScript.Echo
    End With
Next

Set objSWbemServicesEx = Nothing
Set objSWbemLocator    = Nothing

WScript.Quit 0</code></pre></div><p>В моём случае свойство «.BlockSize» класса «Win32_Volume» всегда оказывалось равным свойству «.ClusterSize» класса «Win32_DefragAnalysis». Всегда ли бывает так — не скажу, не знаю. Смотрите сами.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Mon, 18 Jun 2012 07:17:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=60961#p60961</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: как получить размер кластера?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=60957#p60957</link>
			<description><![CDATA[<p>«<a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa394515(v=vs.85).aspx">Windows XP and earlier:&nbsp; This class is not available.</a>» <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (Serge Yolkin)]]></author>
			<pubDate>Sun, 17 Jun 2012 20:37:33 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=60957#p60957</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: как получить размер кластера?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=60956#p60956</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>alexii, добавил в скрипт (пост #11) и в результат (пост #12). Класс Win32_Volume, что логично. Жаль, если в XP его нет (к сожалению, не на чем проверить).</p></blockquote></div><p>Нетути в XP этого класса <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" />, нету. Потому у меня и пусто. В итоге, мы возвращаемся к посту №2. Попробую посмотреть завтра напрямую на класс «Win32_Volume».</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Sun, 17 Jun 2012 18:53:44 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=60956#p60956</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: как получить размер кластера?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=60954#p60954</link>
			<description><![CDATA[<p><strong>alexii</strong>, добавил в скрипт (пост #11) и в результат (пост #12). Класс Win32_Volume, что логично. Жаль, если в XP его нет (к сожалению, не на чем проверить). Почему в соответствующем свойстве - null - вопрос, вероятно, к WSH.</p>]]></description>
			<author><![CDATA[null@example.com (Serge Yolkin)]]></author>
			<pubDate>Sun, 17 Jun 2012 18:16:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=60954#p60954</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: как получить размер кластера?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=60953#p60953</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p><strong>alexii</strong>, при всём уважении, если Вы настаиваете на правльности использования Win32_LogicalDisk - дайте рабочий пример.</p></blockquote></div><p>Я имею в виду то, что следует использовать не общий класс «CIM_StorageExtent», а частный. По поводу «Win32_LogicalDisk» — меня ввёл в заблуждение пост <a href="http://forum.script-coding.com/viewtopic.php?pid=60926#p60926">#5</a>. Теперь ясно, что это не «Win32_LogicalDisk», а некий иной класс.</p><p>У меня:<br /></p><div class="codebox"><pre><code>DeviceID;Name;BlockSize;CreationClassName;SystemCreationClassName
Memory Device 0;Устройство памяти;null;Win32_MemoryDevice;Win32_ComputerSystem
Memory Device 1;Устройство памяти;null;Win32_MemoryDevice;Win32_ComputerSystem
Memory Device 2;Устройство памяти;null;Win32_MemoryDevice;Win32_ComputerSystem
Memory Device 3;Устройство памяти;null;Win32_MemoryDevice;Win32_ComputerSystem
Memory Array 0;Массив памяти;null;Win32_MemoryArray;Win32_ComputerSystem
Cache Memory 0;Кэш-память;1024;Win32_CacheMemory;Win32_ComputerSystem
Cache Memory 1;Кэш-память;1024;Win32_CacheMemory;Win32_ComputerSystem
Cache Memory 2;Кэш-память;1024;Win32_CacheMemory;Win32_ComputerSystem
Disk #1, Partition #0;Диск #1, раздел #0;512;Win32_DiskPartition;Win32_ComputerSystem
Disk #0, Partition #0;Диск #0, раздел #0;512;Win32_DiskPartition;Win32_ComputerSystem
Disk #0, Partition #1;Диск #0, раздел #1;512;Win32_DiskPartition;Win32_ComputerSystem
Disk #0, Partition #2;Диск #0, раздел #2;512;Win32_DiskPartition;Win32_ComputerSystem
Disk #2, Partition #0;Диск #2, раздел #0;512;Win32_DiskPartition;Win32_ComputerSystem
A:;A:;null;Win32_LogicalDisk;Win32_ComputerSystem
C:;C:;null;Win32_LogicalDisk;Win32_ComputerSystem
D:;D:;null;Win32_LogicalDisk;Win32_ComputerSystem
E:;E:;null;Win32_LogicalDisk;Win32_ComputerSystem
F:;F:;null;Win32_LogicalDisk;Win32_ComputerSystem
G:;G:;null;Win32_LogicalDisk;Win32_ComputerSystem
H:;H:;null;Win32_LogicalDisk;Win32_ComputerSystem
I:;I:;null;Win32_LogicalDisk;Win32_ComputerSystem
J:;J:;null;Win32_LogicalDisk;Win32_ComputerSystem
K:;K:;null;Win32_LogicalDisk;Win32_ComputerSystem
L:;L:;null;Win32_LogicalDisk;Win32_ComputerSystem</code></pre></div><p>Как Вы видите, у меня в принципе отсутствует «\\?\Volume{…}\» (очевидно из-за ОС).</p><p>Добавьте «n.item().Path_» в сбор информации: хочу всё-таки поглядеть, что же это за класс у Вас.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Sun, 17 Jun 2012 17:40:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=60953#p60953</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: как получить размер кластера?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=60952#p60952</link>
			<description><![CDATA[<p>Вот что уменя:</p><div class="codebox"><pre><code>DeviceID;Name;BlockSize;CreationClassName;SystemCreationClassName;Path_
Disk #0, Partition #0;Disk #0, Partition #0;512;Win32_DiskPartition;Win32_ComputerSystem;\\NOTE\root\cimv2:Win32_DiskPartition.DeviceID=&quot;Disk #0, Partition #0&quot;
Disk #1, Partition #0;Disk #1, Partition #0;512;Win32_DiskPartition;Win32_ComputerSystem;\\NOTE\root\cimv2:Win32_DiskPartition.DeviceID=&quot;Disk #1, Partition #0&quot;
C:;C:;null;Win32_LogicalDisk;Win32_ComputerSystem;\\NOTE\root\cimv2:Win32_LogicalDisk.DeviceID=&quot;C:&quot;
D:;D:;null;Win32_LogicalDisk;Win32_ComputerSystem;\\NOTE\root\cimv2:Win32_LogicalDisk.DeviceID=&quot;D:&quot;
E:;E:;null;Win32_LogicalDisk;Win32_ComputerSystem;\\NOTE\root\cimv2:Win32_LogicalDisk.DeviceID=&quot;E:&quot;
Memory Array 0;Memory Array;null;Win32_MemoryArray;Win32_ComputerSystem;\\NOTE\root\cimv2:Win32_MemoryArray.DeviceID=&quot;Memory Array 0&quot;
\\?\Volume{232a2744-0602-11e0-ade5-806e6f6e6963}\;C:\;4096;null;null;\\NOTE\root\cimv2:Win32_Volume.DeviceID=&quot;\\\\?\\Volume{232a2744-0602-11e0-ade5-806e6f6e6963}\\&quot;
\\?\Volume{2f7f3a4a-9b5a-11e0-ad2a-001d60b89b0a}\;E:\;8192;null;null;\\NOTE\root\cimv2:Win32_Volume.DeviceID=&quot;\\\\?\\Volume{2f7f3a4a-9b5a-11e0-ad2a-001d60b89b0a}\\&quot;
\\?\Volume{232a2747-0602-11e0-ade5-806e6f6e6963}\;D:\;null;null;null;\\NOTE\root\cimv2:Win32_Volume.DeviceID=&quot;\\\\?\\Volume{232a2747-0602-11e0-ade5-806e6f6e6963}\\&quot;
Cache Memory 0;Cache Memory;1024;Win32_CacheMemory;Win32_ComputerSystem;\\NOTE\root\cimv2:Win32_CacheMemory.DeviceID=&quot;Cache Memory 0&quot;
Cache Memory 1;Cache Memory;1024;Win32_CacheMemory;Win32_ComputerSystem;\\NOTE\root\cimv2:Win32_CacheMemory.DeviceID=&quot;Cache Memory 1&quot;</code></pre></div><p>(Открывается в Excell)</p>]]></description>
			<author><![CDATA[null@example.com (Serge Yolkin)]]></author>
			<pubDate>Sun, 17 Jun 2012 15:47:58 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=60952#p60952</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: как получить размер кластера?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=60951#p60951</link>
			<description><![CDATA[<p><strong>alexii</strong>, при всём уважении, если Вы настаиваете на правльности использования Win32_LogicalDisk - дайте рабочий пример.</p><div class="quotebox"><cite>smaharbA пишет:</cite><blockquote><p>вобщето клайстер это свойство волюмы</p></blockquote></div><p>полностью с Вами согласен.</p><p><strong>2All</strong>: Господа (кому не в лом), не могли бы Вы представить здесь результат выполнения следующего скрипта (файлик test.csv создаётся в той же папке, что и скрипт):</p><div class="codebox"><pre><code>var
 f=new ActiveXObject(&#039;Scripting.fileSystemObject&#039;),
 m=&#039;DeviceID;Name;BlockSize;CreationClassName;SystemCreationClassName;Path_&#039;,
 n=new Enumerator(GetObject(&#039;winmgmts:&#039;).instancesOf(&#039;CIM_StorageExtent&#039;));

for(var n;!n.atEnd();n.moveNext()){
  m+=&#039;\n&#039;+n.item().deviceID+&#039;;&#039;+n.item().name+&#039;;&#039;+n.item().blockSize+&#039;;&#039;+
   n.item().creationClassName+&#039;;&#039;+n.item().systemCreationClassName+&#039;;&#039;+
   n.item().path_;
   
}
with(f.openTextFile(&#039;test.csv&#039;,2,true)){
  write(m);
  close();
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Serge Yolkin)]]></author>
			<pubDate>Sun, 17 Jun 2012 15:41:51 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=60951#p60951</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: как получить размер кластера?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=60933#p60933</link>
			<description><![CDATA[<p>понял</p>]]></description>
			<author><![CDATA[null@example.com (smaharbA)]]></author>
			<pubDate>Fri, 15 Jun 2012 20:32:32 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=60933#p60933</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: как получить размер кластера?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=60932#p60932</link>
			<description><![CDATA[<p><strong>smaharbA</strong>, обратите внимание на пост <a href="http://forum.script-coding.com/viewtopic.php?pid=60916#p60916">#2</a>.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Fri, 15 Jun 2012 19:59:35 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=60932#p60932</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: как получить размер кластера?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=60931#p60931</link>
			<description><![CDATA[<p>вобщето клайстер это свойство волюмы, а не логического диска и тем более прочих драйвов и разделов</p>]]></description>
			<author><![CDATA[null@example.com (smaharbA)]]></author>
			<pubDate>Fri, 15 Jun 2012 19:30:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=60931#p60931</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: как получить размер кластера?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=60930#p60930</link>
			<description><![CDATA[<p>Смысл в том, что ровно с тем же успехом можно (и на самом деле — нужно) использовать класс «Win32_LogicalDisk», производный от «CIM_StorageExtent».</p><p>Но у меня и в том, и в другом случае свойство «.BlockSize» — пустое. А для класса «Win32_DiskPartition» оно означает ровно то, что и должно означать — число байт в секторе, 512, а не размер кластера. Вот примерное объяснение тому: <a href="https://groups.google.com/group/microsoft.public.wbem/tree/browse_frm/month/2000-07/70df40bec97a7a10?rnum=11&amp;_done=/group/microsoft.public.wbem/browse_frm/month/2000-07?fwc%3D1%26&amp;hl=zh">Why no CIM/base class data?</a>.</p><p>А что у Вас?</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Fri, 15 Jun 2012 19:13:29 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=60930#p60930</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: как получить размер кластера?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=60927#p60927</link>
			<description><![CDATA[<p>Кстати, а если убрать условие if, остальное у Вас работает?<br />В этом случае, наверное, правильным условием будет</p><div class="codebox"><pre><code>if(/^\\\\\?\\Volume/.test(n.item().deviceID)){...</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Serge Yolkin)]]></author>
			<pubDate>Fri, 15 Jun 2012 16:38:15 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=60927#p60927</guid>
		</item>
	</channel>
</rss>
