自动从所有域计算机检索一组文件

自动从所有域计算机检索一组文件

是否有任何 PowerShell 脚本或免费或商业实用软件可以根据需要在服务器上运行,并将特定文件集从所有可见域计算机上的特定位置复制回中心位置?

因此,它可能会建立一个 Windows 域计算机列表,并尝试访问 C: 驱动器上的特定位置,并将我感兴趣的文件复制回服务器。

在这里使用登录脚本并不可行。

答案1

我不是公司的 IT 员工,所以我没有完全运行过此代码,所以它可能存在一些错误。

$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

相关内容