如何使用Powershell根据用户位置映射多个网络驱动器?

时间:2019-07-05 18:10:45

标签: powershell networking scripting drive

尝试创建一个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消失了,找到了计算机的位置。我只需要使用它们所处的状态即可。根据它们所处的状态,为该状态下的办公室映射某些驱动器。例如,如果他们在北卡罗莱纳州,则绘制Raleigh Shares。我认为我需要使用“ foreach”命令,但不确定如何将其合并。

1 个答案:

答案 0 :(得分:0)

为简单起见,我假设您可以成功确定办公室,并且您要在$office中存储由此找到的办公室名称,并且您已经编写了函数{{ 1}},返回要分配给下一个驱动器的字母:

Get-NextAvailableDrive

如果添加新的办公室,您所要做的就是将办公室位置添加到交换机中,并安排将要列出的办公室股票分配到上述交换机中的$ sharelist中。