是否有任何 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