ใฏใ˜ใ‚ใซ

ไปฅๅ‰ Windows Server ไธปไฝ“ใฎ็’ฐๅขƒใง Active Directory ็ฎก็†ใ‚„ใ‚ขใ‚ซใ‚ฆใƒณใƒˆๅ‡ฆ็†ใ‚’ๆ‹…ๅฝ“ใ—ใฆใ„ใŸใ“ใจใŒใ‚ใ‚Šใ€ใใ‚Œใ‚‰ใ‚’่‡ชๅ‹•ๅŒ–ใ™ใ‚‹ๆ‰‹ๆฎตใจใ—ใฆ PowerShell ใ‚’ๆฏŽๆ—ฅใฎใ‚ˆใ†ใซ่งฆใฃใฆใ„ใพใ—ใŸใ€‚้ ปๅบฆใฏ่ฝใกใพใ—ใŸใŒใ€็พๅœจใงใ‚‚ไปฅไธ‹ใฎใ‚ˆใ†ใชๆ„Ÿใ˜ใง่งฆใฃใฆใ„ใพใ™ใ€‚

  • AWS CLI ใ‚ˆใ‚Š AWS Tools for PowerShell ใฎๆ–นใŒๅพ—ๆ„
  • mac ใซใ‚‚ pwsh ๅ…ฅใ‚Œใฆใ‚‹

ๆœฌ่จ˜ไบ‹ใฏ PowerShell ใ‚’่งฆใฃใฆใใฆ่“„็ฉใ—ใŸใƒŽใ‚ฆใƒใ‚ฆใ‚’ๅฐใƒใ‚ฟใจใ—ใฆๆ”พๅ‡บใ—ใŸใ„ใจใ„ใ†ใฎใŒใƒขใƒใƒ™ใƒผใ‚ทใƒงใƒณใงๆ›ธใ„ใฆใ„ใพใ™ใ€‚ใฒใจใคใฒใจใคใฎ็ฒ’ๅบฆใŒๅฐใ•ใ„ใฎใงใ€่ค‡ๆ•ฐๅ›žใซๅˆ†ใ‘ใฆ็ดนไป‹ใ—ใพใ™ใ€‚ใชใŠใ€ๅŸบๆœฌ็š„ใซใ‚ฏใƒญใ‚นใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ๅฏพๅฟœๅพŒใฎ PowerShell 6 ไปฅ้™ใ‚’ๅ‰ๆใจใ—ใพใ™ใ€‚ใจใ“ใ‚ใฉใ“ใ‚ใง bash ใจๆฏ”่ผƒใ—ใพใ™ใ€‚

1. OS ใซใ‚ˆใฃใฆ้•ใ†ใ‚ณใƒžใƒณใƒ‰ใ‚’ๅฎŸ่กŒใ™ใ‚‹
2. ใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใฎใƒ‘ใ‚นใ‚’ๅ–ๅพ—ใ™ใ‚‹
3. ็ฎก็†่€…ๆจฉ้™ใŒใ‚ใ‚‹ใ‹็ขบ่ชใ™ใ‚‹ (Windows ้™ๅฎš)
4. ไพ‹ๅค–ใฎๅ‡บๅŠ›ใ‚’ใ™ใฃใใ‚Šใ•ใ›ใ‚‹
5. ใ‚ณใƒžใƒณใƒ‰ใƒฉใ‚คใƒณใงๅคฉๆฐ—ไบˆๅ ฑใ‚’่ฆ‹ใ‚‹ (ๅฐใƒใ‚ฟ)

1. OS ใซใ‚ˆใฃใฆ้•ใ†ใ‚ณใƒžใƒณใƒ‰ใ‚’ๅฎŸ่กŒใ™ใ‚‹

PowerShell 6 ไปฅ้™ใฏไปฅไธ‹ใฎ่‡ชๅ‹•ๅค‰ๆ•ฐใง OS ใŒๅˆคๅฎšใงใใพใ™ใ€‚

  • $IsWindows
  • $IsMacOs
  • $IsLinux

