เชนเซ เชนเชฌเชฐ! เชนเซเช เชคเชฎเชพเชฐเชพ เชงเซเชฏเชพเชจ เชชเชฐ เชฒเซเชเชจเซ เช
เชจเซเชตเชพเชฆ เชฐเชเซ เชเชฐเซเช เชเซเช
เชนเซเช เชตเชเชจ เชเชชเซเช เชเซเช เชเซ เชคเซ เชเชเซเชธเชฟเชฎเซเชฐเซเชจ เชจเชฅเซ"
เชเชฌเซเชเซเชเซเช-เชเชฐเชฟเชเชจเซเชเซเชก เช เชจเซ เชซเชเชเซเชถเชจเชฒ เชชเซเชฐเซเชเซเชฐเชพเชฎเชฟเชเช เชชเซเชฐเชพเชกเชฟเชฎเซเชธ เชเชเชฌเซเชเชพ เชธเชพเชฅเซ เชตเชฟเชฐเซเชงเชพเชญเชพเชธเซ เชฒเชพเชเซ เชเซ, เชชเชฐเชเชคเซ เชชเชพเชตเชฐเชถเซเชฒเชฎเชพเช เชฌเชเชจเซ เชธเชฎเชพเชจ เชฐเซเชคเซ เชธเชชเซเชฐเซเชเซเชก เชเซ. เชฒเชเชญเช เชคเชฎเชพเชฎ เชชเซเชฐเซเชเซเชฐเชพเชฎเชฟเชเช เชญเชพเชทเชพเช, เชเชพเชฐเซเชฏเชพเชคเซเชฎเช เชนเซเชฏ เชเซ เชจ เชนเซเชฏ, เชตเชฟเชธเซเชคเซเชค เชจเชพเชฎ-เชฎเซเชฒเซเชฏ เชฌเชเชงเชจ เชฎเชพเชเซ เชธเซเชตเชฟเชงเชพเช เชงเชฐเชพเชตเซ เชเซ; เชตเชฐเซเชเซ, เชเซเชฎ เชเซ เชธเซเชเซเชฐเชเซเชเชฐเซเชธ เช เชจเซ เชฐเซเชเซเชฐเซเชกเซเชธ, เชฎเชพเชคเซเชฐ เชเช เช เชญเชฟเชเชฎ เชเซ. เชเซ เชเชชเชฃเซ เชตเชฐเซเชเซเชจเชพ เช เชฎเชพเชฐเชพ เชเชชเชฏเซเชเชจเซ เชจเชพเชฎเซ เช เชจเซ เชฎเซเชฒเซเชฏเซเชจเชพ เชฌเชเชงเชจ เชธเซเชงเซ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชฐเชพเชเซเช, เช เชจเซ เชนเซเชตเซ เชเชฌเซเชเซเชเซเช-เชเชฐเชฟเชเชจเซเชเซเชก เชชเซเชฐเซเชเซเชฐเชพเชฎเชฟเชเช เชเซเชฏเชพเชฒเซ เชเซเชฎ เชเซ เชตเชพเชฐเชธเชพ, เชชเซเชฒเซเชฎเซเชฐเซเชซเชฟเชเชฎ เช เชฅเชตเชพ เชชเชฐเชฟเชตเชฐเซเชคเชจเชถเซเชฒเชคเชพ เชเชพเชณเซเช, เชคเซ เช เชฎเซ เช เชฎเชพเชฐเชพ เชเซเชกเชจเซ เชเชเชฟเชฒ เชฌเชจเชพเชตเซเชฏเชพ เชตเชฟเชจเชพ เชคเซเชฎเชจเชพ เชฒเชพเชญเซเชจเซ เชฒเชพเชญ เชฒเช เชถเชเซเช เชเซเช. เชเชเชณ, เช เชชเชฐเชฟเชตเชฐเซเชคเชจเชถเซเชฒ เชชเซเชฐเชเชพเชฐเชจเซ เชฐเซเชชเชพเชเชคเชฐเชฃ เชชเชฆเซเชงเชคเชฟเช เชเชฎเซเชฐเซเชจเซ, เช เชฎเซ เชตเชฐเซเชเซ เชธเชพเชฅเซ เช เชฎเชพเชฐเชพ เชเชพเชฐเซเชฏเชพเชคเซเชฎเช เชเซเชกเชจเซ เชธเชฎเซเชฆเซเชง เชฌเชจเชพเชตเซ เชถเชเซเช เชเซเช.
เชเชพเชคเชฟเชเชจเซ เชเชพเชฆเซ
เชเชพเชคเชฟ เช เชชเชพเชตเชฐเชถเซเชฒเชจเซ เชธเซเชฅเซ เชถเชเซเชคเชฟเชถเชพเชณเซ เชตเชฟเชถเซเชทเชคเชพเชเชฎเชพเชเชจเซ เชเช เชเซ. เชเซเชฏเชพเชฐเซ เชคเชฎเซ เชฎเซเชฒเซเชฏ เชเชพเชธเซเช เชเชฐเซ เชเซ, เชคเซเชฏเชพเชฐเซ เชคเชฎเซ เชเชฐเซเชญเชฟเชค เชเชฐเชเชญ เช เชจเซ เชฎเชพเชจเซเชฏเชคเชพ เชเซเชทเชฎเชคเชพเช เชชเชฐ เชเชงเชพเชฐ เชฐเชพเชเซ เชเซ เชเซ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชคเชฎเชพเชฐเซ เชเชชเซเชฒเชฟเชเซเชถเชจเชฎเชพเช เชเชฎเซเชฐเซ เชเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชซเชเซเชค [xml] เชฎเชพเช เชธเซเชเซเชฐเชฟเชเช เชเชพเชธเซเช เชเชฐเชตเชพเชฅเซ เชคเซ เชชเชพเชฐเซเชธเชฐ เชเซเชก เชฆเซเชตเชพเชฐเชพ เชเชพเชฒเชถเซ เช เชจเซ เชธเชเชชเซเชฐเซเชฃ xml เชเซเชฐเซ เชเชจเชฐเซเช เชเชฐเชถเซ. เช เชฎเซ เชธเชฎเชพเชจ เชนเซเชคเซ เชฎเชพเชเซ เช เชฎเชพเชฐเชพ เชเซเชกเชฎเชพเช เชตเชฐเซเชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซเช เชเซเช.
เชนเซเชถเชเซเชฌเชฒ เชเชพเชธเซเช เชเชฐเซ
เชเซ เชคเชฎเชพเชฐเซ เชชเชพเชธเซ เชเชจเซเชธเซเชเซเชฐเชเซเชเชฐ เชจ เชนเซเชฏ, เชคเซ เชคเชฎเซ เชคเชฎเชพเชฐเชพ เชตเชฐเซเช เชชเซเชฐเชเชพเชฐ เชชเชฐ เชนเซเชถเชเซเชฌเชฒ เชเชพเชธเซเช เชเชฐเซเชจเซ เชเช เชตเชฟเชจเชพ เชเชพเชฒเซ เชฐเชพเชเซ เชถเชเซ เชเซ. เช เชชเซเชเชฐเซเชจเชจเซ เชธเชเชชเซเชฐเซเชฃ เชฒเชพเชญ เชฒเซเชตเชพ เชฎเชพเชเซ เชฎเชพเชจเซเชฏเชคเชพ เชตเชฟเชถเซเชทเชคเชพเชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซเช เชญเซเชฒเชถเซ เชจเชนเซเช. เชคเซ เช เชธเชฎเชฏเซ, เช เชฎเซ เชตเชงเซ เชเชเชกเชพ เชชเซเชฐเชพเชฐเชเชญ เช เชจเซ เชฎเชพเชจเซเชฏเชคเชพ เชคเชฐเซเชเชจเซ เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ เชตเชฐเซเชเชจเซ เชเชพเชเชช เชเชฐเซเชฒ เชเซเชฃเชงเชฐเซเชฎเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซเช เชเซเช.
class Cluster {
[ValidatePattern("^[A-z]+$")]
[string] $Service
[ValidateSet("TEST", "STAGE", "CANARY", "PROD")]
[string] $FlightingRing
[ValidateSet("EastUS", "WestUS", "NorthEurope")]
[string] $Region
[ValidateRange(0, 255)]
[int] $Index
}
[Cluster]@{
Service = "MyService"
FlightingRing = "PROD"
Region = "EastUS"
Index = 2
}
เชตเชงเซเชฎเชพเช, เชเชพเชธเซเชเชฟเชเช เชธเซเชตเชเซเช เชเชเชเชชเซเช เชฎเซเชณเชตเชตเชพเชฎเชพเช เชฎเชฆเชฆ เชเชฐเซ เชเซ. เชเซ เชคเชฎเซ เช เชนเซเชถเชเซเชฌเชฒเซเชธเชจเซ เชชเซเชฐเชฅเชฎ เชตเชฐเซเชเชฎเชพเช เชเชพเชธเซเช เชเชฐเซ เชเซ เชคเซ เชคเชฎเชจเซ เชถเซเช เชฎเชณเซ เชเซ เชคเซเชจเซ เชธเชพเชฅเซ เชซเซเชฐเซเชฎเซเช-เชเซเชฌเชฒเชฎเชพเช เชชเชธเชพเชฐ เชเชฐเชพเชฏเซเชฒ เชเซเชฒเชธเซเชเชฐ เชนเซเชถเชเซเชฌเชฒ เชเชฐเซเชจเชพ เชเชเชเชชเซเชเชจเซ เชคเซเชฒเชจเชพ เชเชฐเซ. เชตเชฐเซเชเชจเชพ เชเซเชฃเชงเชฐเซเชฎเซ เชนเชเชฎเซเชถเชพ เชคเซ เชเซเชฐเชฎเชฎเชพเช เชธเซเชเชฟเชฌเชฆเซเชง เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเซเชฎเชพเช เชคเซ เชคเซเชฏเชพเช เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชคเซ เชคเชฎเชพเชฎ เชชเซเชฐเซเชชเชฐเซเชเซเช เชชเชนเซเชฒเชพ เชเซเชชเชพเชฏเซเชฒเชพ เชเซเชตเชฐเซเชก เชเชฎเซเชฐเชตเชพเชจเซเช เชญเซเชฒเชถเซ เชจเชนเซเช เชเซ เชเซ เชคเชฎเซ เชชเชฐเชฟเชฃเชพเชฎเซเชฎเชพเช เชเซเชตเชพ เชฎเชพเชเชเชคเชพ เชจเชฅเซ.
เช เชฐเซเชฅเซเชจเซ เชเชพเชธเซเช
เชเซ เชคเชฎเชพเชฐเซ เชชเชพเชธเซ เชเช เชฆเชฒเซเชฒ เชธเชพเชฅเซ เชเชจเซเชธเซเชเซเชฐเชเซเชเชฐ เชนเซเชฏ, เชคเซ เชคเชฎเชพเชฐเชพ เชตเชฐเซเชเชจเชพ เชชเซเชฐเชเชพเชฐ เชชเชฐ เชฎเซเชฒเซเชฏ เชเชพเชธเซเช เชเชฐเชตเชพเชฅเซ เชคเซ เชฎเซเชฒเซเชฏ เชคเชฎเชพเชฐเชพ เชเชจเซเชธเซเชเซเชฐเชเซเชเชฐเชจเซ เชชเชธเชพเชฐ เชฅเชถเซ, เชเซเชฏเชพเช เชคเชฎเซ เชคเชฎเชพเชฐเชพ เชตเชฐเซเชเชจเซ เชฆเชพเชเชฒเซ เชถเชฐเซ เชเชฐเซ เชถเชเซ เชเซ.
class Cluster {
[ValidatePattern("^[A-z]+$")]
[string] $Service
[ValidateSet("TEST", "STAGE", "CANARY", "PROD")]
[string] $FlightingRing
[ValidateSet("EastUS", "WestUS", "NorthEurope")]
[string] $Region
[ValidateRange(0, 255)]
[int] $Index
Cluster([string] $id) {
$this.Service, $this.FlightingRing, $this.Region, $this.Index = $id -split "-"
}
}
[Cluster]"MyService-PROD-EastUS-2"
เชฒเชพเชเชจ เชชเชฐ เชเชพเชธเซเช เชเชฐเซ
เชคเชฎเซ เชเชฌเซเชเซเชเซเชเชจเซ เชธเซเชเซเชฐเชฟเชเช เชฐเชเซเชเชค เชชเชพเชเชณเชจเชพ เชคเชฐเซเชเชจเซ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ [string] ToString() เชตเชฐเซเช เชชเชฆเซเชงเชคเชฟเชจเซ เชชเชฃ เชเชตเชฐเชฐเชพเชเชก เชเชฐเซ เชถเชเซ เชเซ, เชเซเชฎ เชเซ เชธเซเชเซเชฐเชฟเชเช เชเชจเซเชเชฐเชชเซเชฒเซเชถเชจเชจเซ เชเชชเชฏเซเช.
class Cluster {
[ValidatePattern("^[A-z]+$")]
[string] $Service
[ValidateSet("TEST", "STAGE", "CANARY", "PROD")]
[string] $FlightingRing
[ValidateSet("EastUS", "WestUS", "NorthEurope")]
[string] $Region
[ValidateRange(0, 255)]
[int] $Index
[string] ToString() {
return $this.Service, $this.FlightingRing, $this.Region, $this.Index -join "-"
}
}
$cluster = [Cluster]@{
Service = "MyService"
FlightingRing = "PROD"
Region = "EastUS"
Index = 2
}
Write-Host "We just created a model for '$cluster'"
เชถเซเชฐเซเชฃเซเชฌเชฆเซเชง เชเชฆเชพเชนเชฐเชฃเซ เชเชพเชธเซเช เชเชฐเซ
เชเชพเชธเซเช เชธเซเชฐเชเซเชทเชฟเชค เชกเซเชธเซเชฐเชฟเชฏเชฒเชพเชเชเซเชถเชจเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ. เชเซ เชกเซเชเชพ เชเซเชฒเชธเซเชเชฐเชฎเชพเช เช เชฎเชพเชฐเชพ เชธเซเชชเชทเซเชเซเชเชฐเชฃเชจเซ เชชเซเชฐเซเชฃ เชจ เชเชฐเซ เชคเซ เชจเซเชเซเชจเชพ เชเชฆเชพเชนเชฐเชฃเซ เชจเชฟเชทเซเชซเชณ เชเชถเซ
# ะะฐะปะธะดะฐัะธั ัะตัะธะฐะปะธะทะพะฒะฐะฝะฝัั
ะดะฐะฝะฝัั
[Cluster]$cluster = Get-Content "./my-cluster.json" | ConvertFrom-Json
[Cluster[]]$clusters = Import-Csv "./my-clusters.csv"
เชคเชฎเชพเชฐเชพ เชเชพเชฐเซเชฏเชพเชคเซเชฎเช เชเซเชกเชฎเชพเช เชเชพเชคเชฟเช
เชซเชเชเซเชถเชจเชฒ เชชเซเชฐเซเชเซเชฐเชพเชฎเซเชธ เชชเชนเซเชฒเชพ เชกเซเชเชพ เชธเซเชเซเชฐเชเซเชเชฐเซเชธเชจเซ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเซ เชเซ, เชชเชเซ เช เชชเชฐเชฟเชตเชฐเซเชคเชจเชถเซเชฒ เชกเซเชเชพ เชธเซเชเซเชฐเชเซเชเชฐเซเชธ เชชเชฐ เชชเชฐเชฟเชตเชฐเซเชคเชจเชจเชพ เชเซเชฐเชฎ เชคเชฐเซเชเซ เชชเซเชฐเซเชเซเชฐเชพเชฎเชจเซ เช เชฎเชฒ เชเชฐเซ เชเซ. เชตเชฟเชฐเซเชงเชพเชญเชพเชธเซ เชเชพเชช เชนเซเชตเชพ เชเชคเชพเช, เชตเชฐเซเชเซ เชเชฐเซเชเชฐ เชคเชฎเชจเซ เชเชพเชฐเซเชฏเชพเชคเซเชฎเช เชเซเชก เชฒเชเชตเชพเชฎเชพเช เชฎเชฆเชฆ เชเชฐเซ เชเซ เชเชพเชฐเชฃ เชเซ เชฐเซเชชเชพเชเชคเชฐเชฃ เชชเชฆเซเชงเชคเชฟเช เชเชพเชเชช เชเชฐเซ เชเซ.
เชถเซเช เชนเซเช เชฒเชเซ เชฐเชนเซเชฏเซ เชเซเช เชคเซ เชชเชพเชตเชฐเชถเซเชฒ เชเชพเชฐเซเชฏเชฐเชค เชเซ?
C# เช เชฅเชตเชพ เชธเชฎเชพเชจ เชชเซเชทเซเช เชญเซเชฎเชฟเชฎเชพเชเชฅเซ เชเชตเชคเชพ เชเชฃเชพ เชฒเซเชเซ เชชเชพเชตเชฐเชถเซเชฒ เชฒเชเซ เชฐเชนเซเชฏเชพ เชเซ, เชเซ C# เชเซเชตเซเช เช เชเซ. เชเชฎ เชเชฐเชตเชพเชฅเซ, เชคเชฎเซ เชซเชเชเซเชถเชจเชฒ เชชเซเชฐเซเชเซเชฐเชพเชฎเชฟเชเช เชเซเชจเซเชธเซเชชเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชฅเซ เชฆเซเชฐ เชเช เชฐเชนเซเชฏเชพ เชเซ เช เชจเซ เชชเชพเชตเชฐเชถเซเชฒเชฎเชพเช เชเชฌเซเชเซเชเซเช-เชเชฐเชฟเชเชจเซเชเซเชก เชชเซเชฐเซเชเซเชฐเชพเชฎเชฟเชเชเชฎเชพเช เชญเชพเชฐเซ เชกเชพเชเชตเชฟเชเช เชเชฐเชตเชพเชฅเซ เช เชฅเชตเชพ เชซเชเชเซเชถเชจเชฒ เชชเซเชฐเซเชเซเชฐเชพเชฎเชฟเชเช เชตเชฟเชถเซ เชตเชงเซ เชถเซเชเชตเชพเชฅเซ เชคเชฎเชจเซ เชซเชพเชฏเชฆเซ เชฅเชถเซ.
เชเซ เชคเชฎเซ เชชเชพเชเชชเชฒเชพเชเชจเซเชธ (|), เชเซเชฏเชพเช-เชเชฌเซเชเซเชเซเช, เชซเซเชฐเชเช-เชเชฌเซเชเซเชเซเช, เชธเชฟเชฒเซเชเซเช-เชเชฌเซเชเซเชเซเช, เชเซเชฐเซเชช-เชเชฌเซเชเซเชเซเช, เชธเซเชฐเซเช-เชเชฌเซเชเซเชเซเช เชตเชเซเชฐเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เช เชชเชฐเชฟเชตเชฐเซเชคเชจเชถเซเชฒ เชกเซเชเชพเชจเซ เชฐเซเชชเชพเชเชคเชฐเชฟเชค เชเชฐเชตเชพ เชชเชฐ เชเซเชฌ เชเชงเชพเชฐ เชฐเชพเชเชคเชพ เชนเซเชต เชคเซ - เชคเชฎเชพเชฐเซ เชชเชพเชธเซ เชตเชงเซ เชเชพเชฐเซเชฏเชพเชคเซเชฎเช เชถเซเชฒเซ เชเซ เช เชจเซ เชคเชฎเชจเซ เชชเชพเชตเชฐเชถเซเชฒเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชฅเซ เชซเชพเชฏเชฆเซ เชฅเชถเซ. เชเชพเชฐเซเชฏเชพเชคเซเชฎเช เชถเซเชฒเซเชฎเชพเช เชตเชฐเซเชเซ.
เชตเชฐเซเชเซเชจเซ เชเชพเชฐเซเชฏเชพเชคเซเชฎเช เชเชชเชฏเซเช
เชเชพเชคเชฟเช, เชเซ เชเซ เชคเซเช เชตเซเชเชฒเซเชชเชฟเช เชตเชพเชเซเชฏเชฐเชเชจเชพเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ, เชคเซ เชฎเชพเชคเซเชฐ เชฌเซ เชกเซเชฎเซเชจเซเชธ เชตเชเซเชเซเชจเซเช เชฎเซเชชเชฟเชเช เชเซ. เชชเชพเชเชชเชฒเชพเชเชจเชฎเชพเช, เชคเชฎเซ เชซเซเชฐเชเช-เชเชฌเซเชเซเชเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฎเซเชฒเซเชฏเซเชจเซ เชถเซเชฐเซเชฃเซเชจเซ เชฎเซเชช เชเชฐเซ เชถเชเซ เชเซ.
เชจเซเชเซเชจเชพ เชเชฆเชพเชนเชฐเชฃเชฎเชพเช, เชเซเชฏเชพเชฐเซ เชชเชฃ เชกเซเชเชฎ เชเชพเชธเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชคเซเชฏเชพเชฐเซ เชจเซเชก เชเชจเซเชธเซเชเซเชฐเชเซเชเชฐเชจเซ เชเชเซเชเชฟเชเซเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เช เชจเซ เช เช เชฎเชจเซ เชเซเชกเชจเซ เชตเชพเชเชฌเซ เชฐเชเชฎ เชจ เชฒเชเชตเชพเชจเซ เชคเช เชเชชเซ เชเซ. เชชเชฐเชฟเชฃเชพเชฎเซ, เช เชฎเชพเชฐเซ เชชเชพเชเชชเชฒเชพเชเชจ เชเซเชทเชฃเชพเชคเซเชฎเช เชกเซเชเชพ เชเซเชตเซเชฐเซ เช เชจเซ เชเชเชคเซเชฐเซเชเชฐเชฃ เชชเชฐ เชงเซเชฏเชพเชจ เชเซเชจเซเชฆเซเชฐเชฟเชค เชเชฐเซ เชเซ, เชเซเชฏเชพเชฐเซ เช เชฎเชพเชฐเชพ เชตเชฐเซเชเซ เชกเซเชเชพ เชชเชพเชฐเซเชธเชฟเชเช เช เชจเซ เชฎเชพเชจเซเชฏเชคเชพเชจเซ เชเชพเชณเชเซ เชฒเซ เชเซ.
# ะัะธะผะตั ะบะพะผะฑะธะฝะธัะพะฒะฐะฝะธั ะบะปะฐััะพะฒ ั ะบะพะฝะฒะตะนะตัะฐะผะธ ะดะปั separation of concerns ะฒ ะบะพะฝะฒะตะนะตัะฐั
class Node {
[ValidateLength(3, 7)]
[string] $Name
[ValidateSet("INT", "PPE", "PROD")]
[string] $FlightingRing
[ValidateSet("EastUS", "WestUS", "NorthEurope", "WestEurope")]
[string] $Region
Node([string] $Name) {
$Name -match "([a-z]+)(INT|PPE|PROD)([a-z]+)"
$_, $this.Service, $this.FlightingRing, $this.Region = $Matches
$this.Name = $Name
}
}
class Datum {
[string] $Name
[int] $Value
[Node] $Computer
[int] Severity() {
$this.Name -match "[0-9]+$"
return $Matches[0]
}
}
Write-Host "Urgent Security Audit Issues:"
Import-Csv "./audit-results.csv" `
| ForEach-Object {[Datum]$_} `
| Where-Object Value -gt 0 `
| Group-Object {$_.Severity()} `
| Where-Object Name -lt 2 `
| ForEach-Object Group `
| ForEach-Object Computer `
| Where-Object FlightingRing -eq "PROD" `
| Sort-Object Name, Region -Unique
เชชเซเชจเชเชเชชเชฏเซเช เชฎเชพเชเซ เชชเซเชเซเชเชฟเชเช เชตเชฐเซเช
เชเชตเซเช เชฒเชพเชเซ เชเซ เชเชเชฒเซเช เชธเชพเชฐเซเช เชเชเช เชจเชฅเซ
เชเชฎเชจเชธเซเชฌเซ, เชตเชฐเซเชเซ เชฎเซเชกเซเชฏเซเชฒเซ เชฆเซเชตเชพเชฐเชพ เชซเชเชเซเชถเชจ เช เชฅเชตเชพ เชเชฒเซเชจเซ เชเซเชฎ เชจเชฟเชเชพเชธ เชเชฐเซ เชถเชเชพเชคเชพ เชจเชฅเซ; เชชเชฐเชเชคเซ เชเซเชเชฒเซเช เชฏเซเชเซเชคเชฟเช เชเซ. เชงเชพเชฐเซ เชเซ เชคเชฎเชพเชฐเชพ เชตเชฐเซเชเซ ./my-classes.ps1 เชซเชพเชเชฒเชฎเชพเช เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเซ
-
เชคเชฎเซ เชตเชฐเซเชเซ เชธเชพเชฅเซ เชซเชพเชเชฒเชจเซ เชกเซเชเชธเซเชฐเซเชธ เชเชฐเซ เชถเชเซ เชเซ:. ./my-classes.ps1. เช เชคเชฎเชพเชฐเชพ เชตเชฐเซเชคเชฎเชพเชจ เชเชพเชฐเซเชฏเชเซเชทเซเชคเซเชฐเชฎเชพเช my-classes.ps1 เชจเซ เชเชเซเชเชฟเชเซเชฏเซเช เชเชฐเชถเซ เช เชจเซ เชคเซเชฏเชพเชเชจเซ เชซเชพเชเชฒเชฎเชพเชเชฅเซ เชคเชฎเชพเชฎ เชตเชฐเซเชเซเชจเซ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเชถเซ.
-
เชคเชฎเซ เชชเชพเชตเชฐเชถเซเชฒ เชฎเซเชกเซเชฏเซเชฒ เชฌเชจเชพเชตเซ เชถเชเซ เชเซ เชเซ เชคเชฎเชพเชฐเชพ เชฌเชงเชพ เชเชธเซเชเชฎ API (cmdlets) เชจเซ เชจเชฟเชเชพเชธ เชเชฐเซ เชเซ เช เชจเซ เชคเชฎเชพเชฐเชพ เชฎเซเชกเซเชฏเซเชฒ เชฎเซเชจเชฟเชซเซเชธเซเชเชฎเชพเช ScriptsToProcess = "./my-classes.ps1" เชตเซเชฐเซเชเชฌเชฒ เชธเซเช เชเชฐเซ เชถเชเซ เชเซ, เชธเชฎเชพเชจ เชชเชฐเชฟเชฃเชพเชฎ เชธเชพเชฅเซ: ./my-classes.ps1 เชเชเซเชเชฟเชเซเชฏเซเช เชเชฐเชถเซ เชคเชฎเชพเชฐเซเช เชตเชพเชคเชพเชตเชฐเชฃ.
เชคเชฎเซ เชเซ เชชเชฃ เชตเชฟเชเชฒเซเชช เชชเชธเชเชฆ เชเชฐเซ เชเซ, เชฏเชพเชฆ เชฐเชพเชเซ เชเซ เชชเชพเชตเชฐเชถเซเชฒเชจเซ เชเชพเชเชช เชธเชฟเชธเซเชเชฎ เชตเชฟเชตเชฟเชง เชธเซเชฅเชณเซเชเชฅเซ เชฒเซเชก เชฅเชฏเซเชฒ เชธเชฎเชพเชจ เชจเชพเชฎเชจเชพ เชชเซเชฐเชเชพเชฐเซเชจเซ เชเชเซเชฒเซ เชถเชเชคเซ เชจเชฅเซ.
เชเซ เชคเชฎเซ เช
เชฒเช-เช
เชฒเช เชเชเซเชฏเชพเชเชฅเซ เชธเชฎเชพเชจ เชชเซเชฐเซเชชเชฐเซเชเซเช เชธเชพเชฅเซ เชฌเซ เชธเชฐเชเชพ เชตเชฐเซเชเซ เชฒเซเชก เชเชฐเซ เชเซ, เชคเซ เชชเชฃ เชคเชฎเชจเซ เชธเชฎเชธเซเชฏเชพเชเชฎเชพเช เชเชตเชตเชพเชจเซเช เชเซเชเชฎ เชฐเชนเซ เชเซ.
เชเชเชณเชจเซ เชฐเชธเซเชคเซ
เชเชพเชเชช เชฐเชฟเชเซเชฒเซเชฏเซเชถเชจ เชธเชฎเชธเซเชฏเชพเช เชเชพเชณเชตเชพเชจเซ เชถเซเชฐเซเชทเซเช เชฎเชพเชฐเซเช เช เชเซ เชเซ เชคเชฎเชพเชฐเชพ เชตเชฐเซเชเซเชจเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชธเชฎเชเซเชท เชเซเชฏเชพเชฐเซเชฏ เชเซเชฒเซเชฒเชพ เชจ เชชเชพเชกเซ. เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชฆเซเชตเชพเชฐเชพ เชตเชฐเซเช-เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชชเซเชฐเชเชพเชฐ เชเชฏเชพเชค เชเชฐเชตเชพเชจเซ เช เชชเซเชเซเชทเชพ เชฐเชพเชเชตเชพเชจเซ เชฌเชฆเชฒเซ, เชคเชฎเชพเชฐเชพ เชฎเซเชกเซเชฏเซเชฒเชฎเชพเชเชฅเซ เชเช เชซเชเชเซเชถเชจ เชจเชฟเชเชพเชธ เชเชฐเซ เชเซ เชตเชฐเซเชเชจเซ เชธเซเชงเชพ เช เชเชเซเชธเซเชธ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐเชฟเชฏเชพเชคเชจเซ เชฆเซเชฐ เชเชฐเซ เชเซ. เชเซเชฒเชธเซเชเชฐ เชฎเชพเชเซ, เช เชฎเซ เชจเชตเชพ-เชเซเชฒเชธเซเชเชฐ เชซเชเชเซเชถเชจเชจเซ เชจเชฟเชเชพเชธ เชเชฐเซ เชถเชเซเช เชเซเช เชเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ-เชฎเซเชคเซเชฐเซเชชเซเชฐเซเชฃ เชชเซเชฐเชพเชฎเซเชเชฐ เชธเซเชเชจเซ เชธเชชเซเชฐเซเช เชเชฐเชถเซ เช เชจเซ เชเซเชฒเชธเซเชเชฐ เชชเชฐเชค เชเชฐเชถเซ.
class Cluster {
[ValidatePattern("^[A-z]+$")]
[string] $Service
[ValidateSet("TEST", "STAGE", "CANARY", "PROD")]
[string] $FlightingRing
[ValidateSet("EastUS", "WestUS", "NorthEurope")]
[string] $Region
[ValidateRange(0, 255)]
[int] $Index
}
function New-Cluster {
[OutputType([Cluster])]
Param(
[Parameter(Mandatory, ParameterSetName = "Id", Position = 0)]
[ValidateNotNullOrEmpty()]
[string] $Id,
[Parameter(Mandatory, ParameterSetName = "Components")]
[string] $Service,
[Parameter(Mandatory, ParameterSetName = "Components")]
[string] $FlightingRing,
[Parameter(Mandatory, ParameterSetName = "Components")]
[string] $Region,
[Parameter(Mandatory, ParameterSetName = "Components")]
[int] $Index
)
if ($Id) {
$Service, $FlightingRing, $Region, $Index = $Id -split "-"
}
[Cluster]@{
Service = $Service
FlightingRing = $FlightingRing
Region = $Region
Index = $Index
}
}
Export-ModuleMember New-Cluster
เชฌเซเชเซเช เชถเซเช เชตเชพเชเชเชตเซเช
เชธเซเชฐเซเชธ: www.habr.com