スラッシュの処理に関する多くの情報がInvoke-RestMethod
にありますが、バックスラッシュの処理については何も見つかりませんでした。彼らは避けなければならないことは知っていますが、私は情報を変更できないところで働くためにいくつかの制約があります。ここで私は何をしようとしているのです:Invoke-RestMethodバックスラッシュ付きのURL
Invoke-RestMethod "http://blah.blah.net/api/Reporting/$ServerName" -Method Get
それは他のインスタンス上で正常に動作しますが、今回$ServerName
が「Server1に\ SQLserv」のような値を持つことになります。私は、$ServerName -replace "\", "\\\"
とそれ以外のバリエーションを使用して試していましたが、バックスラッシュの代わりに%5C
(URLエスケープ文字)を使用しました。何も働いていないようです。誰でも遭遇した(そして解決した!)これは?
編集:ここで私が得ている特定のエラーがあります。
Invoke-RestMethod : The resource you are looking for has been removed, had its name changed, or is temporarily unavailable. At line:1 char:1 + Invoke-RestMethod "http://blah.blah.net/api/Report ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
は、私には、サーバー側の問題のように見えます。また、 'Server1 \ SQLserv'は実際にはサーバー名ではありません。これはSQL Serverインスタンスの名前です。あなたのWebアプリケーションがこれを実際に入力として受け入れることは確実ですか? –
私は同意する、それはサーバー側の問題と思われる。障害時には、実際には、サーバーの名前です。はい、Webアプリはこれを入力として受け入れることができます。私はこれを見て調査するほど、これを達成するための別の方法を見つけるべきだと思う。バックスラッシュをまったく利用しなくても済むように、データベースエントリを混乱させることさえあるかもしれません。ご協力いただきありがとうございます。 –