【发布时间】:2025-12-01 10:50:01
【问题描述】:
我一直致力于为具有 VPN 访问权限的用户简化驱动器映射。
我有一点 PS 脚本,它给我一个表,然后我想为每列分配一个变量并使用这些变量来映射驱动器。
这是我的脚本:
$GPO = Get-GPO -All
foreach ($Policy in $GPO)
{
$GPOID = $Policy.Id
$GPODom = $Policy.DomainName
$GPODisp = $Policy.DisplayName
if (Test-Path "\\$($GPODom)\SYSVOL\$($GPODom)\Policies\{$($GPOID)}\User\Preferences\Drives\Drives.xml")
{
[xml]$DriveXML = Get-Content "\\$($GPODom)\SYSVOL\$($GPODom)\Policies\{$($GPOID)}\User\Preferences\Drives\Drives.xml"
foreach ( $drivemap in $DriveXML.Drives.Drive )
{New-Object PSObject -Property @{
Letter = $drivemap.Properties.Letter + ":"
Path = $drivemap.Properties.Path
Name = $drivemap.Properties.label
}}}}
这是我的结果:
Letter Path Name
----------- --------- ----------
S: \\share\Share Share
X: \\share1\IT Private IT Private
I: \\share3\IT Department IT Department
F: \\sahre4\Public Public
W: \\share5\EmployeeReference Emplyee
R: \\sahre5\Reports Reports
此时我需要将每一列设置为变量,以便为用户映射这些驱动器。
$l = driveletter
$p = drivepath
$n = drivelabel
New-PSDrive -Name $l -root $p
不确定我是否在正确的轨道上。是几个嵌套的 foreach 语句吗?
【问题讨论】:
标签: powershell vpn gpo