2017-07-21 49 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

を試してみてください。 は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)。 "Variantフィールドは、UUIDのレイアウトを決定します。つまり、UUID内の他のすべてのビットの解釈は、variantフィールドのビットの設定に依存します。 –

1

はあなたがすることはできません

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