ใ“ใ‚Œใ‚’ๅˆฉ็”จใ—ใฆไปฅไธ‹ใฎใ‚ˆใ†ใซ OS ใ”ใจใซๆŒ™ๅ‹•ใŒๅค‰ใ‚ใ‚‹้–ขๆ•ฐใ‚’็ฐกๅ˜ใซๆ›ธใใ“ใจใŒใงใใพใ™ใ€‚

#Requires -Version 6.0

function oscmd {
  param (
    [Alias('w')]
    [scriptblock]$windows,
    [Alias('m')]
    [scriptblock]$macos,
    [Alias('l')]
    [scriptblock]$linux
  )

  if ($IsWindows -and $null -ne $windows) {
    Invoke-Command -ScriptBlock $windows
  }
  if ($IsMacOS -and $null -ne $macos) {
    Invoke-Command -ScriptBlock $macos
  }
  if ($IsLinux -and $null -ne $linux) {
    Invoke-Command -ScriptBlock $linux
  }
}

ไฝฟใ„ๆ–น

oscmd -windows { explorer "https://google.co.jp" } -macos { open "https://google.co.jp" } -linux { curl "https://google.co.jp" }

ใ‚ฏใƒฉใ‚นใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ใฎใ‚ทใ‚งใƒซใจใ„ใ†็‰นๆ€งใซ็€็›ฎใ—ใŸใ‚ขใƒ—ใƒญใƒผใƒใŒใงใใฆไพฟๅˆฉใงใ™ใญใ€‚

2. ใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณใฎใƒ‘ใ‚นใ‚’ๅ–ๅพ—ใ™ใ‚‹

ไฝฟใ„ใŸใ„ใƒ„ใƒผใƒซใŒใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚Œใฆใ„ใ‚‹ใ‹็ขบ่ชใ—ใŸใ„ๅ ดๅˆใ€bash ใงใฏไปฅไธ‹ใฎใ‚ˆใ†ใซใ™ใ‚‹ใจๆ€ใ„ใพใ™ใ€‚

command -v jq

# or
which jq

ใ“ใ‚Œใ‚’ PowerShell ใงใ‚„ใ‚ŠใŸใ„ๅ ดๅˆใ€ไปฅไธ‹ใฎใ‚ˆใ†ใช้–ขๆ•ฐใงไผผใŸๆŒ™ๅ‹•ใ‚’ๅฎŸ็พใงใใพใ™ใ€‚bash ใจ้•ใฃใฆ $? ใซใฏ $true ใŒๆ ผ็ดใ•ใ‚Œใพใ™ใŒใ€ๆˆปใ‚Šๅ€คใŒ $null ใ‹ใฉใ†ใ‹ใงๅˆคๅฎšใงใใพใ™ใ€‚

function apppath {
  param (
    [Alias('n')]
    [string]$name
  )

  if (!$name) {
    throw 'Name required'
  }

  $app = Get-Command -Name $name -CommandType Application -ErrorAction Ignore

  if ($app) {
    return $app.Source
  }

  return
}

ใƒ„ใƒผใƒซใŒใชใ„ๅ ดๅˆใซๆ—ฉๆœŸใƒชใ‚ฟใƒผใƒณใ—ใŸใ„ๅ ดๅˆใฏไปฅไธ‹ใฎใ‚ˆใ†ใซใ—ใพใ™ (bash ใจๆฏ”่ผƒ)

bash ใฎๅ ดๅˆ

if ! command -v jq &>/dev/null; then
  echo "ERROR: 'jq' not found"
  return 1
fi

PowerShell ใฎๅ ดๅˆ

if (!(apppath -name jq)) {
  Write-Output "ERROR: 'jq' not found"
  return
}

3. ็ฎก็†่€…ๆจฉ้™ใŒใ‚ใ‚‹ใ‹็ขบ่ชใ™ใ‚‹ (Windows ้™ๅฎš)

