Не удается найти серверы D C и их использование диска - PullRequest
0 голосов
/ 23 апреля 2020

, поэтому я застрял с этим заданием, где мне нужно найти все серверы D C и их использование диска

Я сначала попытался получить все серверы D C, а затем добавить информацию об использовании диска но это не работает

$getdomain = [System.Directoryservices.Activedirectory.Domain]::GetCurrentDomain() 
$getdomain | ForEach-Object {$_.DomainControllers} |  
ForEach-Object { 
$hEntry= [System.Net.Dns]::GetHostByName($_.Name) 
New-Object -TypeName PSObject -Property @{ 
  Name = $_.Name 
  IPAddress = $hEntry.AddressList[0].IPAddressToString 
 } 
} | get-wmiobject -class win32_logicaldisk | select-object pscomputername,deviceid,freespace,size 

1 Ответ

0 голосов
/ 23 апреля 2020

Для вашей задачи у вас есть несколько бесполезных строк кода в вашем коде. Вы скопировали код откуда-то? ;-) Я бы посоветовал не спеша начать сначала изучать основы Powershell.

Это все, что вам нужно:

$DCList = [System.Directoryservices.Activedirectory.Domain]::GetCurrentDomain().DomainControllers
foreach ($DC in $DCList) {
    Get-CimInstance -ClassName win32_logicaldisk -ComputerName $DC.Name | 
        Select-Object -Property pscomputername, deviceid, freespace, size
}

Вывод: вы должны удалить то, что имеете внутри l oop из вашего скопированного кода и замените его тем, что вы добавили в конце. ; -)

...