【发布时间】:2018-07-26 23:36:13
【问题描述】:
简介
我的任务是创建一个用于我们的一位客户的用户管理 PowerShell 脚本,以便我们可以轻松管理用户并自动化我们的许多用户创建过程。
问题
我们的客户坚持使用登录脚本而不是 GPO 来为用户映射驱动器。我已经在脚本中添加了一个登录脚本生成器,但是我终其一生都无法弄清楚如何指定哪些驱动器实际上需要添加到登录脚本中。
如何管理驱动器映射
在我们客户的网络中管理驱动器映射的方式是基于工作角色 + Active Directory 组。他们在 E-Form 上请求需要映射哪些驱动器,然后我们查看 Active Directory 以查看哪个组有权访问所请求的驱动器。然后我们添加这些组。
我需要什么帮助
我决定管理此问题的方法是在参数“$Drives”下有多个 IF 语句。我不确定我会怎么做。我想这样做的原因是,当它将输出写入登录脚本时,我只需要在输出中添加一个'$Drives'。
当前代码
注意:这可能并不完全正确,实际脚本中可能存在中间代码。这只是相关代码。
$NewName = $SAMAccountName
$extension = ".bat"
$FileName = "$SAMAccountName$extension"
$ScriptDrive = "\\IPRemoved\scripts"
$Groups = Get-ADPrincipalGroupMembership $SAMAccountName | select name
$Drives = if ($Groups -contains 'Blah Blah Blah') {
Write-Output "Net Use N: "\\FILE0\DRIVE""
} else {
Write-Output ""
}
Write-Output "NET TIME \\FILE0 /SET /Y
$Drives
@echo off
REM -------------------------------
REM -- LANDesk v8.6.1 Installation --
REM -------------------------------
%LogonServer%\Netlogon\LANDesk\iDeploy.exe /F=%LogonServer%\Netlogon\LANDesk" `n`n|FT -AutoSize >>LoginScript.txt
Get-ChildItem LoginScript.txt | Rename-Item -NewName $FileName
Move-Item -Path ".\$FileName" -Destination $ScriptDrive
【问题讨论】:
-
我真的不明白这与您昨天提出的问题有何不同/或者您在这里有什么具体问题。预期的输出会很好。
-
@Paxz 昨天我在问具体的方法。今天我有了这个方法,只是不太确定它是否正确,以及如何基于组运行多个驱动器。示例输出: $drives 需要输出 Net use N: "\\FILE0\DRIVE1" 然后换行 Net use D: "\\FILE0\DRIVE2" 希望这是有道理的