您好,CL。我们有几条好消息和几条坏消息给您。 坏消息是我们正在处理其中一件喜忧掺半的事情,没有人会喜欢这样的事情。 好消息是您实际上可以在运行 Windows 2000 的计算机上修改磁盘配额条目。 您不能远程执行此操作: 此脚本必须运行在磁盘配额条目所在的计算机上。 不过,至少它会执行您要求它执行的操作。
例如,下面的这个脚本可更改配额阈值(将发出一条磁盘空间不足的警告的临界点)和实际磁盘配额限制。 此脚本为用户 kenmyer 更改了计算机的驱动器 C 上的配额条目;在 Windows 2000 下,您必须基于用户和磁盘来管理配额条目。 (换句话说,可针对所有用户获取所有磁盘上的所有磁盘配额条目的查询是不存在的。)
脚本如下:
Set colDiskQuotas = CreateObject("Microsoft.DiskQuota.1")
colDiskQuotas.Initialize "C:/", True
Set objUser = colDiskQuotas.FindUser("kenmyer")
objUser.QuotaThreshold = 90000000
objUser.QuotaLimit = 100000000
此脚本开头创建了一个 Microsoft.DiskQuota.1 对象的实例。 此对象实际上是所谓的“用于脚本编写的 Shell 对象”的一部分,正因如此,必须本地运行此脚本: 不能在远程计算机上创建 Shell 对象。为什么会是这样? 这就像询问为什么草是绿色的或者为什么天是蓝色的一样: 没人知道答案。
好了,或许他们确实知道为什么草是绿色的而天是蓝色的。 不过,请勿尝试在远程计算机上创建 Microsoft.DiskQuota.1 对象;那样做是徒劳的。
然后,我们调用 Initialize 方法绑定到驱动器 C 的磁盘配额信息。正如您所看到的,Initialize 方法有两个参数: 我们要连接到的驱动器 (C:) 与另一个参数,后者可指示我们是希望通过读写访问权限打开该驱动器还是通过只读访问权限打开该驱动器。 为了修改配额条目,我们需要读写访问权限,因此我们将第二个参数设置为 True。
连接到磁盘后,我们需要绑定到 kenmyer 的磁盘配额条目;这就是我们在此所要执行的操作:
Set objUser = colDiskQuotas.FindUser("kenmyer")
然后,我们只需为 QuotaThreshold 和 QuotaLimit 属性指定新值(以字节为单位)即可。 我们甚至不必调用任何类型的 Save 方法。
如果仍有疑问,那是因为在 Windows 2000 下您实际上可就磁盘配额执行很多操作;有这样一个限制,就是您所执行的所有操作必须在本地计算机上进行。 有关详细信息,可查看 Microsoft Windows 2000 Scripting Guide(英文)中的此部分。