Fora da caixa, as informações do computador / site não são armazenadas no AD. MAS, não há nada que o impeça de colocá-lo lá. Você pode implantar um script de inicialização do computador ou uma tarefa agendada nos computadores do domínio para que cada computador grave seu valor de site atualmente atribuído a um atributo em seu próprio objeto de computador do AD. Apenas dê permissão ao diretor de segurança 'SELF' para modificar qualquer atributo não usado que você decidir usar em objetos de computador descendentes. Essa informação pode ser facilmente consultada para determinar quais clientes estão associados a qual site. Certifique-se de que seu script seja responsável por clientes não associados.
Aqui está um exemplo de script do PowerShell que pode ser executado a partir de um cliente Windows associado ao domínio e não requer a importação de módulos adicionais do PowerShell. Isso gravará o valor atual do site AD no atributo 'extensionattribute8' do objeto de computador no AD:
$obj = new-object -com ADSystemInfo
$type = $obj.gettype()
$adsite = $type.InvokeMember("sitename","GetProperty",$null,$obj,$null)
if($adsite -eq $null){$adsite = "UNKNOWN"}
$root = [ADSI]"LDAP://DC=Contoso,DC=com"
$search = [adsisearcher]$root
$name = $ENV:COMPUTERNAME
$Search.Filter = "(&(SamAccountName=$name$))"
$computer = $Search.FindOne() | foreach{$cproperties=$_.GetDirectoryEntry()}
$adsiteinad = $cproperties.extensionattribute8
if($adsiteinad -eq $adsite){}else{
$cproperties.extensionattribute8 = [string]$adsite
$cproperties.SetInfo()
}
Apenas substitua DC = Contoso, DC = com pelo nome distinto do seu domínio e substitua 'extensionattribute8' por qualquer atributo de valor único não utilizado disponível. Em seguida, forneça a permissão de leitura / gravação principal 'SELF' ao atributo que segmenta objetos de computador descendentes. Execute o script como uma tarefa agendada SYSTEM ou em um script de inicialização do computador do PowerShell e ele preencherá o atributo no objeto de computador do domínio. O script compara o valor do atributo atual com o nome do site e só tenta gravar no AD se eles não corresponderem. Isso é para evitar gravações desnecessárias no AD. Obviamente, você deve testar isso antes de aplicá-lo em um grande número de computadores.
Em seguida, você pode consultar seu domínio para todos os computadores atribuídos a um site específico usando este comando do PowerShell:
Get-ADComputer -Filter 'extensionAttribute8 -eq "SITENAME"'