็ฎก็†่€…ๆจฉ้™ใฎๆœ‰็„กใ‚’ใ‚ณใƒžใƒณใƒ‰ใƒฉใ‚คใƒณใง็ขบ่ชใ—ใฆๅ‡ฆ็†ใ‚’ๅˆ†ๅฒใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚‹ใจใ—ใพใ™ใ€‚Windows ็ซฏๆœซใฎๅˆๆœŸๅŒ–ใชใฉใง้‡ๅฎใ—ใใ†ใงใ™ใญใ€‚ไปฅไธ‹ใฎใ‚ˆใ†ใซ .NET ใฎใ‚ฏใƒฉใ‚นใ‚’ไฝฟใˆใฐๅฎŸ็พใงใใพใ™ใ€‚

#Requires -Version 6.0

function isadmin {
  if (!$IsWindows) {
    throw 'This function is only valid if Windows'
  }
  $principal = [Security.Principal.WindowsPrincipal]::new([Security.Principal.WindowsIdentity]::GetCurrent())
  return $principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
}

4. ไพ‹ๅค–ใฎๅ‡บๅŠ›ใ‚’ใ™ใฃใใ‚Šใ•ใ›ใ‚‹

้€šๅธธ PowerShell ใงไพ‹ๅค–ใ‚’ throw ใ™ใ‚‹ใจใ€ใƒฆใƒผใ‚ถใƒผใซ่ฆ‹ใ›ใŸใใชใ„ๅ†…้ƒจ็š„ใชใ‚ณใƒผใƒ‰ใŒ้œฒๅ‡บใ—ใพใ™ใ€‚่ฉฆใ—ใซ .ps1 ใƒ•ใ‚กใ‚คใƒซใซไปฅไธ‹ใ‚’ๆ›ธใ„ใฆๅฎŸ่กŒใ—ใฆใฟใพใ—ใ‚‡ใ†ใ€‚

throw "this is exception"

ใ“ใ‚“ใชๆ„Ÿใ˜ใง่กจ็คบใ•ใ‚Œใพใ™ใ€‚ใƒฆใƒผใ‚ถใƒผใฏ้–ขๆ•ฐใฎๅ†…้ƒจใ‚’็Ÿฅใ‚‹ๅฟ…่ฆใŒใชใใ€ไปฃใ‚ใ‚Šใซใƒกใƒƒใ‚ปใƒผใ‚ธใ ใ‘่กจ็คบใ•ใ‚ŒใŸใปใ†ใŒใ„ใ„ๅ ด้ขใ‚‚ๅคšใใ†ใงใ™ใ€‚

Exception: /Users/user1/bin/test.ps1:1:1
Line |
   1 |  throw "this is exception"
     |  ~~~~~~~~~~~~~~~~~~~~~~~~~
     | this is exception

ใใ†ใ„ใ†ๅ ดๅˆใฏไปฅไธ‹ใฎใ‚ˆใ†ใซๆ›ธใใ“ใจใง่ฆไปถใ‚’ๆบ€ใŸใ›ใพใ™ใ€‚

[CmdletBinding()]
param()

try {
  throw "this is exception"
}
catch {
  $PSCmdlet.ThrowTerminatingError($PSItem)
}

ใพใš CmdletBinding ใ‚’ไฝฟใฃใฆ้–ขๆ•ฐใ‚’ใ‚ณใƒžใƒณใƒ‰ใƒฌใƒƒใƒˆใฎใ‚ˆใ†ใซๆฉŸ่ƒฝใ•ใ›ใ‚‹ใ“ใจใ‚’ๆŒ‡็คบใ—ใพใ™ (้ซ˜ๅบฆใช้–ขๆ•ฐใจๅ‘ผใถใ‚‰ใ—ใ„ใงใ™)
ใ“ใ‚Œใซใ‚ˆใฃใฆไปŠๅ›žไฝฟใ„ใŸใ„่‡ชๅ‹•ๅค‰ๆ•ฐ $PSCmdlet ใ‚„ $PSItem ใ‚‚ไฝฟใˆใ‚‹ใ‚ˆใ†ใซใชใ‚Šใพใ™ใ€‚

