Я работал над тем, чтобы упростить сопоставление дисков для пользователей с доступом через 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?