`
csyqbtlsz
  • 浏览: 24424 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

登录Windows自动映射磁盘

阅读更多

      最近项目客户要求做一个功能,内容是希望希望用户在登录windows的时候,根据用户自己负责的项目来自动创建网络映射驱动器,用户需要映射磁盘的信息都存在数据库中。经过调查研究,打算使用powershell实现,实现方式大体如下:

 

1.先创建powershell脚本,代码如下:

#获取当前用户
$currentAccountName = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name;
#通过用户名查询出该用户应该映射的路径、和映射路径的用户名和密码(过程略)
##......
#模拟一个映射列表和登录名密码,作为上面的查询结果
$diskList = @("\\192.168.22.141\AD","\\192.168.22.141\OracleExportShell");
$accountName = "Administrator";
$password = "zhang.ruyi123";
#创建wscript.network对象
$driver = New-Object -ComObject wscript.network;
#移除所有网络驱动器
Get-WmiObject Win32_Networkconnection | ForEach-Object {
	$driver.RemoveNetworkDrive($_.LocalName,$true,$false);
}
#查询所有逻辑驱动器
$logicalDiskList = (@());
Get-WmiObject Win32_Logicaldisk  | ForEach-Object {
	$logicalDiskList += $_.DeviceID;
}
#所有驱动器列表
$deviceQueue = New-Object -TypeName System.Collections.Generic.Queue[System.String];
$deviceQueue.Enqueue("A:");
$deviceQueue.Enqueue("B:");
$deviceQueue.Enqueue("C:");
$deviceQueue.Enqueue("D:");
$deviceQueue.Enqueue("E:");
$deviceQueue.Enqueue("F:");
$deviceQueue.Enqueue("G:");
$deviceQueue.Enqueue("H:");
$deviceQueue.Enqueue("I:");
$deviceQueue.Enqueue("J:");
$deviceQueue.Enqueue("K:");
$deviceQueue.Enqueue("L:");
$deviceQueue.Enqueue("M:");
$deviceQueue.Enqueue("N:");
$deviceQueue.Enqueue("O:");
$deviceQueue.Enqueue("P:");
$deviceQueue.Enqueue("Q:");
$deviceQueue.Enqueue("R:");
$deviceQueue.Enqueue("S:");
$deviceQueue.Enqueue("T:");
$deviceQueue.Enqueue("U:");
$deviceQueue.Enqueue("V:");
$deviceQueue.Enqueue("W:");
$deviceQueue.Enqueue("X:");
$deviceQueue.Enqueue("Y:");
$deviceQueue.Enqueue("Z:");
#添加指定驱动器
$diskList | ForEach-Object{
	$deviceId = $null;
	while($true){
		$deviceId = $deviceQueue.Dequeue();
		if(($logicalDiskList -notcontains $deviceId) -or ($deviceQueue.Count -eq 0)){
			break;
		}
	}
	#查询出一个可用的驱动器名
	if($deviceQueue.Count -ne 0){
		$driver.MapNetworkDrive($deviceId,$_,$false,$accountName,$password);
	}
}

 上述脚本的功能是获取当前用户登录名,然后根据登录名调用webservice来查询所需要的信息,然后删除已有的网络映射,在创建出新的网络映射。如何使用powershell调用webservice,请参考http://zhangruyi5599.iteye.com/blog/1571532

 

2.将写好的powershell放在域控上,然后将这个脚本挂载到组策略对象的登录事件中,就OK了。


0
0
分享到:
评论

相关推荐

    windows10 磁盘映射脚本

    - 使用脚本映射磁盘时,必须确保用户具有足够的权限访问网络共享,并且在执行脚本前,应验证脚本的来源,防止潜在的安全风险。 5. **注意事项** - 在运行外来脚本前,务必检查其内容,避免执行恶意代码。 - 如果...

    自动映射磁盘文件,根据需要修改路径

    标题中的“自动映射磁盘文件,根据需要修改路径”是指在Windows操作系统中,通过脚本或批处理文件(BAT文件)实现磁盘驱动器的映射,以便将一个特定的文件夹路径映射为一个虚拟的驱动器字母,使得用户可以更方便地...

    Windows系统网络映射工具

    然而,标题中提到的“Windows系统网络映射工具”可能是指一些第三方工具,这些工具提供了更高级的功能,如批量映射、自动化脚本支持或者更方便的管理界面。在提供的文件列表中,我们看到一系列名为Pstools的工具,这...

    映射网络盘符脚本

    在IT领域,网络盘符映射是日常工作中常见的任务,特别是在企业环境中,为了方便员工访问共享资源,通常会将文件服务器上的目录映射为本地计算机的磁盘驱动器字母,这样用户就可以像操作本地硬盘一样操作远程文件。...

    在Windows与Linux下Samba共享文件夹以及映射的详细使用说明

    在Windows与Linux下Samba共享文件夹以及映射的详细使用说明是指在Windows和Linux操作系统中如何使用Samba来共享文件夹和映射网络资源的详细使用说明。Samba是一个自由开源的软件,能够让Windows和Linux操作系统之间...

    windowserver2019组策略创建磁盘映射.docx

    本文将详细介绍如何在Windows Server 2019上利用组策略对象(GPO)来自动化磁盘映射的创建过程。 #### 一、创建组策略 1. **打开组策略管理器**:首先需要在Windows Server 2019上打开组策略管理器。可以通过在...

    磁盘文件映射内存映射

    本文将深入探讨磁盘文件映射到内存映射的基本原理、优势及其实现方式。 ### 基本原理 内存映射文件的核心思想是将磁盘上的文件直接映射到进程的虚拟地址空间中,使得文件的内容可以直接通过指针访问,就像操作内存...

    映射网络磁盘工具包11

    2. **自动化映射**:高级工具可能支持自动化映射,用户可以预先配置映射设置,然后在启动时自动连接到网络资源,或者在特定条件(如登录、网络连接恢复)下自动重新连接。 3. **安全性和权限管理**:考虑到网络资源...

    把linux目录映射到本地虚拟磁盘上

    标题 "把Linux目录映射到本地虚拟磁盘上" 涉及的技术点主要是关于Linux系统与Windows系统之间的文件共享和交互。在这个场景下,我们通常会利用网络文件系统(NFS)或Secure File Transfer Protocol(SFTP)来实现...

    Windows 服务 操作 映射的网络驱动器

    首先,映射网络驱动器是Windows中一种方便的方式,它将远程计算机的共享文件夹以字母盘符的形式呈现,如同本地磁盘一样方便使用。例如,你可以通过命令行`net use X: \\Server\Share`将名为"Share"的远程共享文件夹...

    磁盘工具.RaiDrive.Standard.Edition.x64.1.3.8.网络磁盘映射英文免费版.zip

    在使用RaiDrive时,用户只需要输入服务器地址、登录凭证以及选择合适的协议,即可完成网络磁盘的映射。软件会自动处理数据传输的加密和安全问题,确保用户的数据安全。此外,RaiDrive还具备快速连接、断线重连、文件...

    共享文件夹映射成盘符工具

    在实际应用中,除了手动映射,还可以使用批处理脚本或自动化工具进行批量映射,尤其在企业环境中,可以减轻管理员的工作负担。同时,为了保证数据安全,应定期备份映射的网络驱动器,防止因服务器故障导致的数据丢失...

    将CentOS服务器的目录映射为Windows磁盘驱动器的方法.docx

    将 CentOS 服务器的目录映射为 Windows 磁盘驱动器是通过 Samba 服务实现的,Samba 是一个开源软件,它使得 Linux 和 Unix 系统能够与使用 SMB/CIFS 协议(Server Message Block/Common Internet File System)的 ...

    内存映射修改大文件_内存映射_MemoryFile_超大文件读写_

    在Windows系统中,可以使用CreateFileMapping和MapViewOfFile函数来创建和映射文件。在Linux中,相应的系统调用是mmap。这两个API都允许程序员指定文件的哪一部分映射到内存,以及映射的大小。一旦映射完成,程序就...

    迅闪2010个人磁盘独立版(带服务管理器)

    以前有提取过2008的个人磁盘,发现不带服务管理的服务端会经常出现卡死自动退出的情况。本次提取出来的迅闪2010个人磁盘程序,连同迅闪服务端管理器一起弄出来了,如碰到程序出错自动退出,服务管理器会自动重启个人...

    自动监测和映射网络驱动器

    在IT领域,网络驱动器的自动监测和映射是一项重要的任务,特别是在企业环境中,它能够确保员工能够顺畅地访问共享资源。在这个主题中,我们将深入探讨如何使用Visual Basic Script(VBS)来实现这一功能。VBS是一种...

    HP磁盘柜安装配置指南

    映射磁盘是将阵列中的卷映射到服务器上,以供服务器使用。在Manage>Volume Management>Volume Mapping>Map Hosts To Volume中,用户可以输入IQN和LUN,选择需要映射的卷,单击Map It。 五、安装配置Microsoft ISCSI...

    文件夹映射工具v2.0.rar

    3. **自动同步**:一旦源文件夹有变化,映射的目标文件夹会自动更新,确保数据一致性。 4. **安全备份**:可以设定定期备份映射的文件夹,以防止数据丢失。 5. **权限管理**:对于网络映射,可能提供权限设置功能,...

    DELLMD3000i虚拟磁盘创建映射.pdf

    在DELL MD3000i中,虚拟磁盘(Virtual Disk,简称V-Lun)的创建和映射是关键步骤,这对于实现服务器与存储设备之间的数据交互至关重要。以下将详细讲解如何在DELL MD3000i上创建和管理虚拟磁盘,并进行主机映射。 ...

Global site tag (gtag.js) - Google Analytics