# US 11,307,878 B2 · Per user index for virtual desktop

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,307,878 B2
- Document ID: US11307878B2
- Status: Granted
- Kind: B2
- Application number: 16/409,755
- Filed: 2019-05-10
- Published: 2020-11-12
- Granted: 2022-04-19
- Earliest claimed: 2019-05-10
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Won Hee Lee; Adam Donald Wilson
- Web page: https://patentgrep.com/patent/US11307878B2

## CPC

- G06F 9/452: {Remote windowing, e.g. X-Window System, desktop virtualisation (protocols for virtual reality H04L67/131)}
- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- G06F 16/13: File access structures, e.g. distributed indices (arrangements of input from, or output to, record carriers G06F3/06)
- G06F 16/14: Details of searching files based on file metadata
- G06F 16/188: Virtual file systems
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06F 2009/45579: {I/O management, e.g. providing access to device drivers or storage}
- G06F 2009/45587: {Isolation or security of virtual machine instances}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A per user system include for a virtual desktop includes a server connected to multiple users, wherein each server hosts multiple application sessions accessible by the users. An indexer hosted on the server can be configured to analyze a file on the server to identify a user that owns the file without input from the application sessions and to save the file to a virtual hard disk (VHD) of the identified user. The VHD can be temporarily saved on the server. A communications device can be connected to the indexer, where the communication device can send the VHD of the identified user from the server to a storage device. A processor can be on a second server, where the processor can retrieve the VHD of the identified user from the storage device and temporarily save the VHD of the identified user on the second server.

## Claims

### Claim 1

A system comprising:
a server hosting multiple application session virtual computing environments such that any one of the application session virtual computing environments can be utilized by any one of multiple users; and
a computer readable storage medium having encoded thereon program instructions executable by the server to cause the server to:
analyze a first file on the server to identify a first user, for whom the first file is to be indexed for searching, the identifying being without input from the application session virtual computing environments; and
index the first file into a search index on a virtual hard disk (VHD) of the first user, wherein the VHD is independently maintained from the application session virtual computing environments and is temporarily mounted to the server as part of the first user's utilization of any of the application session virtual computing environments hosted by the server.

### Claim 2 (depends on 1)

The system according to claim 1, wherein the is program instructions causing the analyzing the first file comprise program instructions that cause the server to analyze a first attribute of the first file, the identifying the first user being based on the first attribute.

### Claim 3 (depends on 1)

The system according to claim 1, wherein the program instructions causing the analyzing the first file comprise program instructions that cause the server to
identify a first application session virtual computing environment accessing the first file, the identifying the first user being based on the identified first application session virtual computing environment.

### Claim 4 (depends on 3)

The system according to claim 3, wherein the computer storage medium has encoded thereon further program instructions executable by the server to cause the server to:
monitor data access by the application session virtual computing environments hosted by the server to detect a handle number that is temporarily assigned to the first file when it is accessed by the first application session virtual computing environment;
wherein the identifying the first application session virtual computing environment is based on the detected handle number.

### Claim 5 (depends on 1)

The system according to claim 1, wherein the program instructions causing the analyzing the first file comprise program instructions that cause the server to analyze an access control list, associated with the first file, that identifies users that have access to the first file, the identifying the first user being based on the users identified by the access control list.

### Claim 6 (depends on 1)

The system according to claim 1, wherein the program instructions causing the analyzing the first file comprise program instructions that cause the server to identify a profile directory paths utilized to access the first file in a first application sessions virtual computing environment, the identifying the first user being based on the identified profile directory path.

### Claim 7 (depends on 6)

The system according to claim 6, wherein the program instructions causing the identifying the first user based on the identified profile directory path comprise program instructions that cause the server to scan through a list of profile directory paths of multiple users to identify a matching beginning part of the identified profile directory path.

### Claim 8 (depends on 1)

The system according to claim 1, wherein the indexer is analyzes the first because a location of the first file has been mapped into a file system of the VHD of the first user.

### Claim 9

A method comprising:
analyzing a first file on a server to identify a first user, for whom the first file is to be indexed for searching, the identifying being without input from application session virtual computing environments running on the server, wherein the server hosts multiple application session virtual computing environments such that any one of the application session virtual computing environments can be utilized by any one of multiple users; and
indexing the first file into a search index on a virtual hard disk (VHD) of the first user, wherein the VHD of the first user is independently maintained from the application session virtual computing environments and is temporarily mounted to the server as part of the first user's utilization of any of the application session virtual computing environments.

### Claim 10 (depends on 9)

The method according to claim 9, wherein the analyzing the first file comprises analyzing a first attribute of the first file, the identifying the first user being based on the first attribute.

### Claim 11 (depends on 9)

The method according to claim 9, wherein the analyzing the first file comprises
identifying a first application session virtual computing environment accessing the first file, the identifying the first user being based on the identified first application session virtual computing environment.

### Claim 12 (depends on 11)

The method according to claim 11, further comprising:
monitoring data access by the application session virtual computing environments running on the server to detect a handle number that is temporarily assigned to the first file when it is accessed by the first application session virtual computing environment;
wherein the identifying the first application session virtual computing environment is based on the detected handle number.

### Claim 13 (depends on 9)

The method according to claim 9, wherein the analyzing the first file comprises analyzing an access control list, associated with the first file, that identifies users that have access to the first file, the identifying the first user being based on the users identified by the access control list.

### Claim 14 (depends on 9)

The method according to claim 9, wherein the analyzing the first file comprises identifying a profile directory
paths utilized to access the first file in a first application sessions virtual computing environment,
the identifying the first user being based on the identified profile directory path.

### Claim 15 (depends on 14)

The method according to claim 14, wherein the identifying the first user based on the identified profile directory path comprises scanning through a list of profile directory paths of multiple users to identify a matching beginning part of the identified profile directory path.

### Claim 16 (depends on 9)

The method according to claim 9, wherein the first file is analyzed because a location of the first file has been mapped into a file system of the VHD of the first user.

### Claim 17

A computer program product comprising:
a computer readable storage medium having encoded thereon
program instructions executable by a processor to cause the processor to:
analyze first file on server to identify a first user, for whom the first file is to be to be indexed for searching, the identifying being without input from desktop session virtual computing environments running on the server, wherein
the server hosts the desktop session virtual computing environments such that any one of the desktop session virtual computing environments can be utilized by any one of multiple users; and
index the first file into a search index on a virtual hard disk (VHD) of the first user, wherein the VHD of the first user is independently maintained from the desktop session virtual computing environments and is temporarily mounted to the server as part of the first user's utilization of any of the desktop session virtual computing environments.

### Claim 18 (depends on 17)

The computer program product according to claim 17, wherein the program instructions causing the analyzing the first file comprise program instructions that cause the processor to analyze a first attribute of the first file, the identifying the first user being based on the first attribute.

### Claim 19 (depends on 17)

The computer program product according to claim 17, wherein the program instructions causing the analyzing the first file comprise program instructions that cause the processor to
identify a first desktop session virtual computing environment accessing the first file, the identifying the first user being based on the identified first application session virtual computing environment.

### Claim 20 (depends on 17)

The computer program product according to claim 17, wherein the first program instructions causing the analyzing the first file comprise program instructions that cause the processor to analyze an access control list, associated with the first file, that identifies users that have access to the first file, the identifying the first user being based on the users identified by the access control list.
