登录Windows自动映射磁盘

2023-11-02

      最近项目客户要求做一个功能,内容是希望希望用户在登录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了。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

登录Windows自动映射磁盘 的相关文章

  • SetCursor 在鼠标移动后恢复

    我正在使用 SetCursor 将系统光标设置为我自己的图像 代码看起来像这样 member on some class HCURSOR cursor at init time cursor LoadCursorFromFile somef
  • 批量修改XML文件

    好的 所以我不太熟悉使用 For F 如果文件是静态的并且有一组可以跳过然后从中提取数据的行 我可以修改它 我目前正在尝试修改 XML 文件 该文件将具有不同数量的行 但始终具有以下内容
  • 是否可以从 nuget powershell 设置项目的输出路径属性?

    我想从 nuget powershell 控制台设置 Visual Studio 项目属性 输出路径 怎么可能呢 我已经发现一篇博文 http weblogs asp net soever archive 2011 05 15 set th
  • 发送和接收 Windows 消息

    Windows 消息似乎是通知 Windows 操作系统上的应用程序的好方法 它实际上运作良好 但我想到了几个问题 How to指定结构化数据lparamSendMessage 例程 就像许多消息代码一样 我的意思是 参数当然是一个指针 但
  • 从命令行调用PowerShell函数

    鉴于以下情况say hello ps1我的文件系统上的文件 function SayHello return Hello World 像这样在命令行上调用 它最终将作为 Windows 计划任务运行 powershell Execution
  • Windows BlockInput 功能不起作用

    Why BlockInput不工作 include
  • 是否可以在 PowerShell 中使 IndexOf 不区分大小写?

    我在终端服务器中由查询会话命令组成的数组中搜索索引时遇到问题 这是有问题的脚本 Array of logged users in terminal servers a Get RDUsersession CollectionName BLA
  • 在 Mono 上使用 Mono for android

    将 MonoDevelop 的编译器切换为 Mono 工具而不是 NET 看起来非常容易 您只需在 IDE 的设置下选择不同的框架即可 然而 在切换到 Mono 并使用 Mono 工具编译项目后 Mono for android 似乎不再是
  • Gtkmm 程序编译正常但崩溃 - Windows XP

    我最近安装了 gtkmm gtkmm 2 4 当我使用 g 编译时 我使用 pkg config 中的以下信息 头文件 pkg config gtkmm 2 4 cflags 目标文件 pkg config gtkmm 2 4 libs 所
  • 在 R 中查找 Windows 用户名

    有没有办法在 R 会话中获取当前的 Windows 用户名或 Windows 主目录 Thanks 抱歉 如果我错过了什么 但我找不到任何东西 你可以做 Sys getenv USERNAME Sys getenv HOME 如果你只是输入
  • 在 PowerShell 中显示当前时间和时区

    我正在尝试使用时区显示系统上的当地时间 如何在任何系统上以最简单的方式显示这种格式的时间 时间 美国东部时间上午 8 00 34 我目前正在使用以下脚本 localtz System TimeZoneInfo Local Select Ob
  • Python:获取Windows操作系统版本和架构

    首先 我不认为这个问题是重复的 在Python中检测64位操作系统 windows https stackoverflow com questions 2208828 detect 64bit os windows in python因为恕
  • 堆栈独立的C/C++蓝牙API?

    我想知道是否有适用于 Windows XP Vista 7 x86 和 x64 的堆栈独立 C C 蓝牙 api 我的目标是创建连接并通过蓝牙发送 接收一些时间关键的数据 我的研究给了我以下选择以及这项任务的缺点 用于蓝牙的 Windows
  • 为什么将多线程应用程序限制在一个核心上会使其运行速度更快?

    我有一个本机多线程Win32用 C 编写的应用程序 大约有 3 个相对繁忙的线程和 4 到 6 个不执行太多操作的线程 当它在正常模式下运行时 在 8 核计算机上 总 CPU 使用率总计约为 15 并且应用程序在大约 30 秒内完成 当我通
  • 如何并行执行PowerShell函数多次?

    我不确定是否需要将其称为多线程 基于作业或异步的需求 但基本上我有一个 Powershell 脚本函数 它需要多个参数 并且我需要使用不同的参数多次调用它并让它们运行在平行下 目前 我这样调用该函数 Execute param1 param
  • 什么进程正在使用给定的文件?

    我的一个脚本遇到了问题 它似乎无法规律地写入自己的日志 并抛出错误 此文件正在被另一个进程使用 我知道有一些方法可以用 try excepts 来处理这个问题 但我想知道why这种情况正在发生 而不仅仅是掩盖它 根本不应该有任何其他东西访问
  • Java:以管理员身份运行

    Java 有没有办法要求系统控制管理员功能 当然不做 右键单击exe gt 以管理员身份运行 我想要的是 UAC 提供一个像 Windows Vista 或 Windows 7 中的框架 或者我在从 jar 生成 exe 时需要做一些设置吗
  • VSTS 任务组 Powershell 参数

    我使用具有四个参数的 Azure Powershell 任务内联脚本创建了 VSTS 任务组 我已将此任务组添加到发布定义并配置参数 当我尝试释放时失败并出现以下错误 2018 03 23T10 28 42 2811600Z 错误 在 C
  • Powershell从字符串中获取数字

    大家好 我正在尝试使用 powershell 从用户 ID 中获取号码 我们使用的格式是名字的第一个字母 姓氏的前四个字母和学生 ID 因此名为 John Smith ID 123456 的学生将是 jsmit123456 如果用户的名字少
  • 让 Windows 尝试读取文件

    我正在对 Windows 文件系统进行某种封装 当用户请求打开文件时 Windows 调用我的驱动程序来提供数据 在正常操作中 驱动程序返回缓存的文件内容 但是 在某些情况下 实际文件没有缓存 我需要从网络下载它 问题是是否有可能让 Win

