Comments (1)
Еще немного красоты. Убираем промежуточные переменные, промежуточные действия и неоптимальную логику. Больше powershell-way.
function ConvertTo-HashTable {
# Конвертирует строки в хеш таблицу
Param (
[String]$StringData,
$ExtensionData
)
$HashTable = @{}
if ($StringData) {
$StringData.Split([Environment]::NewLine) | . { process {
(ConvertFrom-StringData -StringData $_).GetEnumerator().foreach{
$key = $_.name
$value = $_.value.trim('"')
$HashTable[$Key] = if ($HashTable[$Key]) {
switch ($Key) {
"DC" { $Value, $HashTable[$Key] -join '.' }
"OU" { $HashTable[$Key], $Value -join '\' }
default { $HashTable[$Key], $Value -join ' ' }
}
}
else {$Value}
}
}}
}
elseif ($ExtensionData) {
foreach ($Extension in $ExtensionData) {
$Value = $Extension.Format($true)
if (-not $Value) { $Value = $true }
$HashTable[$Extension.Oid.Value] = $Value
}
}
$HashTable
}
function Repair-Name {
# Исправляет имена в значениях
Param (
[String]$Name = "",
[Switch]$Expanded
)
$Name = $Name -Replace "Общество с ограниченной ответственностью", "ООО"
$Name = $Name.Replace("_", " ").Replace('"', "")
if ($Expanded) {
($Name -Replace '[,*.]').TrimStart("0")
} else {$Name}
}
UPDATE
Можно даже еще сократить на пару строк и 4 скобки
$StringData.Split([Environment]::NewLine).foreach{
$key,$value = $_.split('=',2).trim()
$value = $value.trim('"')
$HashTable[$Key] = if ($HashTable[$Key]) {
switch ($Key) {
"DC" { $Value, $HashTable[$_] -join '.' }
"OU" { $HashTable[$_], $Value -join '\' }
default { $HashTable[$_], $Value -join ' ' }
}
}
else {$Value}
}
from admin.tools.
Related Issues (2)
- Sync-ComputerState.ps1 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from admin.tools.