Powershell bietet eine schöne Möglichkeit, um bei Beispielsweise für App-V eine neue GUID zu generieren unter der man im Dateisystem Daten ablegen möchte.
[System.Guid]::NewGuid()
Guid
----
20f169da-4067-4702-b1ab-7c28e8d646a2
Wenn sich die GUID von APP-V zu APP-V Skript für eine ProductID nicht verändern soll, kann eine GUID mit der folgenden Funktion auf Basis eines Strings (Hashes) generiert werden
#Generate Guid from a String
functionToGuid([string] $src)
{
$stringbytes= [system.Text.Encoding]::UTF8.GetBytes($src)
$hashedBytes= (New-ObjectSystem.Security.Cryptography.SHA1CryptoServiceProvider).ComputeHash($stringbytes)
[system.Array]::Resize([ref]$hashedBytes,16)
$guid= [System.Guid]($hashedBytes)
Return$guid.ToString()
}
toGuid("hallo")
7aef4cfd-604e-1f7f-cc92-0ad6329a6df2
toGuid("hallo\asdasd")
a5d23caa-a8e0-9d41-bfc3-a62e627fbe3d
toGuid("hallo\asdasd")
a5d23caa-a8e0-9d41-bfc3-a62e627fbe3d
toGuid("hallo\asdasd\dsfgdsfgfds")
2b4bbe99-0310-6cd2-268c-fd7ec32d6434
Die generierte GUID bleibt für den gleichen String (Hash) gleich.
Kommentare