2017-12-11 21 views
2

フォルダやファイルを右クリックしてから、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

あなたは$ 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がうまくいかない理由です。 (値が真/偽であるため、非典型的なメニュー項目でもあります)。

私はそれを、次の「pinning」の方法を行うにしようとするだろう:

これらのビットを使用しています
$path = “\\path_to\shared\folder” 
$objWMI = [wmiclass]”\\.\root\cimv2:win32_offlinefilescache” 
$objWMI.Pin($path, 0x00001221, $true) 

:あなたはこれを試すのユーザーのフォルダ/ファイルをピンする必要がある場合は

0x00001221

OfflineFilesPinControlFlagFill (0x00000001)

アイテムを固定するだけでなくアイテムを埋めます。これにより、アイテムはピン操作の一部として完全にキャッシュされます。このフラグが に設定されていない場合、項目は固定されており、他のいくつかの 同期手段によって満たされるのを待たなければなりません。オフラインファイルサービス は、バックグラウンドでファイルを定期的に埋め込むことに注意してください。即時オフラインの の可用性が必要ない場合は、 に設定するのがパフォーマンス上の方が良い場合があります。このフラグを設定しないと、サービスはバックグラウンドでファイルを埋めます。

OfflineFilesPinControlFlagForUser (0x00000020)

ピン呼び出し元のユーザーのためのアイテム。これは通常この関数の呼び出し側に設定されるフラグです。 オフラインファイルは、ユーザーごとの実際のピン割り当ての概念をサポートしていないことに注意することが重要です。 アイテムがユーザーのために固定されると、そのアイテムはその マシンのすべてのユーザーに固定されます。このフラグで固定されているアイテムは、そのファイルにアクセスできるユーザーの によって固定解除できます。その固定された ファイルにアクセスする能力は、 オンライン中に計算されたそのファイルへのユーザーのアクセス権に依存します。将来の使用のために予約

OfflineFilesPinControlFlagLowPriority (0x00000200)

。 はOfflineFilesPinControlFlagInteractiveフラグが設定されていない場合、このフラグは無視され

OfflineFilesPinControlFlagConsole (0x00001000)

(私はシステムを詰まらせないLowPriorityであるため、この1を使用したいです)。 OfflineFilesPinControlFlagInteractiveフラグが に設定されている場合、このフラグは、操作を呼び出すプロセスに関連付けられたコンソールウィンドウ に生成されたUIが送信されるべきであることを示します。

関連する問題