我正在尝试将某些文件从本地位置复制到只能通过特定用户访问的网络位置-到目前为止,我已经拥有
Import-Module bitstransfer
$username = "domain\user"
$password = Get-Content 'C:\securestring.txt' | ConvertTo-SecureString -AsPlainText -Force
$cred = new-object -typename System.Management.Automation.PSCredential `
-argumentlist ($username, $password)
$sourcePath = 'C:\folder\file.csv', 'C:\folder\file2.csv'
$destPath = '\\server\share$\', '\\server\share$\'
Start-BitsTransfer -Source $sourcePath -Destination $destPath -Credential $cred
我在身份验证方面遇到问题,脚本似乎无法通过
传递参数更新:似乎按预期存在位传输处理-creds的错误,为了成功,必须执行net use命令手动建立连接。
感谢您的投入!
答案 0 :(得分:0)
这些服务器是否在同一域中?
两台服务器的信誉相同吗?
如果这是多个域中的服务器,则可能是Windows双跳身份验证问题。请参阅有关该主题的文章。
我只是在我的WS2K12实验之一中进行了以下操作,并且按预期方式工作,但是我只有一个目录林单个域,并且仅在一台服务器上执行了此操作。
PS C:\Scripts> Test-Path -Path '\\FileServer01\Data'
True
PS C:\Scripts> Test-Path -Path '\\FileServer01\TargetShare$'
True
PS C:\Scripts> Get-ChildItem -Path '\\FileServer01\Data\*.*'
Directory: \\FileServer01\Data
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 11/17/2017 3:57 AM 176640 High_Impact_Data.docx
-a--- 11/17/2017 3:57 AM 184320 Low_Impact_Data.docx
-a--- 2/12/2018 4:00 PM 64 New Text Document.txt
PS C:\Scripts> Get-ChildItem -Path '\\FileServer01\TargetShare$\'
PS C:\Scripts> Copy-Item -Path '\\FileServer01\Data\*.*' -Destination '\\FileServer01\TargetShare$\'
PS C:\Scripts> Get-ChildItem -Path '\\FileServer01\TargetShare$\'
Directory: \\FileServer01\TargetShare$
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 11/17/2017 3:57 AM 176640 High_Impact_Data.docx
-a--- 11/17/2017 3:57 AM 184320 Low_Impact_Data.docx
-a--- 2/12/2018 4:00 PM 64 New Text Document.txt
PS C:\Scripts> Import-Module -Name BitsTransfer
PS C:\Scripts> Get-ChildItem -Path '\\FileServer01\TargetShare$\'
PS C:\Scripts> Start-BitsTransfer -Source '\\FileServer01\Data\*.*' -Destination '\\FileServer01\TargetShare$\'
PS C:\Scripts> Get-ChildItem -Path '\\FileServer01\TargetShare$\'
Directory: \\FileServer01\TargetShare$
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 11/17/2017 3:57 AM 176640 High_Impact_Data.docx
-a--- 11/17/2017 3:57 AM 184320 Low_Impact_Data.docx
-a--- 2/12/2018 4:00 PM 64 New Text Document.txt
OP更新
至此...
“不同的域,但信誉相同”
是说同一个林,具有多个域或一个域位于单独的林中?
在任何一种情况下,默认的双向传递信任都到位吗? (如果不是,则它们是不同的名称空间,除非您通过两组具有适当域标识的凭据,否则Auth将会失败)
当您说的时候,信誉是一样的,这是否意味着该帐户存在于每个域中?该使用帐户可以同时存在,但这仍然意味着信誉不同,因为需要指定域?
因此,domain1 \ postanote与domain2 \ postanote不同。但是,如果您使用UPN,域提示等作为用户身份,则它比NetBios更灵活。
这当然是所有ADDS的要求,并且不仅是对PowerShell的限制,而且对需要Auth的任何事物都具有限制。
答案 1 :(得分:0)
您的目标路径应具有提及的文件名:
Start-BitsTransfer -Source 'C:\folder\file.csv', 'C:\folder\file2.csv' -Destination '\\server\share$\file.csv', '\\server\share$\file2.csv' -Credential $cred
或者您需要像这样包装变量:
$destPath = "$('\\server\share$\file.csv', '\\server\share$\file2.csv')"
此外,如果您希望动态获取文件名,那么使用foreach
循环并对其进行寻址是一种完美的方案。
希望有帮助。