Я не являюсь сотрудником ИТ в своей фирме, поэтому я не выполнил этот код полностью, поэтому в нем могут быть некоторые ошибки.
$strCategory = "computer"
$objDomain = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.Filter = ("(objectCategory=$strCategory)")
$colProplist = "name"
$s = foreach ($i in $colPropList){$objSearcher.PropertiesToLoad.Add($i)}
$colResults = $objSearcher.FindAll()
$computers = $colResults |% {$_.Properties} |% {$_.name} | sort | select {"\\" + $_}
foreach ($computer in $computers)
{
$path = "YourFolder/YourFile.txt"
$computerPath = Join-Path -Path $computer -ChildPath $path
$computerPath # Or do a Get-Child instead of defining YourFile.txt
Copy-Item -Path $computerPath -Destination 'C:\test.txt'
}
Если вы столкнулись с проблемой с учетными данными, вот как вы создаете сетевой диск, с помощью которого вы можете предоставить учетные данные:
$pwd = ConvertTo-SecureString "SuperSecurePassword" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential("Administrator", $pwd)
$pd = New-PSDrive -Name O -PSProvider FileSystem -Root $remotePath -Credential $cred
И просто переключите $ computer с помощью $ pd.
Не забудьте закрыть его потом, с
Remove-PSDrive -Name O