当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 为多个用户替换 sysvol 中的驱动器映射

作者:精品下载站 日期:2024-12-14 07:12:16 浏览:15 分类:玩电脑

为多个用户替换 sysvol 中的驱动器映射


为多个用户替换 sysvol 中的驱动器映射

你好呀,

作为一名顾问,我看到了很多客户环境。在每种环境中都有另一种映射网络驱动器的方法。今天我想重点讨论每个用户都有自己的脚本的环境(是的,我经常看到这种情况)。

正如您可以想象的那样,更改所有这些人的驱动器映射并不容易。

解决方案非常简单:powershell,它可以节省您处理登录脚本的时间。

那么我们在哪里可以找到用户映射的登录脚本呢?

[玩转系统] 为多个用户替换 sysvol 中的驱动器映射

我的测试环境仅包含 7 个登录脚本

[玩转系统] 为多个用户替换 sysvol 中的驱动器映射

有些文件相似,但没有一个文件是相同的。

如果您想更改文件服务器或合并结构,则必须一次更改所有文件。就我而言,这是可能的,但如果您有 100 个登录脚本,则需要大量时间和耐心。

或者您可以使用 powershell 轻松更改所有文件。

让我们看看我是如何完成这项工作的:

使用 sysvol /netlogon 的管理员权限在计算机上启动 ISE,然后更改为 netlogon 文件夹

Set-Location \demo01.it-koehler.com\NETLOGON

get-childitem

您现在应该看到所有登录脚本

[玩转系统] 为多个用户替换 sysvol 中的驱动器映射

现在我们准备在所有登录脚本中搜索某些模式(仅查看)

$searchstring = "fs01"
$paths = (gci -File |foreach-object{if ((select-string -inputobject $_ -Pattern "$searchstring")){($_).FullName}})
$paths

[玩转系统] 为多个用户替换 sysvol 中的驱动器映射

我现在可以看到,“fs01”仅在 test02.cmd 中可用

[玩转系统] 为多个用户替换 sysvol 中的驱动器映射

下一步是将此网络映射删除到“fs01”并给它“fs03”,所以我们开始:

$searchstring = "fs01"
$paths = (gci -File |foreach-object{if ((select-string -inputobject $_ -Pattern "$searchstring")){($_).FullName}})
$paths
foreach($path in $paths){
Set-Content $path -Value ((get-content $path | select-string -pattern "$searchstring" -notmatch))
gci -File $path | Add-Content -Value ("@net use v: /delete /y")
gci -File $path | Add-Content -Value ("@net use v: \fs03.demo01.it-koehler.com\data")
}

该脚本将消除包含“fs01”的完整行并将添加新服务器

[玩转系统] 为多个用户替换 sysvol 中的驱动器映射

在test02.cmd中查看结果

[玩转系统] 为多个用户替换 sysvol 中的驱动器映射

如果您想对所有脚本有一个完整的概述(一个txt文件中所有文件的内容),您可以使用此脚本

$profilebat = Get-ChildItem -File
$profilebat 
foreach ($bat in $profilebat){
$bat.FullName | Out-File C:\temp\profile-bat-content.txt -Encoding utf8 -Append
Get-Content -Path $bat.FullName | Out-File C:\temp\profile-bat-content.txt -Encoding utf8 -Append
}

[玩转系统] 为多个用户替换 sysvol 中的驱动器映射

非常简单并且可以完成工作。

如果您有疑问,请发表评论,如果您喜欢这篇文章,请按“喜欢”按钮。

享受您的登录脚本的乐趣。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