Как сохранить переменную от @ {} вместо значения - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь извлечь информацию о подразделении из внешнего вида вместо того, чтобы открывать AD и переименовывать подразделение, чтобы скопировать его для вставки в переменную get-host.

Когда я использую код ниже, он передает @ {значение для отправки}. Даже когда я указываю var как $ ouname.name, он все равно помещает только @ {значение} вместо значения. Как мне просто отправить значение переменной? Является ли это результатом использования внешнего вида вместо просто вставки нужного значения в get-host = $ ouname?

# Use a GUI to provide an OU list to select from.
$OUName = Get-ADOrganizationalUnit -SearchBase "OU=Hosted Exchange Customers,DC=Domainname,DC=local" -Filter '*' | 
Select Name| 
Sort Name | 
Out-GridView -PassThru -Title 'Select the OU name to search' 

#Get ActiveSync and Mailbox data
$EASDevices = ""
$AllEASDevices = @()

$EASDevices = ""| select 'User','PrimarySMTPAddress','DeviceType','DeviceModel','DeviceOS', 'LastSyncAttemptTime','LastSuccessSync'
$EasMailboxes = Get-Mailbox -OrganizationalUnit "OU=$OUname,OU=Hosted Exchange Customers,DC=Domainname,DC=local" -ResultSize unlimited
foreach ($EASUser in $EasMailboxes) {
$EASDevices.user = $EASUser.displayname
$EASDevices.PrimarySMTPAddress = $EASUser.PrimarySMTPAddress.tostring()
    foreach ($EASUserDevices in Get-ActiveSyncDevice -Mailbox $EasUser.alias) {
$EASDeviceStatistics = $EASUserDevices | Get-ActiveSyncDeviceStatistics
    $EASDevices.devicetype = $EASUserDevices.devicetype
    $EASDevices.devicemodel = $EASUserDevices.devicemodel
    $EASDevices.deviceos = $EASUserDevices.deviceos
$EASDevices.lastsyncattempttime = $EASDeviceStatistics.lastsyncattempttime
$EASDevices.lastsuccesssync = $EASDeviceStatistics.lastsuccesssync
    $AllEASDevices += $EASDevices | select user,primarysmtpaddress,devicetype,devicemodel,deviceos,lastsyncattempttime,lastsuccesssync
    }
    }
$AllEASDevices = $AllEASDevices | sort user
$AllEASDevices
$AllEASDevices | Export-Csv $fname

1 Ответ

0 голосов
/ 09 июля 2019

Я обнаружил, что если я передам первый Var в другой var и вызову второй var, он будет работать так, как задумано.

# Use a GUI to provide an OU list to select from.
$OUName = Get-ADOrganizationalUnit -SearchBase "OU=Hosted Exchange Customers,DC=Domainname,DC=local" -Filter '*' | 
Select Name| 
Sort Name | 
Out-GridView -PassThru -Title 'Select the OU name to search' 

$ou = $ouname.name

#Get ActiveSync and Mailbox data
$EASDevices = ""
$AllEASDevices = @()

$EASDevices = ""| select 'User','PrimarySMTPAddress','DeviceType','DeviceModel','DeviceOS', 'LastSyncAttemptTime','LastSuccessSync'
$EasMailboxes = Get-Mailbox -OrganizationalUnit "OU=$OU,OU=Hosted Exchange Customers,DC=Domainname,DC=local" -ResultSize unlimited
foreach ($EASUser in $EasMailboxes) {
$EASDevices.user = $EASUser.displayname
$EASDevices.PrimarySMTPAddress = $EASUser.PrimarySMTPAddress.tostring()
    foreach ($EASUserDevices in Get-ActiveSyncDevice -Mailbox $EasUser.alias) {
$EASDeviceStatistics = $EASUserDevices | Get-ActiveSyncDeviceStatistics
    $EASDevices.devicetype = $EASUserDevices.devicetype
    $EASDevices.devicemodel = $EASUserDevices.devicemodel
    $EASDevices.deviceos = $EASUserDevices.deviceos
$EASDevices.lastsyncattempttime = $EASDeviceStatistics.lastsyncattempttime
$EASDevices.lastsuccesssync = $EASDeviceStatistics.lastsuccesssync
    $AllEASDevices += $EASDevices | select user,primarysmtpaddress,devicetype,devicemodel,deviceos,lastsyncattempttime,lastsuccesssync
    }
    }
$AllEASDevices = $AllEASDevices | sort user
$AllEASDevices
$AllEASDevices | Export-Csv $fname
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...