2017-07-21 85 views
-1

我想通過powershell將整數(或字符串中的數字)轉換爲guid,我已經使用了下面的代碼,並且找不到其他方法。有沒有可能?Powershell將整數轉換爲guid

$myId = [System.Guid]::Parse("123456789") 

Exception calling "Parse" with "1" argument(s): "Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)." 

同樣的情況發生在我沒有引號的情況下,數字只在解析函數中。

+0

這是一個合法的問題,謹慎解釋downvote? –

+2

錯誤解釋了爲什麼這不起作用,並告訴你它期待什麼。您不能僅將任何隨機數或字符串解析爲GUID。 [查看文檔以獲取更多信息](https://msdn.microsoft.com/en-us/library/system.guid.parse(v = vs.110).aspx) – gms0ulman

+0

這不會大大降低賠率想出一個*全球唯一的*標識符?避免使用「New-Guid」有什麼迫切的理由? –

回答

2

你不能。 A GUID是128位值,並且方式大於普通整數。 parse method需要一個格式正確的輸入。

要將整數轉換爲guid,請嘗試並添加前導零。像這樣,

[System.Guid]::Parse("0"*23 + "123456789") 

Guid 
---- 
00000000-0000-0000-0000-00
+0

GUID或UUID不只是任何128位值。 [一個GUID有結構](https://tools.ietf.org/html/rfc4122)。 「變量字段確定UUID的佈局,也就是說,解釋UUID中的所有其他位取決於變量字段中位的設置。」 –

1

嘗試

$myId = [System.Guid]::Parse("12345678-1234-1234-1234-123456789123") 
$myId | gm 
TypeName: System.Guid