Upload
vuongtu
View
215
Download
2
Embed Size (px)
Citation preview
Gerenciando cotas de disco no Windows Server 2003
Uma visão geral dos novos recursos encontrados no Windows Server 2003 e no Windows XP, que permitem a gravação dos scripts responsáveis pelo gerconfiguração das cotas de disco em toda a empresa. Um breve histórico sobre as cotas de discoSempre que você ouve um ditado popular, reconhece facilmente a mensagem de suas palavras. Quem não escuta cuidado, escuta coitado? Faz sentidotem? Espere um pouco enquanto consultamos o orçamento da Equipe de Scripts… Certo, não podemos contestar isso. Deus ajuda a quem cedo madruga? Bem, neste teremos que ter fé. Mas ainda assim ele é bastante razoável.Observe este: Cuidado com o que deseja, pois pode conseguir. O quê? Esse não faz o menor sentido. Por que você desejaria algo que não o deixasse feliz? Ah, certo: parece que até mesmo os autores de ditados populares têm um dia de folga. (O que levaria um longo tempo para explicar o ditado “Não se pode ter tudo o que deseja”.)Entretanto, os administradores do sistema que já atuavam no mercado antes do lançamento do Windows 2000 compreendem bem o significado do ditado popular “Cuidado com o que deseja”. Na época do Windows NT,desejos de qualquer administrador do sistema eram as cotas de disco, às quais o Windows NT não oferecia suporte. E advinha o que aconteceu no lançamento do Windows 2000? Exatamente, a Microsoft considerou o seu desejo usuporte completo às cotas de disco (em volumes NTFS) prontas. De acordo com outro ditado “Peça e receberás”. Então, qual era o problema? É importante ressaltar que não havia nada de errado com as cotas de disco, elas funcionavam exatamente conforme o previsto. O problema era dos administradores do sistema, que possuíam uma excelente ferramenta à sua disposição, mas não sabiam a melhor maneira degerenciadas de unidade para unidadcotas em um computador (ou seja, a utilização das cotas distribuída por todas as unidades de um computador). Não apenas isso, mas:
• Não era possível gerar relatórios de cotas de disco.
www.cdcbrasil.com.br/ncomputing
BOLETIM TÉCNICO NComputing Brasil - #110412
Gerenciando cotas de disco no Windows Server 2003 e no Windows XP
Uma visão geral dos novos recursos encontrados no Windows Server 2003 e no Windows XP, que permitem a gravação dos scripts responsáveis pelo gerenciamento e pela configuração das cotas de disco em toda a empresa.
Um breve histórico sobre as cotas de disco Sempre que você ouve um ditado popular, reconhece facilmente a mensagem de suas palavras. Quem não escuta cuidado, escuta coitado? Faz sentido. Quem tudo quer nada tem? Espere um pouco enquanto consultamos o orçamento da Equipe de Scripts… Certo, não podemos contestar isso. Deus ajuda a quem cedo madruga? Bem, neste teremos que ter fé. Mas ainda assim ele é bastante razoável.
do com o que deseja, pois pode conseguir. O quê? Esse não faz o menor sentido. Por que você desejaria algo que não o deixasse feliz? Ah, certo: parece que até mesmo os autores de ditados populares têm um dia de folga. (O que levaria um
licar o ditado “Não se pode ter tudo o que deseja”.)Entretanto, os administradores do sistema que já atuavam no mercado antes do lançamento do Windows 2000 compreendem bem o significado do ditado popular “Cuidado com o que deseja”. Na época do Windows NT, um dos principais itens da lista de desejos de qualquer administrador do sistema eram as cotas de disco, às quais o Windows NT não oferecia suporte. E advinha o que aconteceu no lançamento do Windows 2000? Exatamente, a Microsoft considerou o seu desejo uma ordem: o Windows 2000 oferecia suporte completo às cotas de disco (em volumes NTFS) prontas. De acordo com outro
Então, qual era o problema? É importante ressaltar que não havia nada de errado com as
onavam exatamente conforme o previsto. O problema era dos administradores do sistema, que possuíam uma excelente ferramenta à sua disposição, mas não sabiam a melhor maneira de gerenciá-la. As cotas de disco tinham de ser gerenciadas de unidade para unidade, uma forma complexa de chegar ao uso geral das cotas em um computador (ou seja, a utilização das cotas distribuída por todas as unidades de um computador). Não apenas isso, mas:
Não era possível gerar relatórios de cotas de disco.
Gerenciando cotas de disco no Windows Server 2003
Uma visão geral dos novos recursos encontrados no Windows Server 2003 e no Windows enciamento e pela
Sempre que você ouve um ditado popular, reconhece facilmente a mensagem de suas . Quem tudo quer nada
tem? Espere um pouco enquanto consultamos o orçamento da Equipe de Scripts… Certo, não podemos contestar isso. Deus ajuda a quem cedo madruga? Bem, neste teremos que
do com o que deseja, pois pode conseguir. O quê? Esse não faz o menor sentido. Por que você desejaria algo que não o deixasse feliz? Ah, certo: parece que até mesmo os autores de ditados populares têm um dia de folga. (O que levaria um
licar o ditado “Não se pode ter tudo o que deseja”.) Entretanto, os administradores do sistema que já atuavam no mercado antes do lançamento do Windows 2000 compreendem bem o significado do ditado popular
um dos principais itens da lista de desejos de qualquer administrador do sistema eram as cotas de disco, às quais o Windows NT não oferecia suporte. E advinha o que aconteceu no lançamento do Windows 2000?
ma ordem: o Windows 2000 oferecia suporte completo às cotas de disco (em volumes NTFS) prontas. De acordo com outro
Então, qual era o problema? É importante ressaltar que não havia nada de errado com as onavam exatamente conforme o previsto. O problema era dos
administradores do sistema, que possuíam uma excelente ferramenta à sua disposição, . As cotas de disco tinham de ser
e, uma forma complexa de chegar ao uso geral das cotas em um computador (ou seja, a utilização das cotas distribuída por todas as unidades
• Para gerenciar essas conecessário utilizar métodos um pouco obscuros.
• As opções de script eram igualmente limitadas, funcionando apenas em uma única unidade do computador local. (Se estiver interessado em usar scripts para gerenciar cotas de disco no Windows 2000, consulte a seçãode disco” no Guia de Scripts do Microsoft Windows 2000
Em outras palavras, os administradores do sistema conseguiram exatamente o que desejavam: cotas de disco. O problema é qugerenciamento para elas também. As cotas de disco eram, e ainda são, muito úteis no Windows 2000, mas a ausência de ferramentas de gerenciamento dificulta a sua administração em toda a empresa.
Você sabe o que eles dizem? As coisas boas acontecem para aqueles que sabem esperar. Isso parece se aplicar ao caso das cotas de disco. Os administradores do sistema conseguiram as cotas de disco com o Windows 2000, mas não tiveram ajuda para gerenciá-las em toda a empresa. Com mudou. Agora você pode gerenciar cotas de disco facilmente em toda a empresa. Isso se deve às novas classes WMI, presentes no Windows Server 2003 e no Windows XP, criadas para gerenciar as cotas de disco e suas c
Este artigo detalhará essas duas classes WMI e oferecerá diversos scripts de exemplo, que mostrarão como usá-las, para realizar todos os tipos de tarefas de gerenciamento. Contudo, é necessário fazer uma pequena pausa para falar sobre a tecnopelas cotas de discos.
Como as cotas de disco funcionamAs cotas de disco são uma parte integral do sistema de arquivos NTFS. Sempre que um arquivo (ou pasta) é criado em um volume NTFS, ele é atribuído a um proprietário (normalmente o uso criou). Antes que o arquivo seja salvo, o NTFS obtém a ID de usuário de seu proprietário e armazena as informações no atributo Informações Padrão do arquivo (usado para controlar a alocação de espaço em disco). Em seguida, o NTFS localiza a entusuário e determina se a nova alocação do espaço em disco fará com que ele exceda a sua cota. Se isso ocorrer, o NTFS realizará as etapas apropriadas, que podem incluir o logon em uma entrada do log de eventos do sistema ou evitar que o usuário crie um arquivo ou pasta. À medida que o arquivo muda de tamanho, o NFTS atualiza a entrada da cota de disco para refletir o espaço total em disco utilizado pelo usuário. Tudo isso acontece nos bastidores e de forma tão rápida que voperceber.
Antes de poder gerenciar as cotas de disco é importante entender que elas não estão configuradas em uma base computacional ampla. Ao contrário, as cotas de disco estão
www.cdcbrasil.com.br/ncomputing
Para gerenciar essas cotas em computadores remotos, embora fosse possível, era necessário utilizar métodos um pouco obscuros.
As opções de script eram igualmente limitadas, funcionando apenas em uma única unidade do computador local. (Se estiver interessado em usar scripts para gerenciar cotas de disco no Windows 2000, consulte a seção “Gerenciando cotas
Guia de Scripts do Microsoft Windows 2000.)
Em outras palavras, os administradores do sistema conseguiram exatamente o que desejavam: cotas de disco. O problema é que esqueceram de desejar ferramentas de gerenciamento para elas também. As cotas de disco eram, e ainda são, muito úteis no Windows 2000, mas a ausência de ferramentas de gerenciamento dificulta a sua administração em toda a empresa.
zem? As coisas boas acontecem para aqueles que sabem esperar. Isso parece se aplicar ao caso das cotas de disco. Os administradores do sistema conseguiram as cotas de disco com o Windows 2000, mas não tiveram ajuda para
las em toda a empresa. Com o Windows Server 2003 (e o Windows XP) isso gerenciar cotas de disco facilmente em toda a empresa. Isso se
deve às novas classes WMI, presentes no Windows Server 2003 e no Windows XP, criadas para gerenciar as cotas de disco e suas configurações.
Este artigo detalhará essas duas classes WMI e oferecerá diversos scripts de exemplo, que las, para realizar todos os tipos de tarefas de gerenciamento.
Contudo, é necessário fazer uma pequena pausa para falar sobre a tecno
Como as cotas de disco funcionam As cotas de disco são uma parte integral do sistema de arquivos NTFS. Sempre que um arquivo (ou pasta) é criado em um volume NTFS, ele é atribuído a um proprietário (normalmente o uso criou). Antes que o arquivo seja salvo, o NTFS obtém a ID de usuário de seu proprietário e armazena as informações no atributo Informações Padrão do arquivo (usado para controlar a alocação de espaço em disco). Em seguida, o NTFS localiza a entrada das cotas de disco para esse usuário e determina se a nova alocação do espaço em disco fará com que ele exceda a sua cota. Se isso ocorrer, o NTFS realizará as etapas apropriadas, que podem incluir o logon em uma entrada do
u evitar que o usuário crie um arquivo ou pasta. À medida que o arquivo muda de tamanho, o NFTS atualiza a entrada da cota de disco para refletir o espaço total em disco utilizado pelo usuário. Tudo isso acontece nos bastidores e de forma tão rápida que vo
Antes de poder gerenciar as cotas de disco é importante entender que elas não estão configuradas em uma base computacional ampla. Ao contrário, as cotas de disco estão
tas em computadores remotos, embora fosse possível, era
As opções de script eram igualmente limitadas, funcionando apenas em uma única unidade do computador local. (Se estiver interessado em usar scripts para
“Gerenciando cotas
Em outras palavras, os administradores do sistema conseguiram exatamente o que e esqueceram de desejar ferramentas de
gerenciamento para elas também. As cotas de disco eram, e ainda são, muito úteis no Windows 2000, mas a ausência de ferramentas de gerenciamento dificulta a sua
zem? As coisas boas acontecem para aqueles que sabem esperar. Isso parece se aplicar ao caso das cotas de disco. Os administradores do sistema conseguiram as cotas de disco com o Windows 2000, mas não tiveram ajuda para
o Windows Server 2003 (e o Windows XP) isso gerenciar cotas de disco facilmente em toda a empresa. Isso se
deve às novas classes WMI, presentes no Windows Server 2003 e no Windows XP, criadas
Este artigo detalhará essas duas classes WMI e oferecerá diversos scripts de exemplo, que las, para realizar todos os tipos de tarefas de gerenciamento.
Contudo, é necessário fazer uma pequena pausa para falar sobre a tecnologia responsável
As cotas de disco são uma parte integral do sistema de arquivos NTFS. Sempre que um arquivo (ou pasta) é criado em um volume NTFS, ele é atribuído a um proprietário (normalmente o usuário que o criou). Antes que o arquivo seja salvo, o NTFS obtém a ID de usuário de seu proprietário e armazena as informações no atributo Informações Padrão do arquivo (usado para controlar a
rada das cotas de disco para esse usuário e determina se a nova alocação do espaço em disco fará com que ele exceda a sua cota. Se isso ocorrer, o NTFS realizará as etapas apropriadas, que podem incluir o logon em uma entrada do
u evitar que o usuário crie um arquivo ou pasta. À medida que o arquivo muda de tamanho, o NFTS atualiza a entrada da cota de disco para refletir o espaço total em disco utilizado pelo usuário. Tudo isso acontece nos bastidores e de forma tão rápida que você nem vai
Antes de poder gerenciar as cotas de disco é importante entender que elas não estão configuradas em uma base computacional ampla. Ao contrário, as cotas de disco estão
ligadas a volumes NTFS individuais. Cada unidade possui configuraçõe as ações relacionadas a um volume não afetam os outros volumes. Por exemplo, um computador pode ter um único disco rígido dividido em três volumes: unidades C, D e E. Cada uma dessas unidades terá uma configuração de cotas individualas cotas de disco nas unidades C e D e não habilitávocê pode conceder aos usuários 50 MB de espaço em disco na unidade C e 100 MB na unidade D.
Em outras palavras, ao gerenciar cotas de disco, as açõafetam de forma alguma os outros volumes. Se você alocar 50 MB de espaço em disco para um usuário na unidade C, isso não significa que ele terá o mesmo espaço nas unidades D e E. Se você desabilitar as cotas de disco da unidae E permanecerão habilitadas. Lembrepor usuário. Isso será abordado mais detalhadamente a seguir neste artigo.
Além da alocação do espaço em disco, você também pode especificarcota, o volume de uso do espaço em disco que dispara um alerta (um evento gravado no log de eventos do sistema, informando que o usuário está próximo de atingir o limite da cota). Também é possível determinar a ação a ser realizada peexceder a cota:
• Nenhuma ação.
• Gravar um evento no log de eventos do sistema.
• Negar ao usuário o direito de armazenar dados adicionais até que alguns arquivos sejam removidos para restabelecer o limite da cota.
O WMI possui duas classes usadas para gerenciar cotas de disco nas unidades NTFS. A classe Win32_QuotaSettingunidade. Isso inclui medidas como a habilitação ou não das cotas na unidade, a cota padrão e os limites de aviso aclasse Win32_DiskQuota é destinada a gerenciar entradas de cota individuais: ela é usada para enumerar, criar, modificar e excluir entradas de cotas para usuários individuais. Com apenas essas duas classes é po Configurações de gerenciamento de cotas de discoSe você não leu a seção educacional acima, vamos repetir: a classe Win32_QuotaSetting é usada para determinar as situações em que as cotas estejame qualquer unidade de um computador), a cota padrão e os limites de aviso definidos para uma unidade e as ações administrativas, se houver, que serão realizadas caso um usuário exceda o seu limite de cota. A tabela abaixo mos
www.cdcbrasil.com.br/ncomputing
ligadas a volumes NTFS individuais. Cada unidade possui configurações de cota separadas e as ações relacionadas a um volume não afetam os outros volumes. Por exemplo, um computador pode ter um único disco rígido dividido em três volumes: unidades C, D e E. Cada uma dessas unidades terá uma configuração de cotas individual. Você pode habilitar as cotas de disco nas unidades C e D e não habilitá-las na unidade E. Da mesma forma, você pode conceder aos usuários 50 MB de espaço em disco na unidade C e 100 MB na
Em outras palavras, ao gerenciar cotas de disco, as ações realizadas em um volume não afetam de forma alguma os outros volumes. Se você alocar 50 MB de espaço em disco para um usuário na unidade C, isso não significa que ele terá o mesmo espaço nas unidades D e E. Se você desabilitar as cotas de disco da unidade D, as cotas das unidades C e E permanecerão habilitadas. Lembre-se que as cotas de disco também são configuradas por usuário. Isso será abordado mais detalhadamente a seguir neste artigo.
Além da alocação do espaço em disco, você também pode especificar um nível de aviso de cota, o volume de uso do espaço em disco que dispara um alerta (um evento gravado no log de eventos do sistema, informando que o usuário está próximo de atingir o limite da cota). Também é possível determinar a ação a ser realizada pelo sistema se o usuário
Gravar um evento no log de eventos do sistema.
Negar ao usuário o direito de armazenar dados adicionais até que alguns arquivos sejam removidos para restabelecer o limite da cota.
ses usadas para gerenciar cotas de disco nas unidades NTFS. A Win32_QuotaSetting é usada para configurar as definições de cota de cada
unidade. Isso inclui medidas como a habilitação ou não das cotas na unidade, a cota padrão e os limites de aviso aplicados aos novos usuários. Enquanto isso, a
é destinada a gerenciar entradas de cota individuais: ela é usada para enumerar, criar, modificar e excluir entradas de cotas para usuários individuais. Com apenas essas duas classes é possível realizar qualquer tarefa de gerenciamento necessária.
Configurações de gerenciamento de cotas de disco Se você não leu a seção educacional acima, vamos repetir: a classe Win32_QuotaSetting é usada para determinar as situações em que as cotas estejam habilitadas ou não (para toda e qualquer unidade de um computador), a cota padrão e os limites de aviso definidos para uma unidade e as ações administrativas, se houver, que serão realizadas caso um usuário exceda o seu limite de cota. A tabela abaixo mostra as propriedades da classe
es de cota separadas e as ações relacionadas a um volume não afetam os outros volumes. Por exemplo, um computador pode ter um único disco rígido dividido em três volumes: unidades C, D e E.
. Você pode habilitar las na unidade E. Da mesma forma,
você pode conceder aos usuários 50 MB de espaço em disco na unidade C e 100 MB na
es realizadas em um volume não afetam de forma alguma os outros volumes. Se você alocar 50 MB de espaço em disco para um usuário na unidade C, isso não significa que ele terá o mesmo espaço nas
de D, as cotas das unidades C se que as cotas de disco também são configuradas
por usuário. Isso será abordado mais detalhadamente a seguir neste artigo.
um nível de aviso de cota, o volume de uso do espaço em disco que dispara um alerta (um evento gravado no log de eventos do sistema, informando que o usuário está próximo de atingir o limite da
lo sistema se o usuário
Negar ao usuário o direito de armazenar dados adicionais até que alguns arquivos
ses usadas para gerenciar cotas de disco nas unidades NTFS. A é usada para configurar as definições de cota de cada
unidade. Isso inclui medidas como a habilitação ou não das cotas na unidade, a cota plicados aos novos usuários. Enquanto isso, a
é destinada a gerenciar entradas de cota individuais: ela é usada para enumerar, criar, modificar e excluir entradas de cotas para usuários individuais. Com
ssível realizar qualquer tarefa de gerenciamento necessária.
Se você não leu a seção educacional acima, vamos repetir: a classe Win32_QuotaSetting é habilitadas ou não (para toda
e qualquer unidade de um computador), a cota padrão e os limites de aviso definidos para uma unidade e as ações administrativas, se houver, que serão realizadas caso um usuário
tra as propriedades da classe
Win32_QuotaSetting. Todas essas propriedades, exceto a VolumePath, são de leitura/gravação, ou seja, significa que você não está limitado a apenas reportar seus valores existentes. Em vez disso, você pode usar scripts parapropriedades.
Propriedade
DefaultLimit
DefaultWarningLimit
ExceededNotification
State
VolumePath
WarningExceededNotification
Essas propriedades também podem susuário, encontrados na caixa de diálogo
www.cdcbrasil.com.br/ncomputing
Win32_QuotaSetting. Todas essas propriedades, exceto a VolumePath, são de leitura/gravação, ou seja, significa que você não está limitado a apenas reportar seus valores existentes. Em vez disso, você pode usar scripts para modificar
Descrição
Limite padrão (em KB) para cotas em um determinado volume.
Limite de aviso padrão (em KB) para cotas em um determinado
volume.
Indica se os eventos serão gravados ou não no log de eventos,
caso os usuários excedam suas cotas. (Verdadeiro/Falso)
Nível de gerenciamento de cota para um determinado volume. Os
valores são:
0: o gerenciamento de cotas não está habilitado nesse volume.
1: as cotas são rastreadas, mas o valor limite não é aplicado e os
usuários podem exceder seus limites.
2: as cotas são rastreadas e aplicadas nesse volume.
Nome do volume contendo as cotas de disco. Pode ser o nome ou
o caminho do volume (como D:\\). Ao usar um caminho, é
necessário acrescentar duas barras inversas (\
WarningExceededNotification Indica se o eventos serão gravados ou não no log de eventos,
quando o limite de aviso for excedido. (Verdadeiro/Falso)
Essas propriedades também podem ser mapeadas para os elementos da interface do usuário, encontrados na caixa de diálogo Propriedades de uma unidade NTFS:
Win32_QuotaSetting. Todas essas propriedades, exceto a VolumePath, são de leitura/gravação, ou seja, significa que você não está limitado a apenas reportar seus
o valor dessas
Limite padrão (em KB) para cotas em um determinado volume.
Limite de aviso padrão (em KB) para cotas em um determinado
ventos serão gravados ou não no log de eventos,
caso os usuários excedam suas cotas. (Verdadeiro/Falso)
Nível de gerenciamento de cota para um determinado volume. Os
: o gerenciamento de cotas não está habilitado nesse volume.
otas são rastreadas, mas o valor limite não é aplicado e os
: as cotas são rastreadas e aplicadas nesse volume.
Nome do volume contendo as cotas de disco. Pode ser o nome ou
Ao usar um caminho, é
\\).
Indica se o eventos serão gravados ou não no log de eventos,
quando o limite de aviso for excedido. (Verdadeiro/Falso)
er mapeadas para os elementos da interface do de uma unidade NTFS:
Para visualizar a versão em tela inteira desse gráfico,
O que você realmente podecomum é estabelecer uma conexão com um computador e descobrir se as cotas de disco foram habilitadas nos volumes NTFS do computador (e, em caso afirmativo, determinar como as definições de cota foram configuradas). Para retornar as informações de definição de cota para um computador, basta estabelecer ligação com a classe Win32_QuotaSetting e exibir novamente os valores de cada propriedade:
strComputer = "."
Set objWMIService = GetObject("winmgmts:
Set colQuotaSettings = objWMIService.ExecQuery _
("Select * from Win32_QuotaSetting")
For Each objQuotaSetting in colQuotaSettings
Wscript.Echo "Default Limit: " & objQuotaSetting.De faultLimit
Wscript.Echo "Default Warning Limit: " &
objQuotaSetting.Def
Wscript.Echo "Exceeded Notification: " &
objQuotaSetting.ExceededNotification
Wscript.Echo "State: " & objQuotaSetting.State
Wscript.Echo "Volume Path: " & objQuotaSetting.Volu mePath
Wscript.Echo "Warn ing Exceeded Notification: " & _
objQuotaSetting.WarningExceededNotification
Next
O script anterior retorna informações de definição de cota para todos os volumes NTFS em um computador. E se você quisesse saber apenas as informações relacionadadefinições de cota para a unidade D? Nesse caso, adicione uma cláusula WHERE à sua consulta WQL, que limite os dados retornados à unidade D:
strComputer = "."
Set objWMIService = GetObject("winmgmts:
Set colQuotaSett ings = objWMIService.ExecQuery _
www.cdcbrasil.com.br/ncomputing
Para visualizar a versão em tela inteira desse gráfico,
O que você realmente pode fazer com a classe Win32_QuotaSetting? A tarefa macomum é estabelecer uma conexão com um computador e descobrir se as cotas de disco foram habilitadas nos volumes NTFS do computador (e, em caso afirmativo, determinar como as definições de cota foram configuradas). Para retornar as informações de
ção de cota para um computador, basta estabelecer ligação com a classe Win32_QuotaSetting e exibir novamente os valores de cada propriedade:
Set objWMIService = GetObject("winmgmts: \\" & strComputer & "\ root
= objWMIService.ExecQuery _
("Select * from Win32_QuotaSetting")
For Each objQuotaSetting in colQuotaSettings
Wscript.Echo "Default Limit: " & objQuotaSetting.De faultLimit
Wscript.Echo "Default Warning Limit: " & _
objQuotaSetting.Def aultWarningLimit
Wscript.Echo "Exceeded Notification: " & _
objQuotaSetting.ExceededNotification
Wscript.Echo "State: " & objQuotaSetting.State
Wscript.Echo "Volume Path: " & objQuotaSetting.Volu mePath
ing Exceeded Notification: " & _
objQuotaSetting.WarningExceededNotification
O script anterior retorna informações de definição de cota para todos os volumes NTFS em um computador. E se você quisesse saber apenas as informações relacionadadefinições de cota para a unidade D? Nesse caso, adicione uma cláusula WHERE à sua consulta WQL, que limite os dados retornados à unidade D:
Set objWMIService = GetObject("winmgmts: \\" & strComputer & "\ root
ings = objWMIService.ExecQuery _
com a classe Win32_QuotaSetting? A tarefa mais comum é estabelecer uma conexão com um computador e descobrir se as cotas de disco foram habilitadas nos volumes NTFS do computador (e, em caso afirmativo, determinar como as definições de cota foram configuradas). Para retornar as informações de
ção de cota para um computador, basta estabelecer ligação com a classe Win32_QuotaSetting e exibir novamente os valores de cada propriedade:
root \cimv2")
Wscript.Echo "Default Limit: " & objQuotaSetting.De faultLimit
O script anterior retorna informações de definição de cota para todos os volumes NTFS em um computador. E se você quisesse saber apenas as informações relacionadas às definições de cota para a unidade D? Nesse caso, adicione uma cláusula WHERE à sua
root \cimv2")
("Select * from Win32_QuotaSetting Where VolumePath = 'D:
For Each objQuotaSetting in colQuotaSettings
Wscript.Echo "Default Limit: " & objQuotaSetting.De faultLimit
Wscript.Echo "Default Warning Limit: " &
objQuotaSetting.DefaultWarningLimit
Wscript.Echo "Exceeded Notification: " &
objQuotaSetting.ExceededNotification
Wscript.Echo "State: " & objQuotaSetting.State
Wscript.Echo "Volume Path: " & objQuotaSetting.Vo
Wscript.Echo "Warning Exceeded Notification: " & _
objQuotaSetting.WarningExceededNotification
Next
Observe que é necessário incluir uma barra inversa extra ao especificar a unidade D (Como a barra invertida (\) é um caractefor precedida por outra barra invertida) sempre que for exibida em uma cláusula WHERE.
Habilitando e desabilitando as cotas de disco
A classe Win32_QuotaSetting facilita a habilitação e a desabilitação das coutilização dos scripts do WMI para realizar essas tarefas é especialmente útil, porque eles podem ser executados em computadores remotos como se fossem computadores locais. Os scripts também são uma excelente forma de gerenciar as cotas de oferecem flexibilidade para habilitácomputador. A escolha é sua.
Você pode ativar e desativar as cotas de disco, manipulando o valor da propriedadeEla aceita três valore possíveis:
• 0: as cotas de discos estão desativadas.
• 1: as cotas de discos são rastreadas, mas não são aplicadas. Em outras palavras, o sistema operacional manterá o controle das informações da cota, mas os usuários poderão exceder seu limite.
• 2: as cotas de discos sãopoderão exceder as cotas de disco, ou seja, caso um usuário queira salvar um arquivo que o fará exceder o limite da cota, uma mensagem informando que o espaço em disco é insuficiente será exibida.
www.cdcbrasil.com.br/ncomputing
("Select * from Win32_QuotaSetting Where VolumePath = 'D: \\ '")
For Each objQuotaSetting in colQuotaSettings
Wscript.Echo "Default Limit: " & objQuotaSetting.De faultLimit
Wscript.Echo "Default Warning Limit: " & _
objQuotaSetting.DefaultWarningLimit
Wscript.Echo "Exceeded Notification: " & _
objQuotaSetting.ExceededNotification
Wscript.Echo "State: " & objQuotaSetting.State
Wscript.Echo "Volume Path: " & objQuotaSetting.Vo lumePath
Wscript.Echo "Warning Exceeded Notification: " & _
objQuotaSetting.WarningExceededNotification
Observe que é necessário incluir uma barra inversa extra ao especificar a unidade D () é um caractere reservado no WMI, ela pode ser “perdida” (se
for precedida por outra barra invertida) sempre que for exibida em uma cláusula WHERE.
Habilitando e desabilitando as cotas de disco
A classe Win32_QuotaSetting facilita a habilitação e a desabilitação das coutilização dos scripts do WMI para realizar essas tarefas é especialmente útil, porque eles podem ser executados em computadores remotos como se fossem computadores locais. Os scripts também são uma excelente forma de gerenciar as cotas de disco, porque oferecem flexibilidade para habilitá-las em um único volume ou para todos os volumes do computador. A escolha é sua.
Você pode ativar e desativar as cotas de disco, manipulando o valor da propriedadeEla aceita três valore possíveis:
: as cotas de discos estão desativadas.
: as cotas de discos são rastreadas, mas não são aplicadas. Em outras palavras, o sistema operacional manterá o controle das informações da cota, mas os usuários poderão exceder seu limite.
: as cotas de discos são rastreadas e aplicadas. Nesse caso, os usuários não poderão exceder as cotas de disco, ou seja, caso um usuário queira salvar um arquivo que o fará exceder o limite da cota, uma mensagem informando que o espaço em disco é insuficiente será exibida.
'")
Wscript.Echo "Default Limit: " & objQuotaSetting.De faultLimit
Observe que é necessário incluir uma barra inversa extra ao especificar a unidade D (D:\\). re reservado no WMI, ela pode ser “perdida” (se
for precedida por outra barra invertida) sempre que for exibida em uma cláusula WHERE.
A classe Win32_QuotaSetting facilita a habilitação e a desabilitação das cotas de disco. A utilização dos scripts do WMI para realizar essas tarefas é especialmente útil, porque eles podem ser executados em computadores remotos como se fossem computadores locais.
disco, porque las em um único volume ou para todos os volumes do
Você pode ativar e desativar as cotas de disco, manipulando o valor da propriedade State.
: as cotas de discos são rastreadas, mas não são aplicadas. Em outras palavras, o sistema operacional manterá o controle das informações da cota, mas os usuários
aplicadas. Nesse caso, os usuários não poderão exceder as cotas de disco, ou seja, caso um usuário queira salvar um arquivo que o fará exceder o limite da cota, uma mensagem informando que o
O script a seguir configura um computador para rastrear e aplicar as cotas de disco em uma unidade C:
Const ENFORCE_QUOTAS = 2
strComputer = "."
Set objWMIService = GetObject("winmgmts:
Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_QuotaSetting Where VolumePath = 'C:
For Each objDisk in colDisks
objDisk.State = ENFORCE_QUOTAS
objDisk.Put_
Next
Primeiro o script define uma constante, ENFORCE_QUOTAS, e atribui a ela o valor 2. Então ele se conecta ao serviço WMI e recupera as definições de cota para a unidade C, usando esta linha de código:
Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_QuotaSetting Where VolumePath = 'C:
Para habilitar cotas, o script define o valor da prENFORCE_QUOTAS e chama o métodooperacional.
E se você quiser desabilitarvalor da propriedade StateDISABLE_QUOTAS, defina o seu valor como 0 e o valor da propriedade State como DISABLE_QUOTAS. O script concluído terá um aspecto horrível como este:
Const DISABLE_QUOTAS = 0
StrComputer = "."
Set objWMIService = GetObject(
Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_QuotaSetting Where VolumePath = 'C:
www.cdcbrasil.com.br/ncomputing
pt a seguir configura um computador para rastrear e aplicar as cotas de disco em
Set objWMIService = GetObject("winmgmts: \\" & strComputer & "\ root
Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_QuotaSetting Where VolumePath = 'C: \\ '")
For Each objDisk in colDisks
objDisk.State = ENFORCE_QUOTAS
Primeiro o script define uma constante, ENFORCE_QUOTAS, e atribui a ela o valor 2. Então a ao serviço WMI e recupera as definições de cota para a unidade C, usando
Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_QuotaSetting Where VolumePath = 'C: \\ '")
Para habilitar cotas, o script define o valor da propriedade State para a constante ENFORCE_QUOTAS e chama o método Put_ para gravar essa alteração no sistema
desabilitar as cotas de disco em uma unidade? Nesse caso, basta definir o State como 0. Para fazê-lo, crie uma constante chamada
DISABLE_QUOTAS, defina o seu valor como 0 e o valor da propriedade State como DISABLE_QUOTAS. O script concluído terá um aspecto horrível como este:
Set objWMIService = GetObject( "winmgmts:\\" & strComputer & "\ root
Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_QuotaSetting Where VolumePath = 'C: \\ '")
pt a seguir configura um computador para rastrear e aplicar as cotas de disco em
root \cimv2")
'")
Primeiro o script define uma constante, ENFORCE_QUOTAS, e atribui a ela o valor 2. Então a ao serviço WMI e recupera as definições de cota para a unidade C, usando
'")
para a constante para gravar essa alteração no sistema
as cotas de disco em uma unidade? Nesse caso, basta definir o lo, crie uma constante chamada
DISABLE_QUOTAS, defina o seu valor como 0 e o valor da propriedade State como DISABLE_QUOTAS. O script concluído terá um aspecto horrível como este:
root \cimv2")
'")
For Each objDisk in colDisks
objDisk.State = DISABLE_QUOTAS
objDisk.Put_
Observe que ao desabilitar as cotas de disco, as informações da cota existente não são descartadas. Por exemplo, qualquer configuração de cota que você tenha definido ou qualquer entrada de cota criada continuará existindo. Contudo, essas configurações não serão aplicadas e a utilização do espaço em disco para cada indivíduo com uma entrada de cota não será atualizada. Se posteriormente as cotas de disco forem reabilitadas, as configurações anteriores e as entradas de cota serão automaticamente restauradas, sem que seja necessário recriá-las. Não desperdice, não deseje, como nós da Equipe de Scripts costumamos dizer.
Modificando as configurações das cotas de disco
Uma das maiores vantagens da classe Win32_QuotaSetting é o fato de a maioria das propriedades ser de leitura/gravaçãde valores de propriedades como a DefaultLimit e a DefaultWarningLimit, mas também possibilita a sua modificação
Por exemplo, esse script modifica as configurações das propriedades DefaultLimit e DefaultWarningLimit para todas as unidades NTFS de um computador:
strComputer = "."
Set objWMIService = GetObject("winmgmts:
Set colQuotaSettings = objWMIService.ExecQuery _
("Select * from Win32_QuotaSetting")
For Each objQuotaSetting in colQuotaSettings
objQuotaSetting.DefaultLimit = 10000000
objQuotaSetting.DefaultWarningLimit = 9000000
objQuotaSetting.Put_
Next
Como você pode ver, basta atribuir um novo valor (em KB) e chamar o métodogravar as novas configurações de cota no sistema operacional. Observe que ao fazer isso, as configurações revisadas da cota serão aplicadas apenas aos novos usuários e não aos usuários que já possuem entradas de cotas de disco na unidade. Por exemplo, suponha que você tem três usuários com entradas de cotas de disco em uma unidade:
www.cdcbrasil.com.br/ncomputing
For Each objDisk in colDisks
objDisk.State = DISABLE_QUOTAS
litar as cotas de disco, as informações da cota existente não são descartadas. Por exemplo, qualquer configuração de cota que você tenha definido ou qualquer entrada de cota criada continuará existindo. Contudo, essas configurações não
utilização do espaço em disco para cada indivíduo com uma entrada de cota não será atualizada. Se posteriormente as cotas de disco forem reabilitadas, as configurações anteriores e as entradas de cota serão automaticamente restauradas, sem
las. Não desperdice, não deseje, como nós da Equipe de Scripts
Modificando as configurações das cotas de disco
Uma das maiores vantagens da classe Win32_QuotaSetting é o fato de a maioria das propriedades ser de leitura/gravação, ou seja, o uso do script não se limita à recuperação de valores de propriedades como a DefaultLimit e a DefaultWarningLimit, mas também
modificação.
Por exemplo, esse script modifica as configurações das propriedades DefaultLimit e aultWarningLimit para todas as unidades NTFS de um computador:
Set objWMIService = GetObject("winmgmts: \\" & strComputer & "\ root
Set colQuotaSettings = objWMIService.ExecQuery _
("Select * from Win32_QuotaSetting")
objQuotaSetting in colQuotaSettings
objQuotaSetting.DefaultLimit = 10000000
objQuotaSetting.DefaultWarningLimit = 9000000
Como você pode ver, basta atribuir um novo valor (em KB) e chamar o métodonovas configurações de cota no sistema operacional. Observe que ao fazer isso,
as configurações revisadas da cota serão aplicadas apenas aos novos usuários e não aos usuários que já possuem entradas de cotas de disco na unidade. Por exemplo, suponha
cê tem três usuários com entradas de cotas de disco em uma unidade:
litar as cotas de disco, as informações da cota existente não são descartadas. Por exemplo, qualquer configuração de cota que você tenha definido ou qualquer entrada de cota criada continuará existindo. Contudo, essas configurações não
utilização do espaço em disco para cada indivíduo com uma entrada de cota não será atualizada. Se posteriormente as cotas de disco forem reabilitadas, as configurações anteriores e as entradas de cota serão automaticamente restauradas, sem
las. Não desperdice, não deseje, como nós da Equipe de Scripts
Uma das maiores vantagens da classe Win32_QuotaSetting é o fato de a maioria das o, ou seja, o uso do script não se limita à recuperação
de valores de propriedades como a DefaultLimit e a DefaultWarningLimit, mas também
Por exemplo, esse script modifica as configurações das propriedades DefaultLimit e
root \cimv2")
Como você pode ver, basta atribuir um novo valor (em KB) e chamar o método Put_ para novas configurações de cota no sistema operacional. Observe que ao fazer isso,
as configurações revisadas da cota serão aplicadas apenas aos novos usuários e não aos usuários que já possuem entradas de cotas de disco na unidade. Por exemplo, suponha
cê tem três usuários com entradas de cotas de disco em uma unidade:
Usuário Limite de cota
KMyer 100 MB
PAckerman 200 MB
RWilliams 400 MB
Então você executa um script que altera as definições de cota padrão para um cota de 50 MB e um limite de aviso de 40 MB. Esses valores serão aplicados a qualquer novo usuário que salvar um arquivo ou criar uma pasta na unidade. Contudo, as definições de cota para os três usuários mencionados acimaconfigurações mesmo que possuam um limite de cota bem superior do que o máximo definido de 50 MB. Tudo bem: afinal, as definições de cota consistem em um valor padrão, que será aplicado a todos os novos usuáriosforma. Em outras palavras, é perfeitamente possível ter usuários individuais com valores de definições de cota maiores ou menores do que os valores padrão.
E se você quiser aplicar esses mesmos valores aos três usuários existentes? Nesse caso, será necessário alterar os valores de cada entrada de cota individual do usuário. E isso, por acaso, nos leva a próxima seção.
Gerenciando cotas de disco para usuários individuais
Sempre que um novo usuário salvar um arquivo em uma unidade em que as cotas ddisco foram habilitadas, uma entrada de cota é criada para ele. A entrada de cota mantém o controle dos limites de cota e de aviso, atribuídos ao usuário, bem como a quantidade de espaço em disco atualmente destinada a ele. Na verdade, a entrada de cota semelhante à classeWin32_DiskQuotamodificar e reportar entradas de cota individual. A tabela abaixo mostra as propriedades da classe Win32_QuotaSetting:
Propriedade Descrição
DiskSpaceUsed Número atual de KB (quilobytes) em uso por um determinado usuário.
Limit Definição de limite para determinado usuário. Essa propriedade é
leitura/gravação.
QuotaVolume Volume no qual a entrada de cota está armazenada.
www.cdcbrasil.com.br/ncomputing
Limite de cota Limite de aviso
100 MB 90 MB
200 MB 180 MB
400 MB 350 MB
Então você executa um script que altera as definições de cota padrão para um cota de 50 MB e um limite de aviso de 40 MB. Esses valores serão aplicados a qualquer novo usuário que salvar um arquivo ou criar uma pasta na unidade. Contudo, as definições de cota para os três usuários mencionados acima não serão afetadas, eleconfigurações mesmo que possuam um limite de cota bem superior do que o máximo definido de 50 MB. Tudo bem: afinal, as definições de cota consistem em um valor padrão, que será aplicado a todos os novos usuários a menos que seja especificad
. Em outras palavras, é perfeitamente possível ter usuários individuais com valores de definições de cota maiores ou menores do que os valores padrão.
aplicar esses mesmos valores aos três usuários existentes? Nesse caso, erá necessário alterar os valores de cada entrada de cota individual do usuário. E isso,
por acaso, nos leva a próxima seção.
Gerenciando cotas de disco para usuários individuais
Sempre que um novo usuário salvar um arquivo em uma unidade em que as cotas ddisco foram habilitadas, uma entrada de cota é criada para ele. A entrada de cota mantém o controle dos limites de cota e de aviso, atribuídos ao usuário, bem como a quantidade de espaço em disco atualmente destinada a ele. Na verdade, a entrada de cota
Win32_DiskQuota do WMI, que pode ser usada para criar, excluir, modificar e reportar entradas de cota individual. A tabela abaixo mostra as propriedades da classe Win32_QuotaSetting:
Descrição
atual de KB (quilobytes) em uso por um determinado usuário.
Definição de limite para determinado usuário. Essa propriedade é
leitura/gravação.
Volume no qual a entrada de cota está armazenada.
Limite de aviso
Então você executa um script que altera as definições de cota padrão para um limite de cota de 50 MB e um limite de aviso de 40 MB. Esses valores serão aplicados a qualquer novo usuário que salvar um arquivo ou criar uma pasta na unidade. Contudo, as definições
serão afetadas, eles manterão suas configurações mesmo que possuam um limite de cota bem superior do que o máximo definido de 50 MB. Tudo bem: afinal, as definições de cota consistem em um valor padrão,
a menos que seja especificado de outra . Em outras palavras, é perfeitamente possível ter usuários individuais com valores
aplicar esses mesmos valores aos três usuários existentes? Nesse caso, erá necessário alterar os valores de cada entrada de cota individual do usuário. E isso,
Sempre que um novo usuário salvar um arquivo em uma unidade em que as cotas de disco foram habilitadas, uma entrada de cota é criada para ele. A entrada de cota mantém o controle dos limites de cota e de aviso, atribuídos ao usuário, bem como a quantidade de espaço em disco atualmente destinada a ele. Na verdade, a entrada de cota é bastante
do WMI, que pode ser usada para criar, excluir, modificar e reportar entradas de cota individual. A tabela abaixo mostra as propriedades
atual de KB (quilobytes) em uso por um determinado usuário.
Definição de limite para determinado usuário. Essa propriedade é
Status Status atual da cota de disco. Os
0. OK: o usuário está dentro do limite de sua cota.
1. Aviso: o usuário excedeu o limite de aviso, mas ainda não ultrapassou
o limite de sua cota.
2. Excedido: o usuário excedeu o limite de sua cota.
User Usuário relacionado à entrada de cota
WarningLimit Definição do limite de aviso para determinado usuário. Essa propriedade
é leitura/gravação.
Essas propriedades também podem ser mapeadas para os elementos da interface do usuário, encontrados na caixa de diálogo Entradas de Cota:
Observação. Como encontrar a caixa de diálogoComputador, clique com o botão direito do mouse na unidade de disco desejada e clique emPropriedades. Na caixa de diálogoCota.
As cotas de disco se aplicam aos arquivos e pastas de propriedade de um usuário. (Os arquivos e as pastas pertencerão apenas a usuários e não a grupos, sem exceção, é por isso que as cotas de disco só podem ser atribuídas a usuários.) Eis algumas notas interessantes:
• As cotas de disco são baseadas na propriedade do arquivo. Imagine que o Usuário A criou um novo arquivo em branco. Então o Usuário A possui 0 MB de espaço em disco. Contudo, suponha que o Usuário B, com acesso leitura/gravação, abra o arquivo e insira nele várias imagens baixadas da Internet. O arquivo atinge um tamanho de 40 MB, toda a cota atribuída ao Usuário A, oÉ claro que alguns aplicativos alteram automaticamente o proprietário do arquivo e atribuem esse status ao últi
www.cdcbrasil.com.br/ncomputing
Status atual da cota de disco. Os valores são:
. OK: o usuário está dentro do limite de sua cota.
. Aviso: o usuário excedeu o limite de aviso, mas ainda não ultrapassou
o limite de sua cota.
. Excedido: o usuário excedeu o limite de sua cota.
Usuário relacionado à entrada de cota.
Definição do limite de aviso para determinado usuário. Essa propriedade
é leitura/gravação.
Essas propriedades também podem ser mapeadas para os elementos da interface do usuário, encontrados na caixa de diálogo Entradas de Cota:
. Como encontrar a caixa de diálogo Entradas de Cota? Na pasta Meu Computador, clique com o botão direito do mouse na unidade de disco desejada e clique
. Na caixa de diálogo Propriedades, clique na guia Cota
as de disco se aplicam aos arquivos e pastas de propriedade de um usuário. (Os arquivos e as pastas pertencerão apenas a usuários e não a grupos, sem exceção, é por isso que as cotas de disco só podem ser atribuídas a usuários.) Eis algumas notas
As cotas de disco são baseadas na propriedade do arquivo. Imagine que o Usuário A criou um novo arquivo em branco. Então o Usuário A possui 0 MB de espaço em disco. Contudo, suponha que o Usuário B, com acesso leitura/gravação, abra o
a nele várias imagens baixadas da Internet. O arquivo atinge um tamanho de 40 MB, toda a cota atribuída ao Usuário A, o proprietárioÉ claro que alguns aplicativos alteram automaticamente o proprietário do arquivo e atribuem esse status ao último usuário que modificou o arquivo. Nesse caso, os
. Aviso: o usuário excedeu o limite de aviso, mas ainda não ultrapassou
Definição do limite de aviso para determinado usuário. Essa propriedade
Essas propriedades também podem ser mapeadas para os elementos da interface do
? Na pasta Meu Computador, clique com o botão direito do mouse na unidade de disco desejada e clique
Cota e em Entradas de
as de disco se aplicam aos arquivos e pastas de propriedade de um usuário. (Os arquivos e as pastas pertencerão apenas a usuários e não a grupos, sem exceção, é por isso que as cotas de disco só podem ser atribuídas a usuários.) Eis algumas notas
As cotas de disco são baseadas na propriedade do arquivo. Imagine que o Usuário A criou um novo arquivo em branco. Então o Usuário A possui 0 MB de espaço em disco. Contudo, suponha que o Usuário B, com acesso leitura/gravação, abra o
a nele várias imagens baixadas da Internet. O arquivo atinge um proprietário do arquivo.
É claro que alguns aplicativos alteram automaticamente o proprietário do arquivo mo usuário que modificou o arquivo. Nesse caso, os
40 MB de espaço em disco seria cobrado do Usuário B, porque ele agora é o proprietário do arquivo.
• As cotas de disco se baseiam no tamanho descompactado de um arquivo. A compactação de um arquivo não alterpelo proprietário do arquivo. (Sim, sabemos: também pretendíamos fazer isso, mas não funcionaria.)
• As cotas de disco são inteligentes: quando elas são habilitadas, a quantidade de espaço em disco livre reportada no tamanho da unidade. Por exemplo, suponha que um usuário tenha recebido 1 GB de espaço de cota em uma unidade com 50 GB. Se o usuário verificar imediatamente a quantidade de espaço em disco disponível na uinformado que possui 1 GB livre, portanto, o espaço em disco disponível para o usuário está baseado em sua cota. Ele nunca saberá sobre os outros 49 GB de espaço em disco da unidade.
• Por padrão, os administradores possuem espaço em disco iunidade (limitado pela quantidade de espaço em disco real), na verdade, quando você habilita as cotas de disco, o grupo Administradores é automaticamente adicionado à tabela de entrada de cotas, recebendo espaço em disco ilimitado. Não é aconselhável alterar esse padrão. Se você remover o grupo Administradores da tabela de entrada de cotas ou se limitar o espaço em disco disponível para os administradores, a capacidade de gerenciamento do seu computador pode ser seriamente prejudicada.
Observação. Qualquer arquivo criado por um administrador é de propriedade do grupo
Administradores e não de apenas um administrador. Essa é a exceção mencionada
anteriormente. Você pode configurar uma entrada de cota de disco para o grupo
Administradores e não para qualquer outro grupo. (Sim, é injusto. Mas se consultarmos
rapidamente a lista de ditados populares, não encontraríamos um que dissesse “A vida é
justa”.)
Conforme observado anteriormente, um dos maiores obstáculos para implementar as cotas de disco no Windows 2000 foi a falta de ferramentas úteis para gerenciamento. Por exemplo, imagine que você quisesse gerar um relatório mostrando todas as entradas de cota de disco para todas as unidades de um computador. No Windows 2000, isso é bastante complicado. Se desejar imprimir informações ou salvar dados em um arquivo de texto, nem adianta usar o utilitário
www.cdcbrasil.com.br/ncomputing
40 MB de espaço em disco seria cobrado do Usuário B, porque ele agora é o proprietário do arquivo.
As cotas de disco se baseiam no tamanho descompactado de um arquivo. A compactação de um arquivo não altera a quantidade de espaço em disco utilizada pelo proprietário do arquivo. (Sim, sabemos: também pretendíamos fazer isso, mas não funcionaria.)
As cotas de disco são inteligentes: quando elas são habilitadas, a quantidade de espaço em disco livre reportada ao usuário é baseada em seu limite de cota e não no tamanho da unidade. Por exemplo, suponha que um usuário tenha recebido 1 GB de espaço de cota em uma unidade com 50 GB. Se o usuário verificar imediatamente a quantidade de espaço em disco disponível na uinformado que possui 1 GB livre, portanto, o espaço em disco disponível para o usuário está baseado em sua cota. Ele nunca saberá sobre os outros 49 GB de espaço em disco da unidade.
Por padrão, os administradores possuem espaço em disco ilimitado em uma unidade (limitado pela quantidade de espaço em disco real), na verdade, quando você habilita as cotas de disco, o grupo Administradores é automaticamente adicionado à tabela de entrada de cotas, recebendo espaço em disco ilimitado.
onselhável alterar esse padrão. Se você remover o grupo Administradores da tabela de entrada de cotas ou se limitar o espaço em disco disponível para os administradores, a capacidade de gerenciamento do seu computador pode ser seriamente prejudicada.
. Qualquer arquivo criado por um administrador é de propriedade do grupo
Administradores e não de apenas um administrador. Essa é a exceção mencionada
anteriormente. Você pode configurar uma entrada de cota de disco para o grupo
para qualquer outro grupo. (Sim, é injusto. Mas se consultarmos
rapidamente a lista de ditados populares, não encontraríamos um que dissesse “A vida é
Conforme observado anteriormente, um dos maiores obstáculos para implementar as no Windows 2000 foi a falta de ferramentas úteis para gerenciamento. Por
exemplo, imagine que você quisesse gerar um relatório mostrando todas as entradas de cota de disco para todas as unidades de um computador. No Windows 2000, isso é
o. Se desejar imprimir informações ou salvar dados em um arquivo de texto, nem adianta usar o utilitário Entradas de Cota de Disco. Da mesma forma, ao
40 MB de espaço em disco seria cobrado do Usuário B, porque ele agora é o
As cotas de disco se baseiam no tamanho descompactado de um arquivo. A a a quantidade de espaço em disco utilizada
pelo proprietário do arquivo. (Sim, sabemos: também pretendíamos fazer isso,
As cotas de disco são inteligentes: quando elas são habilitadas, a quantidade de ao usuário é baseada em seu limite de cota e não
no tamanho da unidade. Por exemplo, suponha que um usuário tenha recebido 1 GB de espaço de cota em uma unidade com 50 GB. Se o usuário verificar imediatamente a quantidade de espaço em disco disponível na unidade, ele será informado que possui 1 GB livre, portanto, o espaço em disco disponível para o usuário está baseado em sua cota. Ele nunca saberá sobre os outros 49 GB de
limitado em uma unidade (limitado pela quantidade de espaço em disco real), na verdade, quando você habilita as cotas de disco, o grupo Administradores é automaticamente adicionado à tabela de entrada de cotas, recebendo espaço em disco ilimitado.
onselhável alterar esse padrão. Se você remover o grupo Administradores da tabela de entrada de cotas ou se limitar o espaço em disco disponível para os administradores, a capacidade de gerenciamento do seu computador pode ser
. Qualquer arquivo criado por um administrador é de propriedade do grupo
Administradores e não de apenas um administrador. Essa é a exceção mencionada
anteriormente. Você pode configurar uma entrada de cota de disco para o grupo
para qualquer outro grupo. (Sim, é injusto. Mas se consultarmos
rapidamente a lista de ditados populares, não encontraríamos um que dissesse “A vida é
Conforme observado anteriormente, um dos maiores obstáculos para implementar as no Windows 2000 foi a falta de ferramentas úteis para gerenciamento. Por
exemplo, imagine que você quisesse gerar um relatório mostrando todas as entradas de cota de disco para todas as unidades de um computador. No Windows 2000, isso é
o. Se desejar imprimir informações ou salvar dados em um arquivo de . Da mesma forma, ao
mesmo tempo que você poderiaincluir uma quantidade considerável de código, somente para identificar e conectar todas as unidades do computador. Se não for complicado não vale a pena. (Parecido com o ditado “Sem dor, sem ganho”.)
Então seria mais fácil no Windows 2003? Bem, este é um script que fará exretornará as informações sobre todas as entradas de cota para todas as unidades de um computador com apenas algumas linhas de código:
strComputer = "."
Set objWMIService = GetObject("winmgmts:
Set colDiskQu otas = objWMIService.ExecQuery("Select * from Win32 _DiskQuota")
For Each objQuota in colDiskQuotas
Wscript.Echo "Disk Space Used: " & objQuota.DiskSpa ceUsed
Wscript.Echo "Limit: " & objQuota.Limit
Wscript.Echo "Quota Volume: " & objQuota.Qu
Wscript.Echo "Status: " & objQuota.Status
Wscript.Echo "User: " & objQuota.User
Wscript.Echo "Warning Limit: " & objQuota.WarningLi mit
Wscript.Echo
Next
Excelente, hein? Mas vai ficar ainda melhor. Esse é o WMI que podeconsultas que retornam um conjunto de informações mais direcionado. Por exemplo, talvez você queira uma coleção de todos os usuários que excederam seus limites de cota (ou seja, todas as entradas de cota com a propriedadecaso, basta usar uma consulta WQL como esta:
Set colDiskQuotas = objWMIService.ExecQuery _
("Select * from Win32_DiskQuota Where Status = 2")
Este é outro exemplo de consulta, um que retorne uma lista de todos os usuários que, independentemente de suas definições de cota, usaram mais de 1 GB de espaço em disco:
Set colDiskQuotas = objWMIService.ExecQuery _
("Select * from Win32_DiskQuota Where DiskSpaceUsed > 1000000")
www.cdcbrasil.com.br/ncomputing
poderiaescrever um script usando o objeto Shelldade considerável de código, somente para identificar e conectar todas
as unidades do computador. Se não for complicado não vale a pena. (Parecido com o ditado “Sem dor, sem ganho”.)
Então seria mais fácil no Windows 2003? Bem, este é um script que fará exretornará as informações sobre todas as entradas de cota para todas as unidades de um computador com apenas algumas linhas de código:
Set objWMIService = GetObject("winmgmts: \\" & strComputer & "\ root
otas = objWMIService.ExecQuery("Select * from Win32 _DiskQuota")
For Each objQuota in colDiskQuotas
Wscript.Echo "Disk Space Used: " & objQuota.DiskSpa ceUsed
Wscript.Echo "Limit: " & objQuota.Limit
Wscript.Echo "Quota Volume: " & objQuota.Qu otaVolume
Wscript.Echo "Status: " & objQuota.Status
Wscript.Echo "User: " & objQuota.User
Wscript.Echo "Warning Limit: " & objQuota.WarningLi mit
Excelente, hein? Mas vai ficar ainda melhor. Esse é o WMI que pode ser usado para criar consultas que retornam um conjunto de informações mais direcionado. Por exemplo, talvez você queira uma coleção de todos os usuários que excederam seus limites de cota (ou seja, todas as entradas de cota com a propriedade Status definida como 2). Nesse caso, basta usar uma consulta WQL como esta:
Set colDiskQuotas = objWMIService.ExecQuery _
("Select * from Win32_DiskQuota Where Status = 2")
Este é outro exemplo de consulta, um que retorne uma lista de todos os usuários que, ndentemente de suas definições de cota, usaram mais de 1 GB de espaço em disco:
Set colDiskQuotas = objWMIService.ExecQuery _
("Select * from Win32_DiskQuota Where DiskSpaceUsed > 1000000")
Shell, seria necessário dade considerável de código, somente para identificar e conectar todas
as unidades do computador. Se não for complicado não vale a pena. (Parecido com o
Então seria mais fácil no Windows 2003? Bem, este é um script que fará exatamente isso: retornará as informações sobre todas as entradas de cota para todas as unidades de um
root \cimv2")
otas = objWMIService.ExecQuery("Select * from Win32 _DiskQuota")
ser usado para criar consultas que retornam um conjunto de informações mais direcionado. Por exemplo, talvez você queira uma coleção de todos os usuários que excederam seus limites de cota
ida como 2). Nesse
Este é outro exemplo de consulta, um que retorne uma lista de todos os usuários que, ndentemente de suas definições de cota, usaram mais de 1 GB de espaço em disco:
("Select * from Win32_DiskQuota Where DiskSpaceUsed > 1000000")
Novamente, é isso que torna o script uma excelente forma de gecotas de disco. Investindo relativamente pouco tempo você pode criar uma ferramenta de gerenciamento que funciona exatamente como você precisa.
Casualmente, quando um usuário atinge o seu nível de cota, um evento é gravado no log de eventos do sistema no computador em que a violação do limite de cota ocorreu. Contudo, nenhuma notificação é enviada ao usuário. Ele nunca saberá que está se aproximando de seu limite de cota até tentar salvar um arquivo e tiver o acesso negado por falta de espaço em disco disponível.
Por que mencionamos isso? Bem, você poderia facilmente escrever um script para retornar uma lista com os usuários que excederam o limite de aviso ou de cota, e solicitar que esse script envie um email para cada usuário notificaaté oferecendo sugestões para que eles possam liberar mais espaço em disco. Tente fazer isso com as ferramentas de gerenciamento de cotas de disco incorporadas no sistema operacional.
Recuperando uma entrada única de cotas
Neste momento, já seria óbvio que as novas classes WMI encontradas no Windows Server 2003 e no Windows XP facilitam bastante o gerenciamento das configurações da cota de disco e das entradas de cota globalmente, ou seja, em todas as unidades de ucomputador. Contudo, também é possível gerenciar entradas de cota individuais. Por exemplo, o script a seguir, visualmente assustador, recupera o limite de cota para o usuário fabrikam\kenmyer na unidade C de um computador:
strComputer = "."
strDrive = "C:"
strDomain = "fabrikam"
strUser = "kenmyer"
Set objWMIService = GetObject("winmgmts:
Set objQuota = objWMIService.Get _
("Win32_DiskQuota.QuotaVolume='Win32_LogicalDisk.De viceID=" & chr(34) & strDrive & chr(34) & "'," & _
"User='Win32_Account.Domain=" & chr(34) & strDomain & chr(34) & _
",Name=" & chr(34) & strUser & chr(34) & "'")
www.cdcbrasil.com.br/ncomputing
Novamente, é isso que torna o script uma excelente forma de gerenciar itens como as cotas de disco. Investindo relativamente pouco tempo você pode criar uma ferramenta de gerenciamento que funciona exatamente como você precisa.
Casualmente, quando um usuário atinge o seu nível de cota, um evento é gravado no log ventos do sistema no computador em que a violação do limite de cota ocorreu.
Contudo, nenhuma notificação é enviada ao usuário. Ele nunca saberá que está se aproximando de seu limite de cota até tentar salvar um arquivo e tiver o acesso negado
espaço em disco disponível.
Por que mencionamos isso? Bem, você poderia facilmente escrever um script para retornar uma lista com os usuários que excederam o limite de aviso ou de cota, e solicitar que esse script envie um email para cada usuário notificando-os sobre sua situação, talvez até oferecendo sugestões para que eles possam liberar mais espaço em disco. Tente
com as ferramentas de gerenciamento de cotas de disco incorporadas no
Recuperando uma entrada única de cotas de disco
Neste momento, já seria óbvio que as novas classes WMI encontradas no Windows Server 2003 e no Windows XP facilitam bastante o gerenciamento das configurações da cota de disco e das entradas de cota globalmente, ou seja, em todas as unidades de ucomputador. Contudo, também é possível gerenciar entradas de cota individuais. Por exemplo, o script a seguir, visualmente assustador, recupera o limite de cota para o
kenmyer na unidade C de um computador:
Set objWMIService = GetObject("winmgmts: \\" & strComputer & "\ root
Set objQuota = objWMIService.Get _
("Win32_DiskQuota.QuotaVolume='Win32_LogicalDisk.De viceID=" & chr(34) & "'," & _
"User='Win32_Account.Domain=" & chr(34) & strDomain & chr(34) & _
",Name=" & chr(34) & strUser & chr(34) & "'")
renciar itens como as cotas de disco. Investindo relativamente pouco tempo você pode criar uma ferramenta de
Casualmente, quando um usuário atinge o seu nível de cota, um evento é gravado no log ventos do sistema no computador em que a violação do limite de cota ocorreu.
Contudo, nenhuma notificação é enviada ao usuário. Ele nunca saberá que está se aproximando de seu limite de cota até tentar salvar um arquivo e tiver o acesso negado
Por que mencionamos isso? Bem, você poderia facilmente escrever um script para retornar uma lista com os usuários que excederam o limite de aviso ou de cota, e solicitar
os sobre sua situação, talvez até oferecendo sugestões para que eles possam liberar mais espaço em disco. Tente
com as ferramentas de gerenciamento de cotas de disco incorporadas no
Neste momento, já seria óbvio que as novas classes WMI encontradas no Windows Server 2003 e no Windows XP facilitam bastante o gerenciamento das configurações da cota de disco e das entradas de cota globalmente, ou seja, em todas as unidades de um computador. Contudo, também é possível gerenciar entradas de cota individuais. Por exemplo, o script a seguir, visualmente assustador, recupera o limite de cota para o
root \cimv2")
("Win32_DiskQuota.QuotaVolume='Win32_LogicalDisk.De viceID=" & chr(34) &
"User='Win32_Account.Domain=" & chr(34) & strDomain & chr(34) & _
Wscript.Echo objQuota.Limit
Na verdade, a maioria dos scripts é bastante simples, com apenas uma exceção: a consuWQL usada para recuperar a entrada de cota. Como você pôde observar, a consulta é composta por E comercial, aspas simples e duplas e todos os tipos de sinais de pontuação. Não é uma bela visão (embora a belezacomo as entradas de cota individuais são rastreadas pelo WMI. Por exemplo, esta é a aparência de uma instância de entrada de cota no Wbemtest:
Em outras palavras, para o melhor ou para o pior (provavelmentepropriedade de uma entrada de cota de disco é uma amalgamação das classes Win32_DiskQuota,Win32_LogicalDiskisso.
Mas não se preocupe. O script anterior foi criado para facilitar modificações e usos. Parte do motivo de a consulta WQL tvariáveis para representar a unidade, o usuário e o domínio do usuário. Para usar o script, basta atribuir os valores corretos às três variáveis que representam essas propriedades:
strDrive = "C:"
strDomain = "fabrikam"
strUser = "kenmyer"
Modificando uma entrada das cotas de disco
As propriedades Limit e WarningLimit são leitura/gravação: isso significa que você pode usar um script para modificar os valores dessas propriedades. Por exemplo, este é script que modifica o valor da propriedadefabrikam\kenmyer:
www.cdcbrasil.com.br/ncomputing
Wscript.Echo objQuota.Limit
Na verdade, a maioria dos scripts é bastante simples, com apenas uma exceção: a consuWQL usada para recuperar a entrada de cota. Como você pôde observar, a consulta é composta por E comercial, aspas simples e duplas e todos os tipos de sinais de pontuação. Não é uma bela visão (embora a beleza esteja nos olhos de quem vê), mas é a manecomo as entradas de cota individuais são rastreadas pelo WMI. Por exemplo, esta é a aparência de uma instância de entrada de cota no Wbemtest:
Em outras palavras, para o melhor ou para o pior (provavelmente é o pior), a principal entrada de cota de disco é uma amalgamação das
Win32_LogicalDisk e Win32_Account. E não há como reverter
Mas não se preocupe. O script anterior foi criado para facilitar modificações e usos. Parte do motivo de a consulta WQL ter uma aparência tão criptográfica se deve à utilização de variáveis para representar a unidade, o usuário e o domínio do usuário. Para usar o script, basta atribuir os valores corretos às três variáveis que representam essas propriedades:
Modificando uma entrada das cotas de disco
As propriedades Limit e WarningLimit são leitura/gravação: isso significa que você pode usar um script para modificar os valores dessas propriedades. Por exemplo, este é script que modifica o valor da propriedade Limit da unidade C para o usuário
Na verdade, a maioria dos scripts é bastante simples, com apenas uma exceção: a consulta WQL usada para recuperar a entrada de cota. Como você pôde observar, a consulta é composta por E comercial, aspas simples e duplas e todos os tipos de sinais de pontuação.
nos olhos de quem vê), mas é a maneira como as entradas de cota individuais são rastreadas pelo WMI. Por exemplo, esta é a
o pior), a principal entrada de cota de disco é uma amalgamação das
. E não há como reverter
Mas não se preocupe. O script anterior foi criado para facilitar modificações e usos. Parte er uma aparência tão criptográfica se deve à utilização de
variáveis para representar a unidade, o usuário e o domínio do usuário. Para usar o script, basta atribuir os valores corretos às três variáveis que representam essas propriedades:
As propriedades Limit e WarningLimit são leitura/gravação: isso significa que você pode usar um script para modificar os valores dessas propriedades. Por exemplo, este é um
da unidade C para o usuário
strComputer = "."
strDrive = "C:"
strDomain = "fabrikam"
strUser = "kenmyer"
Set objWMIService = GetObject("winmgmts:
Set objQuota = objWMIService.Get _
("Win32_DiskQuota.QuotaVolume='Win32_LogicalDisk.De viceID=" & chr(34) & strDrive & chr(34) & "'," & _
"User='Win32_Account.Domain=" & chr(34) & strDomain & chr(34) & _
",Name=" & chr(34) & strUser & c
objQuota.Limit = 11111111
objQuota.Put_
Como sempre, verifique se chamou o métodométodo Put_ não for chamado, não haverá geração de erros e nenhuma mudança será realizada na entrada de cota.
Claro que você também poderia alterar a propriedadeunidade. Este é um script que fará exatamente isso:
strComputer = "."
Set objWMIService = GetObject("winmgmts:
Set colDiskQuotas = objWMIServi
("Select * from Win32_DiskQuota Where QuotaVolume = 'C:
For Each objQuota in colDiskQuotas
objQuota.Limit = 11111111
objQuota.Put_ Next
Excluindo uma entrada das cotas de disco
Às vezes, o gerenciamento das cotas de disco não envolveequações matemáticas simples. Por exemplo, imagine que você tem 100 usuários e 100 GB de espaço disponível em disco. Se desejasquantidade de espaço em disco disponível pelo número de usuários e, assim, alocar 1 GB para cada um deles.
Claro que esse tipo de cálculo é útil apenas se os números envolvidos forem válidos. Se você tiver 50 usuários, pode estar enganando a todos, mas se forem 200 você estará
www.cdcbrasil.com.br/ncomputing
Set objWMIService = GetObject("winmgmts: \\" & strComputer & "\ root
objQuota = objWMIService.Get _
("Win32_DiskQuota.QuotaVolume='Win32_LogicalDisk.De viceID=" & chr(34) & strDrive & chr(34) & "'," & _
"User='Win32_Account.Domain=" & chr(34) & strDomain & chr(34) & _
",Name=" & chr(34) & strUser & c hr(34) & "'")
objQuota.Limit = 11111111
Como sempre, verifique se chamou o método Put_ depois de atribuir novos valores. Se o método Put_ não for chamado, não haverá geração de erros e nenhuma mudança será realizada na entrada de cota.
que você também poderia alterar a propriedade Limit para todos os usuários da unidade. Este é um script que fará exatamente isso:
Set objWMIService = GetObject("winmgmts: \\" & strComputer & "\ root
Set colDiskQuotas = objWMIServi ce.ExecQuery _
("Select * from Win32_DiskQuota Where QuotaVolume = 'C: \\ '")
For Each objQuota in colDiskQuotas
objQuota.Limit = 11111111
Excluindo uma entrada das cotas de disco
o gerenciamento das cotas de disco não envolve mais do que solucionar equações matemáticas simples. Por exemplo, imagine que você tem 100 usuários e 100 GB de espaço disponível em disco. Se desejasse, você poderia simplesmente dividir a quantidade de espaço em disco disponível pelo número de usuários e, assim, alocar 1 GB
Claro que esse tipo de cálculo é útil apenas se os números envolvidos forem válidos. Se s, pode estar enganando a todos, mas se forem 200 você estará
root \cimv2")
("Win32_DiskQuota.QuotaVolume='Win32_LogicalDisk.De viceID=" & chr(34) &
"User='Win32_Account.Domain=" & chr(34) & strDomain & chr(34) & _
depois de atribuir novos valores. Se o método Put_ não for chamado, não haverá geração de erros e nenhuma mudança será
para todos os usuários da
root \cimv2")
'")
mais do que solucionar equações matemáticas simples. Por exemplo, imagine que você tem 100 usuários e 100
se, você poderia simplesmente dividir a quantidade de espaço em disco disponível pelo número de usuários e, assim, alocar 1 GB
Claro que esse tipo de cálculo é útil apenas se os números envolvidos forem válidos. Se s, pode estar enganando a todos, mas se forem 200 você estará
alocando mais espaço em disco do que o total disponível. Por isso, é necessário manter o controle sobre o total de espaço em disco disponível e o número de entradas de cota na unidade. E para fazê-lo posteriormente, será necessário excluir rotineiramente as entradas de cota inválidas, como por exemplo, as entradas de cota de indivíduos que não pertencem mais à organização ou que não têm mais acesso à unidade. (Você terá que fazer isso manualmente, porque as entradas de cotasempre que uma conta de usuário é excluída.) Felizmente, essa é outra tarefa que pode ser realizada com um script.
Para excluir uma entrada de cota, tudo o que você tem a fazer é se conectar a eentrada e então chamar o métodogravar as alterações no sistema operacional. Em vez disso, no momento que chamar o método Delete_, a entrada de cota será excluída.
Este é um script que exclui a entradfabrikam\kenmyer:
Como sempre, verifique se chamou o métodométodo Put_ não for chamado, não haverá geração de erros e nenhuma mudança será realizada na entrada de cota.
Claro que você também poderia alterar a propriedadeunidade. Este é um script que fará exatamente isso:
strComputer = "."
strDrive = "C:"
strDomain = "fabrikam"
strUser = "kenmyer"
Set objWMIService = GetObject("winmgmts:
Set objQuota = objWMIService.Get _
("Win32_DiskQuota.QuotaVolume='Win32_LogicalDisk.De viceID=" & chr(34) & strDrive & chr(34) & "'," & _
"User='Win32_Account.Domain=" & chr(34) & strDomain & chr(34) & _
",Name=" & chr(34) & strUser & chr(34) & "'")
objQuota.Delete_
www.cdcbrasil.com.br/ncomputing
alocando mais espaço em disco do que o total disponível. Por isso, é necessário manter o controle sobre o total de espaço em disco disponível e o número de entradas de cota na
lo posteriormente, será necessário excluir rotineiramente as entradas de cota inválidas, como por exemplo, as entradas de cota de indivíduos que não pertencem mais à organização ou que não têm mais acesso à unidade. (Você terá que
, porque as entradas de cota não são automaticamente apagadas sempre que uma conta de usuário é excluída.) Felizmente, essa é outra tarefa que pode ser realizada com um script.
Para excluir uma entrada de cota, tudo o que você tem a fazer é se conectar a eentrada e então chamar o método Delete_. Não é necessário chamar o método Put_ para gravar as alterações no sistema operacional. Em vez disso, no momento que chamar o método Delete_, a entrada de cota será excluída.
Este é um script que exclui a entrada de cota da unidade C para o usuário
Como sempre, verifique se chamou o método Put_ depois de atribuir novos valores. Se o método Put_ não for chamado, não haverá geração de erros e nenhuma mudança será realizada na entrada de cota.
o que você também poderia alterar a propriedade Limit para todos os usuários da unidade. Este é um script que fará exatamente isso:
Set objWMIService = GetObject("winmgmts: \\" & strComputer & "\ root
Set objQuota = objWMIService.Get _
("Win32_DiskQuota.QuotaVolume='Win32_LogicalDisk.De viceID=" & chr(34) & strDrive & chr(34) & "'," & _
"User='Win32_Account.Domain=" & chr(34) & strDomain & chr(34) & _
",Name=" & chr(34) & strUser & chr(34) & "'")
alocando mais espaço em disco do que o total disponível. Por isso, é necessário manter o controle sobre o total de espaço em disco disponível e o número de entradas de cota na
lo posteriormente, será necessário excluir rotineiramente as entradas de cota inválidas, como por exemplo, as entradas de cota de indivíduos que não pertencem mais à organização ou que não têm mais acesso à unidade. (Você terá que
são automaticamente apagadas sempre que uma conta de usuário é excluída.) Felizmente, essa é outra tarefa que pode
Para excluir uma entrada de cota, tudo o que você tem a fazer é se conectar a essa . Não é necessário chamar o método Put_ para
gravar as alterações no sistema operacional. Em vez disso, no momento que chamar o
a de cota da unidade C para o usuário
depois de atribuir novos valores. Se o método Put_ não for chamado, não haverá geração de erros e nenhuma mudança será
para todos os usuários da
root \cimv2")
("Win32_DiskQuota.QuotaVolume='Win32_LogicalDisk.De viceID=" & chr(34) &
"User='Win32_Account.Domain=" & chr(34) & strDomain & chr(34) & _
Lembre-se de que a exclusão de uma entrada de cota não afeta a capacidade do usuário de armazenar arquivos na unidade. Suponha que você excluiu a entrada de cota para Ken Myer e, em seguida, ele tenta armazenar um arquivo nessa unidade. Ken terá seu acesso negado à unidade? Não, ele poderá salvar o arquivo e uma nova entrada de cota será criada para ele. Se quiser evitar que um usuário salve arquivos em uma unidade, você terá que usar as permissões NTFS em vez das cotas de disco.
Lembre-se também de que não é possível excluir uma entrada de cota para qualquer usuário que possua arquivos armazenados na unidade. Para isso, será necessário excluir ou mover esses arquivos, ou ainda apropriar
Criando uma nova entrada das cotas de disco
Conforme observado anteriormente, não é preciso criar uma nova entrada de cota para cada novo usuário que salvar um arquivo na unidade. É para isso que a cota e os limites aviso padrão existem. Quando um usuário salva um arquivo, o sistema operacional verifica o usuário e suas definições de cota. Se o usuário não possuir uma entrada de cota existente, o sistema criará automaticamente uma nova com base nas configurações padrão. Isso facilita bastante a administração das cotas de disco.
No entanto, pode haver casos em que você não queira aplicar essas configurações padrão a um usuário. Por exemplo, talvez você queira atribuir mais espaço em disco para artistas gráficos do que o concedido às recepcionistas. Em um caso como este, você poderia esperar até que o artista gráfico salvasse um arquivo no disco, gerando assim uma nova entrada de cota com base nas configurações padrão, e, em seguida, usar um script para modificá-las. Alternativamente, você poderia economizar tempo e evitar problemas usando um script para criar uma entrada de cota antecipadamente, atribuindo espaço em disco adicional para esse usuário, desde o princípio.
Seja prevenido: o script para criar uma nova entrascript de exemplo também foi criado para facilitar o uso: tudo o que você precisa fazer é atribuir os valores corretos para a unidade, o nome de usuário e o domínio. Então poderá usá-lo na forma como está.
strComputer = "."
strDrive = "C:"
strDomain = "fabrikam"
strUser = "kenmyer"
Set objWMIService = GetObject("winmgmts:
Set objAccount = objWMIService.Get _
www.cdcbrasil.com.br/ncomputing
se de que a exclusão de uma entrada de cota não afeta a capacidade do usuário de armazenar arquivos na unidade. Suponha que você excluiu a entrada de cota para Ken
ele tenta armazenar um arquivo nessa unidade. Ken terá seu acesso negado à unidade? Não, ele poderá salvar o arquivo e uma nova entrada de cota será criada para ele. Se quiser evitar que um usuário salve arquivos em uma unidade, você terá
issões NTFS em vez das cotas de disco.
se também de que não é possível excluir uma entrada de cota para qualquer usuário que possua arquivos armazenados na unidade. Para isso, será necessário excluir
arquivos, ou ainda apropriar-se deles antes de excluir a entrada de cota.
Criando uma nova entrada das cotas de disco
Conforme observado anteriormente, não é preciso criar uma nova entrada de cota para cada novo usuário que salvar um arquivo na unidade. É para isso que a cota e os limites aviso padrão existem. Quando um usuário salva um arquivo, o sistema operacional verifica o usuário e suas definições de cota. Se o usuário não possuir uma entrada de cota existente, o sistema criará automaticamente uma nova com base nas configurações
drão. Isso facilita bastante a administração das cotas de disco.
No entanto, pode haver casos em que você não queira aplicar essas configurações padrão a um usuário. Por exemplo, talvez você queira atribuir mais espaço em disco para artistas
e o concedido às recepcionistas. Em um caso como este, você poderia esperar até que o artista gráfico salvasse um arquivo no disco, gerando assim uma nova entrada de cota com base nas configurações padrão, e, em seguida, usar um script para
lternativamente, você poderia economizar tempo e evitar problemas usando um script para criar uma entrada de cota antecipadamente, atribuindo espaço em disco adicional para esse usuário, desde o princípio.
Seja prevenido: o script para criar uma nova entrada de cota parece estranho. Contudo, o script de exemplo também foi criado para facilitar o uso: tudo o que você precisa fazer é atribuir os valores corretos para a unidade, o nome de usuário e o domínio. Então poderá
lo na forma como está.
Set objWMIService = GetObject("winmgmts: \\" & strComputer & "\ root
Set objAccount = objWMIService.Get _
se de que a exclusão de uma entrada de cota não afeta a capacidade do usuário de armazenar arquivos na unidade. Suponha que você excluiu a entrada de cota para Ken
ele tenta armazenar um arquivo nessa unidade. Ken terá seu acesso negado à unidade? Não, ele poderá salvar o arquivo e uma nova entrada de cota será criada para ele. Se quiser evitar que um usuário salve arquivos em uma unidade, você terá
se também de que não é possível excluir uma entrada de cota para qualquer usuário que possua arquivos armazenados na unidade. Para isso, será necessário excluir
es antes de excluir a entrada de cota.
Conforme observado anteriormente, não é preciso criar uma nova entrada de cota para cada novo usuário que salvar um arquivo na unidade. É para isso que a cota e os limites de aviso padrão existem. Quando um usuário salva um arquivo, o sistema operacional verifica o usuário e suas definições de cota. Se o usuário não possuir uma entrada de cota existente, o sistema criará automaticamente uma nova com base nas configurações
No entanto, pode haver casos em que você não queira aplicar essas configurações padrão a um usuário. Por exemplo, talvez você queira atribuir mais espaço em disco para artistas
e o concedido às recepcionistas. Em um caso como este, você poderia esperar até que o artista gráfico salvasse um arquivo no disco, gerando assim uma nova entrada de cota com base nas configurações padrão, e, em seguida, usar um script para
lternativamente, você poderia economizar tempo e evitar problemas usando um script para criar uma entrada de cota antecipadamente, atribuindo espaço em
da de cota parece estranho. Contudo, o script de exemplo também foi criado para facilitar o uso: tudo o que você precisa fazer é atribuir os valores corretos para a unidade, o nome de usuário e o domínio. Então poderá
root \cimv2")
("Win32_Account.Domain='" & strDomain & "',Name='" & strUser & "'")
Set objDisk = objWMIService.Get _
("Win32_LogicalDisk.DeviceID='" & strDrive & "'")
Set objQuota = objWMIService.Get _
("Win32_DiskQuota").SpawnInstance_
objQuota.QuotaVolume = objDisk.Path_.RelPath
objQuota.User = objAccount.Path_.RelPath
objQuota. Limit = 10485760
objQuota.WarningLimit = 8388608
objQuota.Put_
Sim, sabemos: esse script é um pouco mais complicado do que os outros. Isso se deve em grande parte ao fato de que precisamos criar referências de objeto que representam a conta do usuário (objAccount) e a unidade em que a entrada de cota será criada (objDisk). É o que fazemos nessas duas linhas de código:
Set objAccount = objWMIService.Get _
("Win32_Account.Domain='" & strDomain & "',Name='" & strUser & "'")
Set objDisk = objWMIService.G
("Win32_LogicalDisk.DeviceID='" & strDrive & "'")
Assim que conseguimos essas duas referências de objeto, podemos usar o método SpawnInstance_ para criar uma entrada de cota em branco. Depois, simplesmente especificamos os valores das propriedadesWarningLimit. A parte complicada é a utilização da propriedade Path_.RelPath das duas referências de objeto ao definir os valores das propriedades QuotaVolume e User. Os valores da propriedade Path_.RelPath para a unidade de disuma aparência semelhante a esta:
Win32_LogicalDisk.DeviceID="C:"
Win32_UserAccount.Domain="fabrikam",Name="kenmyer"
Usamos a propriedade Path_.RelPath convenientemente: é um pouco mais clara e limpa do que aquelas outras seqüêncaspas duplas e simples.
E, claro, o método Put_ é usado para criar a entrada de cota.
www.cdcbrasil.com.br/ncomputing
("Win32_Account.Domain='" & strDomain & "',Name='" & strUser & "'")
t objDisk = objWMIService.Get _
("Win32_LogicalDisk.DeviceID='" & strDrive & "'")
Set objQuota = objWMIService.Get _
("Win32_DiskQuota").SpawnInstance_
objQuota.QuotaVolume = objDisk.Path_.RelPath
objQuota.User = objAccount.Path_.RelPath
Limit = 10485760
objQuota.WarningLimit = 8388608
Sim, sabemos: esse script é um pouco mais complicado do que os outros. Isso se deve em grande parte ao fato de que precisamos criar referências de objeto que representam a
Account) e a unidade em que a entrada de cota será criada (objDisk). É o que fazemos nessas duas linhas de código:
Set objAccount = objWMIService.Get _
("Win32_Account.Domain='" & strDomain & "',Name='" & strUser & "'")
Set objDisk = objWMIService.G et _
("Win32_LogicalDisk.DeviceID='" & strDrive & "'")
Assim que conseguimos essas duas referências de objeto, podemos usar o para criar uma entrada de cota em branco. Depois,
simplesmente especificamos os valores das propriedades QuotaVolume, User, Limit e WarningLimit. A parte complicada é a utilização da propriedade Path_.RelPath das duas referências de objeto ao definir os valores das propriedades QuotaVolume e User. Os
alores da propriedade Path_.RelPath para a unidade de disco e para o usuário possuem uma aparência semelhante a esta:
Win32_LogicalDisk.DeviceID="C:"
Win32_UserAccount.Domain="fabrikam",Name="kenmyer"
Usamos a propriedade Path_.RelPath convenientemente: é um pouco mais clara e limpa do que aquelas outras seqüências de caracteres concatenadas e complicadas E comercial,
E, claro, o método Put_ é usado para criar a entrada de cota.
("Win32_Account.Domain='" & strDomain & "',Name='" & strUser & "'")
Sim, sabemos: esse script é um pouco mais complicado do que os outros. Isso se deve em grande parte ao fato de que precisamos criar referências de objeto que representam a
Account) e a unidade em que a entrada de cota será criada (objDisk).
("Win32_Account.Domain='" & strDomain & "',Name='" & strUser & "'")
Assim que conseguimos essas duas referências de objeto, podemos usar o para criar uma entrada de cota em branco. Depois,
QuotaVolume, User, Limit e WarningLimit. A parte complicada é a utilização da propriedade Path_.RelPath das duas referências de objeto ao definir os valores das propriedades QuotaVolume e User. Os
co e para o usuário possuem
Usamos a propriedade Path_.RelPath convenientemente: é um pouco mais clara e limpa ias de caracteres concatenadas e complicadas E comercial,