我正在尝试自动执行右键单击文件夹或文件,然后在Windows 7 +中单击“始终可用脱机”的过程。
我无法找到任何命令或批处理方式来执行此操作。到目前为止,我发现这个PowerShell脚本模拟了上下文菜单项上的右键单击操作(在我的情况下,总是可以脱机使用)。
$o = New-Object -ComObject Shell.Application
$o.Namespace("Z:\").Self.verbs() | `
Where-Object { $_.Name -eq 'Always &available offline' } | `
ForEach-Object { $_.DoIt() }
它不起作用。
如果我尝试传递文件夹或UNC路径而不是驱动器(假设Z:\foldertomakeavailableoffline
),我得到的只是“你不能在空值表达式上调用方法。”好像我指定的文件夹不存在。
感谢任何帮助。
感谢。
答案 0 :(得分:0)
如果您发布$ o.Namespace(" Z:\")。Self.verbs()结果将会非常有用:
我是:Name
----
&Open
Git &Add all files now
Git &Commit Tool
Git &History
Git &Gui
Git Ba&sh
Scan for Viruses...
Hg &Workbench
Restore previous &versions
Combine files in Acrobat...
Select &Left Folder for Compare
&Disconnect
&Copy
Create &shortcut
Rena&me
P&roperties
在我看来,这里的问题是你没有看到它,这就是id无效的原因。 (它也是非典型菜单项,因为值为true / false)。
我会尝试执行以下操作" pinning"方式:
如果您需要为用户固定文件夹/文件,请尝试以下操作:
$path = “\\path_to\shared\folder”
$objWMI = [wmiclass]”\\.\root\cimv2:win32_offlinefilescache”
$objWMI.Pin($path, 0x00001221, $true)
使用这些位:
0x00001221
OfflineFilesPinControlFlagFill (0x00000001)
除了固定项目外,还填充项目。这导致项目作为引脚操作的一部分被完全缓存。如果没有这个标志 设置,该项目仅固定,必须等待其他人填写 同步手段。请注意脱机文件服务 定期在后台填写文件。如果立即离线 可用性不是必需的,它可能更好(性能方面) 不设置此标志,让服务在后台填写文件。
OfflineFilesPinControlFlagForUser (0x00000020)
为主叫用户定位项目。这是通常为此函数的调用者设置的标志。重要的是要注意到这一点 脱机文件不支持真正的每用户固定概念。什么时候 一个项目固定为一个用户,它固定为所有用户 机。使用此标志固定的项目可以由any取消固定 有权访问该文件的用户。访问固定的能力 文件取决于用户对计算的文件的访问权限 在线。
OfflineFilesPinControlFlagLowPriority (0x00000200)
保留供将来使用。 (我喜欢使用这个,因为LowPriority不会阻塞系统)
OfflineFilesPinControlFlagConsole (0x00001000)
如果未设置OfflineFilesPinControlFlagInteractive标志,则忽略此标志。如果是OfflineFilesPinControlFlagInteractive标志 set,此标志表示应该将生成的任何UI定向到 与调用操作的进程关联的控制台窗口。