随机推荐

  • 最强大的布局——约束布局(ConstraintLayout)的一些技巧

    一 使用viewBinding 1 想开启那个模块的viewBinding就进入对应模块的build gradle 2 进入app的build gradle 开启viewbinding viewBinding enabled true 3
  • 基于HAL库stm32f1的DS18B20温度传感器

    由于做比赛 所以写了温度传感器 记录一下 一 介绍 DS18B20是常用的数字温度传感器 其输出的是数字信号 具有体积小 硬件开销低 抗干扰能力强 精度高的特点 1 DS18B20数字温度传感器接线方便 封装成后可应用于多种场合 如管道式
  • 让AI来告诉你什么叫幽灵堵车

    使用环境参考 CocosCreator v3 7 2 ChatGPT 正文 什么是幽灵堵车 堵车 大家都不陌生 堵车时我就思维发散 用 CocosCreator 模拟下堵车应该挺好玩 网上总说高速上最前面如果有个龟速的车 后面能堵车堵个两三
  • OpenCV仪表数据识别(二):数字区域自动定位

    下载和配置Opencv在网上和书上有很多的讲解 这里不再赘述 此处附上Opencv的下载链接 想要对图片中的数字信息进行识别首先要对图片进行预处理 排除干扰的因素 只留下有价值的信息 这里需要两张图 一张为有数据的图片 一张为仪表关闭时没有
  • 无线传感网课后习题(书本名称无线传感器网络基础 : 理论和实践 : Fundamentals of wireless sensor networks : theory and practice)二

    7 4 Describe a WSN application for each of the following categories time driven eventdriven and query driven 译 为以下每一种类型描
  • 系统安装部署系列教程(五):精简母盘和集成补丁

    所谓母盘就是我们平时说的官方原版镜像 在封装系统的过程中常常需要精简某些功能 有些功能在系统封装阶段是没办法彻底精简的 所以我们首先需要对官方镜像进行精简操作 以去除某些不需要的功能 减小镜像大小 精简母盘的工具有很多 Dism MSMG
  • Ovirt 基本介绍

    Ovirt 介绍 ovrit 介绍 部署架构 整体架构 虚拟化实现 CPU虚拟化 内存虚拟化 MMU virtualization 内存硬件辅助虚拟化 I O设备虚拟化 设备接口完全模拟 前端 后端模拟 直接划分 学习文档 在详细学习ovi
  • Math&System

    Math 概述 Math 包含执行基本数字运算的方法 调用方式 Math类中无构造方法 但内部的方法都是静态的 可以通过 类名 进行调用 常用方法 方法名 方法名 说明 public static int abs int a 返回参数的绝对
  • 【WORD】宏

    1 录制宏 2 选择快捷方式 2 1 按钮 2 2 键盘 输入的时候按CTRL ALT等辅助键 3 录制操作 改变字体颜色 改变字体大小 改变字体样式 4停止操作 5 访问宏 点击快速访问栏 快捷键输入
  • 循环中如果有某一次循环抛出异常了整个循环就停止的解决办法

    Transactional propagation Propagation REQUIRES NEW 转载于 https www cnblogs com handsomejunhong p 9318180 html
  • spring-boot-configuration-processor不生效问题

  • 电信业客户流失分析

    参考 https www kuxiao cn course pc course learning html cid C59a91e40e27ce170e7af714c 一 商业理解 QUESTION 1 预测哪些客户可能会流失 QUESTI
  • 精确时钟同步协议ptp/IEEE-1588v2协议-------(2)主从时钟之间的消息交互与时钟同步过程

    本文目录 1 主时钟和从时钟之间的消息交互流 2 延时delay和偏移offset的计算 2 1 延时delay的计算 2 2 偏移offset的计算 主时钟和从时钟之间 通过sync follow up delay request del
  • [黑盾杯]2020之Misc篇刷题记录(16)

    黑盾杯 2020之Misc篇刷题记录 16 黑盾杯 2020 encrypt 黑盾杯 2020 Blue 黑盾杯 2020 blind 黑盾杯 2020 Trees UTCTF 2020 Spectre UTCTF 2020 Observe
  • (四)SQL

    本篇介绍SQL的数据库定义语言DDL 主要有数据库的增删改用 表的增删改查 并且配套有MySQL实操练习 01 数据库的增删查用 1 1 基本语法 查询数据库 SHOW DATABASES 查询所有数据库 SELECT DATABASE 查
  • matlab折线图折点加数值

    1 只显示y轴数值 x 0 8 acc 100 100 100 100 100 99 9 97 45 73 95 39 59 plot x acc LineWidth 1 5 xlabel 噪声等级 FontSize 16 ylabel 聚
  • cmd输出彩色字体(win10 cmd控制台支持ANSI转义序列)

    这是啥 ANSI转义序列是一种带内信号的转义序列标准 用于控制视频文本终端上的光标位置 颜色和其他选项 在文本中嵌入确定的字节序列 大部分以ESC转义字符和 字符开始 终端会把这些字节序列解释为相应的指令 而不是普通的字符编码 ANSI序列
  • CSDN-markdown编辑器使用详细

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题 有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容居中 居左 居右 Sma
  • 网易2018校招编程题集合4

    小易有一个长度为n的整数序列 a 1 a n 然后考虑在一个空序列b上进行n次以下操作 1 将a i放入b序列的末尾 2 逆置b序列 小易需要你计算输出操作n次之后的b序列
  • 登录Windows自动映射磁盘

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