ๆฌกใซๅ…จไฝ“ใ‚’ try/catch ใงๅ›ฒใฟใ€catch ใฎไธญใง $PSCmdlet.ThrowTerminationgError($PSItem) ใจๆ›ธใ„ใฆๆ•ๆ‰ใ—ใŸใ‚จใƒฉใƒผใ‚’ๅ†ใ‚นใƒญใƒผใ—ใพใ™ใ€‚$PSItem ใฎไธญ่บซใฏ ErrorRecord ใชใฎใงใ€ใ“ใ‚Œใ‚’ๅ†ใ‚นใƒญใƒผใ™ใ‚‹ใจ ErrorRecord ใฎใฟใŒ่กจ็คบใ•ใ‚Œใพใ™(ๅ…ƒใƒใ‚ฟ)

Exception: this is exception

5. ใ‚ณใƒžใƒณใƒ‰ใƒฉใ‚คใƒณใงๅคฉๆฐ—ไบˆๅ ฑใ‚’่ฆ‹ใ‚‹ (ๅฐใƒใ‚ฟ)

ๅฐใƒใ‚ฟไธญใฎๅฐใƒใ‚ฟใงใ™ใ€‚ใ‚ขใ‚นใ‚ญใƒผใ‚ขใƒผใƒˆใงๅคฉๆฐ—ไบˆๅ ฑใ‚’็ขบ่ชใงใใ‚‹ wttr.in ใจใ„ใ†ใ‚ตใ‚คใƒˆใŒใ‚ใ‚Šใพใ™ใ€‚ใ‘ใฃใ“ใ†ๆ˜”ใ‹ใ‚‰ใ‚ใ‚‹ใฟใŸใ„ใงใ™ใญใ€‚ใ“ใ‚Œใ‚’ๅˆฉ็”จใ—ใฆใ‚ณใƒžใƒณใƒ‰ใƒฉใ‚คใƒณใง็›ด่ฟ‘ 3 ๆ—ฅ้–“ใฎๅคฉๆฐ—ไบˆๅ ฑใ‚’็ขบ่ชใงใใพใ™ใ€‚ๅผ•ๆ•ฐใงๅœฐๅใ‚’ๆธกใ—ใพใ—ใ‚‡ใ†ใ€‚

bash

tenki() {
  curl "https://wttr.in/$1?lang=ja"
}

PowerShell

function tenki {
  param (
    [string]$place
  )
  Invoke-RestMethod -Uri "https://wttr.in/${place}?lang=ja" -Method Get
}

ใจใ‚ใ‚‹ๆ—ฅใฎๅคฉๆฐ—

