【问题标题】:Powershell Apply variable to column results for later usePowershell 将变量应用于列结果以供以后使用
【发布时间】: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


    【解决方案1】:
    foreach ($row in $results) {
        New-PSDrive -Name $row.Letter -root $row.Path -Description $row.name    
    }
    

    【讨论】:

    • 虽然这段代码 sn-p 可以解决问题,包括说明 如何为什么 这解决了问题 would really help 以改进你的帖子质量。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人!请edit您的答案添加解释,并说明适用的限制和假设。
    最近更新 更多