Показать полную графическую версию : [решено] Помогите переписать vbs ф-цию на powershell
Друзья, встала задача по общей безопасности с локальными учетными записями персональных компьютеров в домене.
Реально ли написать что-то подобное, кто может помочь?
1. логон-скрипт для установки локальной учетной записи PC (по SSID) случайного пасса
2. шифрование его и сброс хэша на какой-нибудь ресурс
3. скрипт-декриптор для расшифровки имеющегося хэша (лучше всего на powershell)
Хочу внетрить подобную систему в домен и автоматизировать... Спасибо, буду рад помощи.
О, нашел vbs скрипты для реализации подобной темы.
Можно ли decrypt.vbs переписать в Powershell?
How To Automate Changing The Local Administrator Password (http://blogs.technet.com/b/askpfeplat/archive/2014/05/19/how-to-automate-changing-the-local-administrator-password.aspx)
Очень интересный вариант, отложил в избранное, но пока что мне нужно мягко говоря другое. Кто может помочь переписать функцию расшифровки из decrypt.vbs (в архиве) на Powershell, спасибо:
Function Decrypt(str,key)
Dim lenKey, KeyPos, LenStr, x, Newstr
Newstr = ""
lenKey = Len(key)
KeyPos = 1
LenStr = Len(Str)
str=StrReverse(str)
For x = LenStr To 1 Step -1
Newstr = Newstr & chr(asc(Mid(str,x,1)) - Asc(Mid(key,KeyPos,1)))
KeyPos = KeyPos+1
If KeyPos > lenKey Then KeyPos = 1
Next
Newstr=StrReverse(Newstr)
Decrypt = Newstr
End Function
Function Decrypt($str,$key="oebfFRPncgtprw5") {
$Newstr = ""
$lenKey = $key.Length - 1
$KeyPos = 0
$LenStr = $str.Length
$str = -join ([regex]::Matches($str,'.','RightToLeft') | ForEach {$_.value})
For ($x = $LenStr; $x -ge 1; $x--) {
$Newstr += [char]([int][char]$str.substring(($x-1),1) - [int][char]$key.substring($KeyPos,1))
$KeyPos++
If ($KeyPos -gt $lenKey) { $KeyPos = 0}
}
-join ([regex]::Matches($NewStr,'.','RightToLeft') | ForEach {$_.value})
}
Здорово!
Опробовал командой, но не получилось :(
Написал - Decrypt $(gc "C:\criptpass\comps\hash.txt") но вылезли грабли, что-то задекриптилось, но не верно, кракозябры =\ Может быть не так использую ф-цию?
Function Decrypt($str,$key=[int[]][char[]]"oebfFRPncgtprw5") {
$k = 0
$str = $str | Foreach {
[char]($_ - $key[$k])
$k++
If ($k -gt $key.count) { $k = 0}
}
[array]::Reverse($str)
-join $str
}
Decrypt (gc C:\criptpass\comps\hash.txt -enc byte -TotalCount 12)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.