Как сопоставить несколько сетевых дисков в зависимости от местоположения пользователя с помощью powershell? - PullRequest
0 голосов
/ 05 июля 2019

Попытка создать сценарий powershell для этого, но я не могу понять, как закодировать логику, чтобы узнать, в каком месте находится пользователь и какую сеть диски подключать.Это будет использоваться для людей, которые путешествуют.

Я занимался исследованиями и пробами и ошибками чуть более недели.

$AustinShares = @(
    "\\Austin-2016\Austin"
    "\\Austin-2016\PowerCommon"
    )

    $RaleighShares = @(
    "\\Raleigh-2016\PowerCommon"
    "\\Raleigh-2016\Scans"
    "\\Raleigh-2016\PowerProjectControls"
    )

    $AllShares = $AustinShares + $RaleighShares

$apiurl = "http://api.ipstack.com/check?access_key=b0639dfc83871399c5d4d122998f0347"

            $apiresponse = Invoke-RestMethod -Method Get -URI $apiurl

            $hash = @{
                IP = $apiresponse.ip
                Country = $apiresponse.country_name
                RegionName = $apiresponse.region_name
                City = $apiresponse.city
                }

            $result = New-Object PSObject -Property $hash

Write-Output $result

$TestPath = get-wmiobject win32_logicaldisk | Select-Object -expand DeviceID -Last 1 |
ForEach-Object { [char]([int][char]$_[0]  + 1) + $_[1] }

If ($apiresponse.region_name -eq $Locations){
    ForEach-Object
    New-PSDrive -Name $TestPath -Root $DrivePath  -Persist -PSProvider "FileSystem"
}

Итак, API определения местоположения выходит, находитрасположение компьютера.Мне просто нужно использовать состояние, в котором они находятся. В зависимости от того, в каком состоянии они находятся, подключите определенные диски для офиса в этом состоянии.Например, если они находятся в Северной Каролине, составьте карту акций Роли.Я думаю, что мне нужно использовать команду "foreach", но я не уверен, как ее включить.

1 Ответ

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

Для простоты и ясности я собираюсь предположить, что вы можете успешно определить офис, и что вы сохраняете название офиса, таким образом найденное в $office, и что вы написали функцию Get-NextAvailableDrive, которая возвращает букву для следующего назначенного диска:

Switch ($office) {
    "Raleigh"    {$sharelist = $RaleighShares}
    "Austin"     {$sharelist = $AustinShares}
# You can add additional office and their shares here as required
}

ForEach ($share in $sharelist) {
    New-PSDrive -Name (Get-NextAvailableDrive) -Root $share -Persist -PSProvider "FileSystem"
}

Если вы добавляете новые офисы, все, что вам нужно сделать, это добавить местоположение офиса к коммутатору и договориться о том, чтобы общие доли этого офиса были включены в список $ sharelist на коммутаторе выше.

...