复制到网络共享不适用于 powershell Copy-Item
Copying to network share does not work with powershell Copy-Item
我尝试在 Windows10 中使用 powershell 将安装文件夹复制到网络共享(linux 上的 samba)
powershell.exe -Version 5 -Command "Copy-Item -Force -Path 'install' -Recurse -Destination
'\\intranet.server.com\install'" -Container
它总是失败,即使可以在资源管理器中写入文件并且我可以访问,并且有很多这样的消息:
Copy-Item : The target file "\intranet.server.com\install\a\b\c" is a directory, not a file.
删除任何现有文件夹适用于 Remove-Item '\intranet.server.com\install\*' -Force -Recurse
我不知道它是否与凭据有关,我该如何调试它?
问题出在Windows的SMB2 Redirector Cache:
我们需要通过以下操作暂时禁用烦人的缓存:
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
Start-Process PowerShell -Verb RunAs "-NoProfile -ExecutionPolicy Bypass -Command `"cd '$pwd'; & '$PSCommandPath';`"";
exit;
}
$c = Get-SmbClientConfiguration
$dc=$c.DirectoryCacheLifetime
$fc=$c.FileInfoCacheLifetime
$fnc=$c.FileNotFoundCacheLifetime
Set-SmbClientConfiguration -Force -DirectoryCacheLifetime 0 -FileInfoCacheLifetime 0 -FileNotFoundCacheLifetime 0
// Normal kopieren hier !!!!
Set-SmbClientConfiguration -Force -DirectoryCacheLifetime $dc -FileInfoCacheLifetime $fc -FileNotFoundCacheLifetime $fnc
这很麻烦,但解决了问题。
我尝试在 Windows10 中使用 powershell 将安装文件夹复制到网络共享(linux 上的 samba)
powershell.exe -Version 5 -Command "Copy-Item -Force -Path 'install' -Recurse -Destination
'\\intranet.server.com\install'" -Container
它总是失败,即使可以在资源管理器中写入文件并且我可以访问,并且有很多这样的消息:
Copy-Item : The target file "\intranet.server.com\install\a\b\c" is a directory, not a file.
删除任何现有文件夹适用于 Remove-Item '\intranet.server.com\install\*' -Force -Recurse
我不知道它是否与凭据有关,我该如何调试它?
问题出在Windows的SMB2 Redirector Cache:
我们需要通过以下操作暂时禁用烦人的缓存:
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
Start-Process PowerShell -Verb RunAs "-NoProfile -ExecutionPolicy Bypass -Command `"cd '$pwd'; & '$PSCommandPath';`"";
exit;
}
$c = Get-SmbClientConfiguration
$dc=$c.DirectoryCacheLifetime
$fc=$c.FileInfoCacheLifetime
$fnc=$c.FileNotFoundCacheLifetime
Set-SmbClientConfiguration -Force -DirectoryCacheLifetime 0 -FileInfoCacheLifetime 0 -FileNotFoundCacheLifetime 0
// Normal kopieren hier !!!!
Set-SmbClientConfiguration -Force -DirectoryCacheLifetime $dc -FileInfoCacheLifetime $fc -FileNotFoundCacheLifetime $fnc
这很麻烦,但解决了问题。