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.