ime文件夹
inf文件夹
Registration文件夹
虚拟桌面
突然翻到以前的一个小软件,这个软件的作用是创建一个虚拟桌面,并切换到他,这还是在Win7时代时候的了,貌似那时候很多人用这种类似的软件在上班时玩游戏,但是在Win10中加入了虚拟桌面,这类软件不知道怎么样了。
Win10中可以点击任务视图按钮,在最上面就可以创建,(虚拟桌面在Linux操作系统是一个标配,但是在Windows操作系统一直没有此功能,直到Win10才加入这项功能)。
笔记本的话四个手指左右滑动触摸板就可以切换,或者Win + Ctrl + → |←切换。创建一个虚拟桌面需要CreateDesktop函数,创建出来还需要切换过去,则要使用SwitchDesktop,如果要在虚拟桌面中运行程序,则可以使用CreateProcess,另外创建的新桌面是光秃秃的,并没有桌面图标、桌面壁纸,所以我们要注册一个快捷键,切换过去的时候还要可以切换回来,由于学艺不精,只会点VB,VB注册全局快捷键需要改变默认的窗口过程,然后去判断消息标识是不是WM_HOTKEY,在做相应的判断。
CreateDesktop函数参数
HDESK CreateDesktopA( LPCSTR lpszDesktop, LPCSTR lpszDevice, DEVMODEA *pDevmode, DWORD dwFlags, ACCESS_MASK dwDesiredAccess, LPSECURITY_ATTRIBUTES lpsa );
lpszDesktops:要创建的桌面的名称。桌面名称不区分大小写,并且不能包含反斜杠字符。
lpszDevice:保留;必须为NULL。
pDevmode:保留;必须为NULL。
dwFlags:此参数可以为零或DF_ALLOWOTHERACCOUNTHOOK,DF_ALLOWOTHERACCOUNTHOOK意思是使在桌面上其他帐户中运行的进程能够在此进程中设置挂钩。
dwDesiredAccess:桌面的权限。
lpsa:指向SECURITY_ATTRIBUTES结构的指针,该结构确定返回的句柄是否可以由子进程继承。如果lpsa为NULL,则不能继承该句柄。
实例
这部分是创建新的桌面,并将默认的窗口过程改成myWindowProc。
其中的GetThreadDesktop用来检索分配给指定线程的桌面的句柄,还有RegisterHotKey注册一个快捷键,当快捷键按下时,窗口过程中会收到WM_HOTKEY消息。
Private Sub Form_Load() g_hDesktopThreadOld = GetThreadDesktop(App.ThreadID) RegisterHotKey Me.hWnd, 1, MOD_CONTROL, Asc("Q") RegisterHotKey Me.hWnd, 2, MOD_CONTROL, Asc("W") g_hDesktopNameNew = "MyNewDesktop" g_hDesktopNew = CreateDesktop(g_hDesktopNameNew, vbNullString, ByVal 0&, 0, GENERIC_ALL, ByVal 0&) SetThreadDesktop g_hDesktopNew lpOldWinProc = SetWindowLong(Me.hWnd, GWL_WNDPROC, AddressOf myWindowProc) End Sub
模块中。
这部分主要的逻辑就是判断热键,如果是Ctrl+W,则通过SwitchDesktop 切换到新的桌面,另外通过CreateProcess在新的桌面中打开一个资源管理器(CreateProcess参数中的STARTUPINFOA结构体lpDesktop属性指定新的桌面名称即可),如果是Ctrl+Q则切换到原来桌面。
SwitchDesktop只有一个参数,桌面的句柄,这个句柄由CreateDesktop和 OpenDesktop函数返回。
Public Declare Function GetThreadDesktop Lib "user32" (ByVal dwThread As Long) As Long Public Declare Function CreateDesktop Lib "user32" Alias "CreateDesktopA" (ByVal lpszDesktop As String, ByVal lpszDevice As String, pDevmode As Long, ByVal dwFlags As Long, ByVal dwDesiredAccess As Long, lpsa As Long) As Long Public Declare Function SwitchDesktop Lib "user32" (ByVal hDesktop As Long) As Long Public Declare Function SetThreadDesktop Lib "user32" (ByVal hDesktop As Long) As Long Public Declare Function CloseDesktop Lib "user32" (ByVal hDesktop As Long) As Long Public Declare Function OpenDesktop Lib "user32" Alias "OpenDesktopA" (ByVal lpszDesktop As String, ByVal dwFlags As Long, ByVal fInherit As Boolean, ByVal dwDesiredAccess As Long) As Long Public Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Public Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, lpProcessAttributes As Long, lpThreadAttributes As Long, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, lpEnvironment As Any, ByVal lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Public Const CCHDEVICENAME = 32 Public Const CCHFORMNAME = 32 Public Const MOD_CONTROL = &H2 Public Const WM_HOTKEY = &H312 Public Const GWL_WNDPROC = -4 Public Type STARTUPINFO cb As Long lpReserved As String lpDesktop As String lpTitle As String dwX As Long dwY As Long dwXSize As Long dwYSize As Long dwXCountChars As Long dwYCountChars As Long dwFillAttribute As Long dwFlags As Long wShowWindow As Integer cbReserved2 As Integer lpReserved2 As Long hStdInput As Long hStdOutput As Long hStdError As Long End Type Public Type PROCESS_INFORMATION hProcess As Long hThread As Long dwProcessId As Long dwThreadId As Long End Type Public Type DEVMODE dmDeviceName As String * CCHDEVICENAME dmSpecVersion As Integer dmDriverVersion As Integer dmSize As Integer dmDriverExtra As Integer dmFields As Long dmOrientation As Integer dmPaperSize As Integer dmPaperLength As Integer dmPaperWidth As Integer dmScale As Integer dmCopies As Integer dmDefaultSource As Integer dmPrintQuality As Integer dmColor As Integer dmDuplex As Integer dmYResolution As Integer dmTTOption As Integer dmCollate As Integer dmFormName As String * CCHFORMNAME dmUnusedPadding As Integer dmBitsPerPel As Long dmPelsWidth As Long dmPelsHeight As Long dmDisplayFlags As Long dmDisplayFrequency As Long End Type Public Type SECURITY_ATTRIBUTES nLength As Long lpSecurityDescriptor As Long bInheritHandle As Long End Type Public Const GENERIC_ALL = &H10000000 Public Const DESKTOP_SWITCHDESKTOP = &H100 Public Const DESKTOP_CREATEMENU = &H4& Public Const DESKTOP_CREATEWINDOW = &H2& Public Const DESKTOP_ENUMERATE = &H40& Public Const DESKTOP_HOOKCONTROL = &H8& Public Const DESKTOP_JOURNALPLAYBACK = &H20& Public Const DESKTOP_JOURNALRECORD = &H10& Public Const DESKTOP_READOBJECTS = &H1& Public Const DESKTOP_WRITEOBJECTS = &H80& Public Const DESKTOP_ALL = 511 Public Const MAXIMUM_ALLOWED = &H2000000 Public lpOldWinProc As Long Public g_hDesktopThreadOld As Long Public g_hDesktopNew As Long, g_hDesktopNameNew As String Function myWindowProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long If uMsg = WM_HOTKEY Then If wParam = 2 And g_hDesktopNew <> 0 Then SwitchDesktop g_hDesktopNew startExplorer ("explorer.exe") End If If wParam = 1 Then SwitchDesktop g_hDesktopThreadOld End If End If myWindowProc = CallWindowProc(lpOldWinProc, hWnd, uMsg, wParam, lParam) End Function Public Sub startExplorer(str As String) Dim sui As STARTUPINFO, pi As PROCESS_INFORMATION sui.cb = Len(sui) sui.lpDesktop = g_hDesktopNameNew CreateProcess vbNullString, str, ByVal 0&, ByVal 0&, 1, &H4000000 Or &H800, ByVal 0&, vbNullString, sui, pi End Sub
是不是有点意思呢?
- //在windows系统任务栏的托盘中显示图标
- //使用vc6.0++
- //代码改编自《TCP/IPX协议及网络编程技术》第22章,罗军舟等著,清华大学出版社
- //
- // 托盘指的是windows桌面窗口右下角显示图标的区域
- // 管理托盘图标的函数是Shell_NotifyIcon
- // 为了简化使用,定义了CyctNotifyIcon类,封装了Shell_NotifyIcon
- // 该类用于构建、维护任务栏图标,主要目的是为了用户提供基于任务
- // 栏图标的图形化使用界面。
- //========================================================
- //======yctNotifyIcon.h文件===================
- //注意:代码并不完整,只包含必需的代码
- class CyctNotifyIcon
- {
- private:
- NOTIFYICONDATA m_NotifyIconData;//NOTITYICONDAT结构
- void FillNotifyIconData(UINT uIDResource, const char *chTip);
- public:
- CyctNotifyIcon(HWND hWnd, UINT uCallbackMessage);
- virtual ~CyctNotifyIcon();
- void AddIcon(UINT uIDResource, const char *chTip);
- void ChangeIcon(UINT uIDResource, const char *chTip);
- void DeleteIcon();
- };
- //========================================================
- //======yctNotifyIcon.cpp文件===================
- #include "stdafx.h"
- #include "yctNotifyIcon.h"
- CyctNotifyIcon::CyctNotifyIcon(HWND hWnd, UINT uCallbackMessage)
- {
- //hWnd: 指定使用任务栏托盘图标的应用程序的窗口句柄
- //uCallbackMessage: 指定任务栏托盘图标鼠标事件的用户回调消息;
- // 可以参考msdn中的NOTIFYICONDATA结构
- memset(&m_NotifyIconData, 0, sizeof(NOTIFYICONDATA));
- m_NotifyIconData.hWnd = hWnd;
- ASSERT(m_NotifyIconData.hWnd != NULL);
- m_NotifyIconData.uCallbackMessage = uCallbackMessage;
- }
- CyctNotifyIcon::~CyctNotifyIcon()
- {
- }
- void CyctNotifyIcon::FillNotifyIconData(UINT uIDResource, const char *chTip)
- {
- //填充NOTITYICONDAT结构
- //uIDResource:指定图标资源ID
- //chTip:指定在托盘图标上显示的ToolTip文本
- HICON hIcon = AfxGetApp()->LoadIcon(uIDResource);
- m_NotifyIconData.cbSize = sizeof(NOTIFYICONDATA);
- m_NotifyIconData.hIcon = hIcon;
- sprintf(m_NotifyIconData.szTip,chTip);
- m_NotifyIconData.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
- m_NotifyIconData.uID = uIDResource;
- }
- void CyctNotifyIcon::AddIcon(UINT uIDResource, const char *chTip)
- {
- //添加(在托盘中的)图标和ToolTip文本
- //uIDResource:指定图标资源ID
- //chTip:指定在图标上显示的ToolTip文本
- FillNotifyIconData(uIDResource, chTip);
- Shell_NotifyIcon(NIM_ADD, &m_NotifyIconData);
- }
- void CyctNotifyIcon::ChangeIcon(UINT uIDResource, const char *chTip)
- {
- //改变(在托盘中的)图标和ToolTip文本
- //uIDResource:指定图标资源ID
- //chTip:指定在图标上显示的ToolTip文本
- FillNotifyIconData(uIDResource, chTip);
- Shell_NotifyIcon(NIM_MODIFY, &m_NotifyIconData);
- }
- void CyctNotifyIcon::DeleteIcon()
- {
- //删除任务栏图标
- Shell_NotifyIcon(NIM_DELETE, &m_NotifyIconData);
- }
使用示例步骤:1)在CMainFrame中定义成员变量及构造函数中初始化:
- CyctNotifyIcon* m_pNotifyIcon;
- CMainFrame::CMainFrame()
- {
- ......
- m_pNotifyIcon = NULL;
- ......
- }
2)自定义YCT_NOTIFY_ICON消息及其响应函数:
- #define YCT_NOTIFY_ICON WM_USER+15 //自定义消息
- LRESULT CMainFrame::OnNotifyIcon( WPARAM wParam, LPARAM lParam )
- {
- //YCT_NOTIFY_ICON消息响应函数
- //用于响应任务栏图标的鼠标事件
- //wParam:任务栏图标的ID
- //lParam:鼠标事件值
- //附:此消息的触发来自于CMainFrame::OnCreate中CyctNotifyIcon构造函数的第二个参数的设定
- switch(lParam)
- {
- case WM_RBUTTONUP:
- //做自己想自己的事,如弹出右键菜单
- ......
- break;
- case WM_LBUTTONDBLCLK:
- //做自己想自己的事,如显示主窗口
- ......
- break;
- default:
- ;
- }
- return 0;
- }
3)(利用ClassWizard)重载OnCreate函数:
- int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
- {
- ......
- //显示windows任务栏图标
- if(m_pNotifyIcon == NULL)
- {
- m_pNotifyIcon = new CyctNotifyIcon(this->GetSafeHwnd(),
- YCT_NOTIFY_ICON);
- m_pNotifyIcon->AddIcon(IDR_MAINFRAME,(char *)YCT_TASKBAR_TOOLTIP_TEXT);
- }
- ......
- }
4)重载OnDestroy函数;目的:删除任务栏图标。
- void CMainFrame::OnDestroy()
- {
- CFrameWnd::OnDestroy();
- ......
- //删除windows任务栏图标
- if(m_pNotifyIcon != NULL)
- m_pNotifyIcon->DeleteIcon();
- }
5)在析构函数中释放m_pNotifyIcon:
- CMainFrame::~CMainFrame()
- {
- ......
- if(m_pNotifyIcon != NULL)
- delete m_pNotifyIcon;
- ......
- }
水平有限,如有错误请指正。
终端服务指的是Windows为了在单个系统中支持多个可交互的用户会话而提供的功能。利用Windows终端服务,一个远程用户可以在另一台机器上建立一个会话,并且登录进去,在该服务器上运行应用程序。服务器把图形用户界面传送到客户机,客户机把用户的输入传回到服务器上。在Windows Server 2008及R2中微软把终端服务的名称做了修改,叫做远程桌面服务(RDS),RDS和终端服务实现的功能是一样的,但是RDS相对终端服务有所增强,比如RDS服务支持用户访问应用程序和虚拟桌面(如下图所示)。RDS最新版本是Windows Server 2008 R2,在Windows Server 2008 R2中部署和配置RDS服务也比之前版本要方便很多。(之前在Windows Server 2008里叫TS WEB ACCESS)
Windows Serve 2008 R2 RDS架构包括以下组件:
1.远程桌面会话主机(RDSH)服务器/远程虚拟主机(RDVH)服务器
2.远程桌面许可(RD Licensing)
3.远程桌面网关(RD Gateway)
4.远程桌面链接代理(RD Connection Broker)
5.远程桌面Web访问(RD Web Access)
上图展示了RDS部署架构,各个组件之间的关系如下:
1.远程客户端使用RD网关或RD Web Access访问RDSH服务器(终端服务场景)和RDVH服务器(VDI场景)。
2.RD连接代理将客户端的会话连接到RDSH服务器(终端服务场景)或者将会话连接到RDVH服务器虚拟机(VDI场景)。
3.所有远程桌面服务器需要通过RD许可服务器的验证。
Windows Server 2008 RDS提供的RD会话主机服务功能和Windows Server 2003的终端服务(Terminal Services)一样。使用RD连接代理 ,RD会话主机服务提供客户端对应用程序的访问,我们称之为RemoteApp。使用RemoteApp功能可以分发RemoteApp程序链接到Windows客户端,此外,客户端还可以使用RD Web Access访问远程应用程序。
Windows Server? 2008 R2 RDS旨在为用户加速并扩展应用程序从数据中心到桌面的部署,RDS是高效低成本的架构平台,适合任何类型的企业,尤其是用户设备分布广泛难以集中管理数据和应用程序的情况下,或者用户需要移动办公时,尤其需要对应用程序进行终端化管理来实现灵活的应用程序交付。
微软虚拟化接入平台到底长什么样呢?
Windows Server 2008 R2 RDS关键特性
1.逼真的用户体验 最新版本的Windows Server 2008极大改进了用户的体验,带给用户的体验和使用本机资源相差无几。RDS中丰富的远程用户体验包含了多监控支持,支持Windows Media Player重定向,双向音频并提高富媒体流量位图加速。
2.RD链接代理 为传统的基于会话远程桌面和应用程序(也即Terminal Service)创建统一的管理员体验。
3.RemoteApp 远程应用程序和本地应用程序使用起来没有差别,在Windows 7当中与新任务栏无缝集成。RemoteApp帮助提高用户体验以及减少培训需求。
4.RemoteApp 及Desktop Connections 简化访问一组资源,比如访问与Windows无缝运行的RemoteApp和远程桌面。连接设置简单,自动更新连接,这样用户就可以一直访问最新的资源。
5.App-V for RDS 帮助解决在远程桌面会话主机中应用程序兼容问题并帮助整合RDSH服务器。App-V for RDS支持64位操作系统。
6.RD Web Access 帮助简化应用程序和桌面的部署,在Windows客户端使用Web页或者SharePoint门户就能访问服务器上的应用程序和桌面。
7.RD Gateway 帮助实现内部应用程序和数据与防火墙外部的用户连接的安全。提供关键应用程序和数据给移动办公用户,这些用户不需要使用VPN。
8.RD Easy Print 使用客户端打印驱动(不需要服务器端驱动)实现使用本地或网络打印机快速和可靠的打印。
Virtual Desktop Infrastructure (VDI) 是一个桌面交付模型,支持客户端桌面工作负载(操作系统、应用程序、用户数据)托管在数据中心的服务器上运行。 用户可以通过支持远程桌面协议(如 RDP)的客户端设备与虚拟桌面进行通信。与远程桌面服务(包含在Windows Server 2008 R2中,即以前为人所熟知的终端服务—Terminal Services)不同,VDI 中的每个用户都可以通过任何经过授权的设备来访问个人桌面,从而大大改善桌面灵活性。IT部门可以利用集中化的部署获得更全面的优势,包括集中化管理桌面工作负载以及更好的业务连续性。
集中式桌面管理 使用VDI企业可以用在数据中心服务器上运行的虚拟桌面来替代传统的PC。管理员在几分钟内便可部署好新的桌面,从而为用户提供他们自己的个性化桌面环境,而无需重新进行培训和共享应用程序。此方法有助于降低桌面基础架构的总体拥有成本 (TCO),延长硬件的生命周期,并可帮助公司加快对业务需求的响应速度。
桌面标准化管理 VDI 非常适合于向那些在分公司、呼叫中心和其他地点工作的固定职能员工提供经济高效的桌面服务。由于所有的虚拟桌面都位于一个中央位置,因此更容易控制对机密数据的访问,并且可以严格控制办公环境的稳定性、标准化。即使桌面环境被破坏,也可以通过虚拟机模板重建功能实现瞬间恢复。轻松实现办公桌面环境和个人桌面环境的彻底分离,确保办公桌面环境的高质量维护。
桌面备份和灾难恢复 客户能够享受到以前只有服务器应用程序才有的可靠性、数据保护能力和灾难恢复功能。可以利用共享存储器来备份桌面数据。自动故障切换功能可以帮助确保虚拟桌面的高可用性,而整个站点范围的恢复机制可确保在发生计划外停机后能够快速恢复服务。
随时随地访问办公桌面 通过微软的用户状态虚拟化和应用程序虚拟化可以很轻松的将用户的办公桌面环境中的个性化信息,个人/办公文档,以及办公时所需的各种办公软件/应用系统与用户的账号绑定在一起,并且集中保存。当用户不管是通过互联网还是分公司/办事处临时网络环境中,可以随时随地的访问微软VDI服务器。VDI服务器可以动态为用户创建一个客户端虚拟机,并将用户的个性化信息,使用的办公软件/应用系统覆盖到临时创建的客户端虚拟机上,从而确保使用者永远能够用自己最习惯的使用方式与自己的办公桌面环境进行互动,高效的处理工作。
严格把控的办公桌面 通过VDI技术将企业中涉及信息安全的应用部署到虚拟机内,然后通过集中的策略配置、各种软硬件安全措施,确保机密信息只停留在虚拟机内部,从而实现机密信息的严格管控目的。当使用者不再需要此环境时,VDI系统还可以实现相应桌面虚拟机的自动销毁工作,彻底保证信息的安全性、合法传输性。
减少办公环境的宕机时间 通过微软的用户状态虚拟化和应用程序虚拟化可以很轻松的将用户的办公桌面环境中的个性化信息,个人/办公文档,以及办公时所需的各种办公软件/应用系统与用户的账号绑定在一起,并且集中保存。当用户的物理办公桌面环境出现问题时,可以使用VDI技术,用户状态虚拟化和应用程序虚拟化,为用户构建一个与物理办公桌面一摸一样的桌面虚拟机。用户可以继续在虚拟机上用最熟悉的操作方式办公,而为IT维护人员争取充足的维护时间解决物理计算机出现的问题。
在后来微软推出了Windows Server 2008 R2和Windows 7的SP1以后,多了2个对于微软虚拟化很重要的新功能,那就是hyper-v的动态内存和Remoto FX
动态内存:设定1台虚拟机的内存最小值和最大值,让虚拟自由的根据资源消耗情况在这个设定的内存值中自动增加或缩减,以达到合理使用内容,或许1台虚拟机感受不出来效果,但假设1台8G的物理机上跑着几个不同角色的虚拟机,相信用这个功能你会觉得效果很棒,因为动态内容让资源消耗较低和较高的机器能根据目前的物理机所剩内存来进行合理索取和释放,不用再关机再重新设定内存大小,这就不影响业务的连续性了。
Remoto FX:其实这个我们可以简单理解为RDP7.1版本。目前XP和VISTA还不能升级到RDP7.1,RDP7.1到底有什么新特性呢?
Remote FX的RDP 7.1 客户端允许重定向和视频解码功能,任何来自服务器端用来显示的资源都能转移到客户端屏幕上。RemoteFX可以为每个虚拟机提供独立的虚拟GPU,从而可以获得各种各样的图形加速能力,进而执行各种高保真视频、2D、3D图形图像以及富媒体的处理能力。
如果您想体验Remoto FX的这个功能,那么你需要具备以下几点:
1.搭建VDI环境
2.虚拟主机的硬件达到要求
2.1:intel处理器具备EPT技术;AMD处理器具备NPT技术
2.2:显存至少1G以上
这样你才可以完整体验RDP 7.1的效果,Remoto FX在硬件达到要求的情况下可以开启,您就可以在虚拟桌面看高清和玩3D游戏了。
微软桌面虚拟化优势
加强办公桌面的标准化管理,减少出现问题的次数
降低办公环境的宕机时间,改善服务用户体验
在IT环境不断提升中确保不兼容程序的继续服务
严格把关办公应用的使用范围,确保办公信息的安全
随时随地安全访问办公环境,提高办公效率
计算资源动态化,让桌面环境管理水平跃上新台阶
微软个人独享桌面虚拟化特点
用户将会独享一个VDI系统中的客户端虚拟机
客户端虚拟机完全模拟传统个人独享台式机/笔记本的使用习惯
虚拟机中的客户端桌面环境基本OS由虚机模板创建
应用软件为虚机内手工/自动本地安装
用户的个人信息保存在虚拟机内部
用户拥有自己的客户端虚拟机名称
当承载虚机的宿主服务器宕机,其上的客户端虚机可以快速在其他宿主服务器上进行恢复
虚拟机出现严重问题使用对应的备份数据进行恢复
微软共享桌面虚拟化特点
用户共享VDI系统虚拟机池中的虚拟机实例
虚拟机实例会根据用户账号自动构建出用户熟悉的使用环境
虚拟机中的客户端桌面环境基本OS由虚机模板创建
应用软件通过应用虚拟化根据账号不同智能、动态部署
用户的个人信息保存在共享文件存储中
用户访问统一的连接入口,由连接代理智能分配虚拟机实例
当承载虚机的宿主服务器宕机,其上的客户端虚机可以快速在其他宿主服务器上进行恢复
虚拟机出现严重问题使用对应的备份数据进行恢复
桌面虚拟化包含(服务器虚拟化和应用程序虚拟化)
后面的文章我会逐步给大家描绘出微软桌面虚拟化的全貌与部署情况的!
本文转自 ZJUNSEN 51CTO博客,原文链接:http://blog.51cto.com/rdsrv/551578,如需转载请自行联系原作者
第一部分:支撑整个操作系统运行所必须要的文件和文件夹。这些文件夹非常重要,在没有特殊情况时,请不要删除这些文件夹内的任何可用文件Cursors文件夹这是鼠标指针文件夹,用来存放除系统默认之外的鼠标指针(图2)。一些美化系统桌面的程序在美化鼠标时也是将自己的鼠标指针存放在这个文件夹中的。可以将文件夹中的鼠标指针删除,对Windows系统默认的鼠标指针不会有影响。Debug文件夹这是系统调试文件夹,用来存放系统运行过程中调试模块的日志文件,以便管理员根据这些日志文件来发现计算机所存在的问题。其中“UserMode”文件夹下存放的是当前用户的调试日志文件。如图3所示是1月28日系统安装网络组件时调试的日志文件“NetSetup.LOG”的部分内容。Downloaded Program Files文件夹这是下载程序文件夹,用来存放扩展IE浏览器功能的文件。例如能让IE播放FLASH动画的控件,Java虚拟机控件等等。Help文件夹这是帮助文件夹,用来存放系统自带的帮助文件和一些应用程序的帮助文件。这些文件当然是可以删除的(但其中的Tours文件夹不能被完全删除)。你可以从“开始”处点击“帮助和支持”来启动帮助系统,它其实就是调用了这个文件夹中的一些文件。
ime文件夹这是输入法文件夹,用来存放系统默认安装的输入法文件。Windows操作系统已经内嵌了东亚国家的输入法,如日语,韩文等,从理论上可以将用不到的一些其他语言输入法删除掉,但不建议这样做,因为这样有可能会导致输入法系统出现不稳定的情况,严重影响简体中文输入法的正常使用。CHSIME:简体中文输入法;CHTIME:繁体中文输入法;IMEJP:日文输入法;IMEJP98:日文98输入法;IMJP8_1:微软IME标准2002的8.1版本输入法;IMKR6_1:朝鲜语(IME2002)6.1版本输入法;SHARE:东亚语系共享文件夹。PCHealth文件夹这里用来存放协调、配置和管理计算机正常运行的文件。如我们常用的“msconfig系统配置实用程序”,就位于这个文件夹下的“HelpCtrBinaries”下,再如机浏览的缓存就在“OfflineCache”文件下。这里的文件对于操作系统来说非常重要,不建议删除。repair文件夹这是系统修复文件夹,用来存放修复系统时的配置文件。当系统无法进入桌面,我们在不得已的情况下,会首先选择修复系统,这个文件里所存放的就是系统的基本配置文件。Resources文件夹这是系统资源文件夹,用来存放系统SHELL资源文件,就是我们在桌面上所看到的主题。可以删除一些无用的主题文件。addins文件夹这是系统附加文件夹,用来存放系统附加功能的文件。AppPatch文件夹这是应用程序修补备份文件夹,用来存放应用程序的修补文件。Config文件夹这是系统配置文件夹,用来存放系统的一些临时配置的文件。Connection Wizard文件夹看名字就知道这是连接向导文件夹,用来存放“Internet连接向导”的相关文件。security文件夹这是系统安全文件夹,用来存放系统重要的数据文件。srchasst文件夹这是搜索助手文件夹,用来存放系统搜索助手文件,与msagent文件夹类似。system文件夹这是系统文件夹,用来存放系统虚拟设备文件,这些文件从逻辑上为系统在启动时建立一套完整的虚拟设备,尤其是当你的硬件驱动还没有安装的时候。Driver Cache文件夹这是驱动缓存文件夹,用来存放系统已知硬件的驱动文件。Windows操作系统默认安装后,这里会有一个“i386”文件夹,其中有一个名为“driver.cab”的文件,即Windows操作系统自带的已知硬件的驱动库文件。网络上许多文章都说这个驱动库文件可以删除以节约空间,但删除后就会发现有许多不方便使用的情况出现,例如使用USB设备也需要安装驱动。所以建议不删除此文件。Fonts文件夹这是字体文件夹,用来存放系统将会用到的字体文件。用户自己新安装的字体也会被存放在这个文件夹下的。其中英文的字体类型比较多,而简体中文字体文件只包括仿宋体、黑体、楷体、宋体和新宋体四个类型,即计算机编码中的gb2312。可以将其中一些不常使用的英文字体删除。
inf文件夹这个文件夹是用来存放INF文件的。INF是一种具有特定格式的纯文本文件,最常见的应用是为硬件设备提供驱动程序服务。建议不删除这些文件。Installer文件夹这里用来存放MSI文件或者程序安装所需要的临时文件。MSI文件是Windows 系统的安装包,右击文件在右键菜单中可以选择安装或者卸载程序。有的程序在卸载时必须使用到MSI文件,所以不建议删除此文件夹内的文件。java文件夹这里用来存放Java运行的组件及其程序文件。最好不要删除此文件夹中的文件。Media文件夹这是媒体文件夹,用来存放系统默认的声音文件(WAV格式),如系统登录时的声音等。如果喜欢无声的系统,可以将这里的声音文件删除。msagent文件夹这是微软助手文件夹,用来存放一些动态的卡通形象,协助你更好地使用系统。就像Office中的助手一样,如果觉得没有必要,可以直接删除。msapps文件夹这是微软应用程序文件夹。mui文件夹这是多语言包文件夹,用来存放多国语言文件。MUI就是多国语言接口的意思,来实现系统对更多语言的支持。简体中文系统中这个文件夹默认是空的,但不建议删除此文件夹。Prefetch文件夹这是预读取文件夹,用来存放系统已访问过的文件的预读信息(此信息是系统在访问时自动生成的新信息),以加快文件的访问速度,其扩展名为“PF”。可以将此文件夹中的文件删除。pss文件夹这里是用来备份系统启动配置文件的,一般对“Boot.ini”、“System.ini”和“Win.ini”三个文件进行备份,扩展名为“backup”。如果系统原有的这三个文件发生意外的话,就可以从这里进行改名恢复。从上面的叙述可以看出这里的重要性,所以不建议删除。
Registration文件夹这是注册文件夹,用来存放用于系统COM+或者其他组件注册的相关文件。不建议删除这里的文件。Offline Web Pages文件夹这是机浏览文件的存放位置。当某个站点被设成允许机使用时,就会在该文件夹中生成对应的文件。可以删除这里的文件,不过相应站点的机浏览功能就会失效。system32文件夹这是32位系统文件夹,用来存放系统重要文件的,同时一些应用程序在安装时也会将其相应的支持文件复制到这个文件夹里来,因此强烈反对删除此文件夹下文件或此文件夹的做法。由于此文件夹下的文件和此文件夹众多,我们不可能一一探讨,列举一些具有代表性的文件夹和文件就可以了。① CatRoot:用来存放计算机启动测试信息的目录,包括了计算机启动时检测的硬软件信息。② Com:用来存放组件服务文件,运行其的“comexp.msc”就会打开组件服务控制台(图10)。③ DllCache:用来存放系统缓存文件,当系统本来的文件被替换时,文件保护机制会复制这个文件夹下的备份系统文件去覆盖非系统文件。你可以用“SFC SCANNOW”命令格式扫描一下系统文件,然后就可以将其下的所有文件全部删除了。④ Drivers:用来存放硬件驱动文件。如果删除其中的文件,会导致硬件失去驱动而无效。⑤ IME:用来存放系统输入法文件,类似上去的IME文件夹。⑥oobe:用来存放系统的激活信息。⑦Restore:用来存放系统还原文件。双击运行“rstrui.exe”文件,就会调用系统还原功能。⑧Setup:用来存放系统安装文件。⑨spool:用来存放系统打印文件。包括了打印的色彩、打印预存等。⑩wbem:用来存放WMI测试程序,用于查看和更改公共信息模型类、实例和方法等。属于系统重要文件,不能删除MSC类文件(服务控制台类文件):certmgr.msc 证书服务 ciadv.msc 索引服务compmgmt.msc 计算机管理 devmgmt.msc 设备管理器dfrg.msc 磁盘碎片整理 diskmgmt.msc 磁盘管理eventvwr.msc 事件查看器 fsmgmt.msc 共享文件夹gpedit.msc 组策略 lusrmgr.msc 本地用户和组ntmsmgr.msc 可移动存储 ntmsoprq.msc 可移动存储管理员操作请求perfmon.msc 计算机性能 rsop.msc 组策略的结果集secpol.msc 本地安全设置 services.msc 服务wmimgmt.msc Windows管理体系结构(WMI)可执行类文件(由于文件太多,只列举部分文件):accwiz.exe 辅助功能向导 cleanmgr.exe 磁盘清理工具clipbrd.exe 剪切簿查看器 cmd.exe 命令行drwtsn32.exe Windows调试器 dxdiag.exe DirectX诊断工具eventvwr.exe 事件查看器 freecell.exe 空当接龙(游戏)magnify.exe 放大镜 mmc.exe 控制台mplay32.exe 媒体播放器 msg.exe 消息管理mshearts.exe 红心大战(游戏) mspaint.exe 画图notepad.exe 记事本 nslookup.exe IP地址查看器ntbackup.exe 备份还原 odbcad32.exe ODBC数据源管理器osk.exe 屏幕键盘 osuninst.exe 系统卸载工具packager.exe 对象包装程序 progman.exe 程序管理器rasphone.exe 网络连接 regedt32.exe 注册表编辑器shrpubw.exe 创建共享文件夹 sndrec32.exe 录音机sigverif.exe 文件签名验证 shutdown.exe 系统关闭工具spider.exe 蜘蛛(游戏) syskey.exe 系统加密工具syncapp.exe 我的公文包 sysedit.exe 系统配置编辑器taskmgr.exe 任务管理器 tourstart.exe Windows漫游utilman.exe 辅助工具管理器 verifier.exe 驱动验证管理器wiaacmgr.exe 扫描仪及照相向导 winchat.exe 聊天winhlp32.exe 系统帮助 winmine.exe 扫雷(游戏)wscript.exe Windows脚本宿主设置 write.exe 写字板wupdmgr.exe Windows在线升级 sfc.exe 系统文件扫描器Windows操作系统本来就是非常复杂的,重要的是我们了解各个部分的功能,可以避免误删除一些非常重要的文件而影响操作。转载于:https://blog.51cto.com/cxly1986/26931