$ tenki -place ๆฑไบฌ
ๅคฉๆฐ—ไบˆๅ ฑ๏ผš ๆฑไบฌ

     \  /       ๆ‰€ใซใ‚ˆใ‚Šๆ›‡ใ‚Š
   _ /"".-.     +28(30) ยฐC     
     \_(   ).   โ†– 13 km/h      
     /(___(__)  10 km          
                0.0 mm         
                                                       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                                                       
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค  ๆœจ 14 9ๆœˆ  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              ๆœ              โ”‚              ๆ˜ผ       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜        ๅค•             โ”‚              ๅคœ              โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚    \  /       ๆ‰€ใซใ‚ˆใ‚Šๆ›‡ใ‚Š   โ”‚     \   /     ๆ™ดใ‚Œ           โ”‚     \   /     ๅฟซๆ™ด           โ”‚     \   /     ๅฟซๆ™ด           โ”‚
โ”‚  _ /"".-.     +28(32) ยฐC     โ”‚      .-.      +31(34) ยฐC     โ”‚      .-.      +29(32) ยฐC     โ”‚      .-.      +29(32) ยฐC     โ”‚
โ”‚    \_(   ).   โ†– 13-14 km/h   โ”‚   โ€• (   ) โ€•   โ†‘ 21-24 km/h   โ”‚   โ€• (   ) โ€•   โ†‘ 24-31 km/h   โ”‚   โ€• (   ) โ€•   โ†‘ 17-23 km/h   โ”‚
โ”‚    /(___(__)  10 km          โ”‚      `-โ€™      10 km          โ”‚      `-โ€™      10 km          โ”‚      `-โ€™      10 km          โ”‚
โ”‚               0.0 mm | 0%    โ”‚     /   \     0.0 mm | 0%    โ”‚     /   \     0.0 mm | 0%    โ”‚     /   \     0.0 mm | 0%    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                                       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                                                       
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค  ้‡‘ 15 9ๆœˆ  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              ๆœ              โ”‚              ๆ˜ผ       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜        ๅค•             โ”‚              ๅคœ              โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚     \   /     ๆ™ดใ‚Œ           โ”‚               ๆ›‡ใ‚Š           โ”‚               ๆ›‡ใ‚Š           โ”‚               ๆ›‡ใ‚Š           โ”‚
โ”‚      .-.      +30(33) ยฐC     โ”‚      .--.     +32(36) ยฐC     โ”‚      .--.     +29(33) ยฐC     โ”‚      .--.     +27(30) ยฐC     โ”‚
โ”‚   โ€• (   ) โ€•   โ†“ 12-14 km/h   โ”‚   .-(    ).   โ† 10-13 km/h   โ”‚   .-(    ).   โ† 17-23 km/h   โ”‚   .-(    ).   โ†™ 17-22 km/h   โ”‚
โ”‚      `-โ€™      10 km          โ”‚  (___.__)__)  10 km          โ”‚  (___.__)__)  10 km          โ”‚  (___.__)__)  10 km          โ”‚
โ”‚     /   \     0.0 mm | 0%    โ”‚               0.0 mm | 0%    โ”‚               0.0 mm | 0%    โ”‚               0.0 mm | 0%    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                                       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                                                       
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค  ๅœŸ 16 9ๆœˆ  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              ๆœ              โ”‚              ๆ˜ผ       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜        ๅค•             โ”‚              ๅคœ              โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚               ๆ›‡ใ‚Š           โ”‚               ๆ›‡ใ‚Š           โ”‚    \  /       ๆ‰€ใซใ‚ˆใ‚Šๆ›‡ใ‚Š   โ”‚    \  /       ๆ‰€ใซใ‚ˆใ‚Šๆ›‡ใ‚Š   โ”‚
โ”‚      .--.     +28(31) ยฐC     โ”‚      .--.     +30(34) ยฐC     โ”‚  _ /"".-.     +30(33) ยฐC     โ”‚  _ /"".-.     +29(32) ยฐC     โ”‚
โ”‚   .-(    ).   โ†™ 6-8 km/h     โ”‚   .-(    ).   โ†‘ 2 km/h       โ”‚    \_(   ).   โ†‘ 16-21 km/h   โ”‚    \_(   ).   โ†‘ 15-20 km/h   โ”‚
โ”‚  (___.__)__)  10 km          โ”‚  (___.__)__)  10 km          โ”‚    /(___(__)  10 km          โ”‚    /(___(__)  10 km          โ”‚
โ”‚               0.0 mm | 0%    โ”‚               0.0 mm | 0%    โ”‚               0.0 mm | 0%    โ”‚               0.0 mm | 0%    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
ไฝ็ฝฎๆƒ…ๅ ฑ: ๆฑไบฌ, ๅƒไปฃ็”ฐๅŒบ, ๆฑไบฌ้ƒฝ, ๆ—ฅๆœฌ

Follow @igor_chubin for wttr.in updates

PowerShell ใฎ่ฉฑใงใฏใชใ„ใงใ™ใญใ€‚ใ€‚

ใŠใ‚ใ‚Šใซ

PowerShell ใฏ็ฝ ใจๅ‘ผใฐใ‚Œใ‚‹ใ‚‚ใฎใŒใŸใใ•ใ‚“ใ‚ใ‚Šใ€็™–ใŒๅผทใๆ‰ฑใ„ใฅใ‚‰ใ„้ขใŒใ‚ใ‚Šใพใ™ใ€‚ใŒใ€ไฝฟใ„ใ“ใชใ›ใฐๅผทๅŠ›ใชใƒ„ใƒผใƒซใซใชใ‚Šๅพ—ใพใ™ใ€‚