2017-12-11 3 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라고 가정) 은 "null 값 식에서 메서드를 호출 할 수 없습니다."라는 메시지가 나타납니다.처럼 내가 지정한 폴더가 존재하지 않습니다.

도움을 주시면 감사하겠습니다.

감사합니다.

답변

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)

호출 사용자에 대한 항목이 없습니다. 이것은 일반적으로이 함수의 호출자에 대해 설정된 플래그입니다. 오프라인 파일 은 실제 사용자 별 고정 개념을 지원하지 않는다는 점에 유의해야합니다. 사용자가 항목을 고정하면 해당 기기의 사용자의 모든 사용자가 고정됩니다. 이 플래그로 고정 된 항목은 해당 파일에 액세스 할 수있는 사용자 에 의해 고정 해제 될 수 있습니다. 고정 된 파일에 액세스하는 기능은 온라인 상태에서 계산 된 해당 파일에 대한 사용자의 액세스 권한에 따라 다릅니다.

OfflineFilesPinControlFlagLowPriority (0x00000200)

는 향후 사용을 위해 예약되어 있습니다. 는 OfflineFilesPinControlFlagInteractive 플래그가 설정되어 있지 않은 경우이 플래그는 무시됩니다

OfflineFilesPinControlFlagConsole (0x00001000)

(I는이 시스템을 방해하지 LowPriority입니다이 하나를 사용하려면). OfflineFilesPinControlFlagInteractive 플래그가 으로 설정된 경우이 플래그는 생성 된 모든 UI가 작업을 호출하는 프로세스와 연결된 콘솔 창 으로 보내야 함을 나타냅니다.

관련 문제