web-dev-qa-db-ja.com

Windowsパス文字列の「C:2」はどういう意味ですか?

このポップアップはWindowsファイアウォールから取得しました。パス内の「C:2」とは何ですか?実際のパスはD:\Steam\SteamApps\common\...です。

Windows Firewall dialog pop-up

Cmdでcd /d C:2\を試し、"The system cannot find the path specified."を取得しました

また、Powershellでcd C:2\を試し、"Set-Location : Cannot find path 'C:\2\' because it does not exist."を取得しました

では、「C:2」は「D:」のショートカットとしてどのようになっているのでしょうか。

更新:

@Tysonが提案したように、レジストリでC:2を検索してみました。 「文字列全体を一致させる」をオフにしてレジストリでC:2を検索し、「文字列全体のみを一致させる」をオンにした結果がない場合、無関係な検索結果がたくさんあります。それでも私は鍵を見つけました。それはHKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\SharedAccess\Parameters\FirewallPolicy\FirewallRulesにあり、その値はv2.10|Action=Allow|Active=TRUE|Dir=In|Protocol=17|Profile=Private|App=C:2\Steam\steamapps\common\sonic & all-stars racing transformed\asn_app_pcdx9_final.exe|Name=asn_app_pcdx9_final.exe|Desc=asn_app_pcdx9_final.exe|Defer=User|です。 D:\Steam\SteamApps\common\Sonic & All-Stars Racing Transformed\ASN_App_PcDx9_Final.exeにはWindows Firewall with Advanced Security > Inbound Rulesのルールがあります。また、Team Fortress 2のルールが見つかりました。これは、レジストリにv2.10|Action=Allow|Active=TRUE|Dir=In|Protocol=6|Profile=Private|App=C:0\Steam\steamapps\common\team fortress 2\hl2.exe|Name=hl2.exe|Desc=hl2.exe|Defer=User|、WindowsファイアウォールルールリストにD:\Steam\SteamApps\common\Team Fortress 2\hl2.exeです。 D:\Steam\...にインストールされている他のゲームには、レジストリとWindowsファイアウォールルールの両方にD:\があります。つまり、SteamがC:\以外のドライブのエイリアスを作成する方法ですが、それがどのように機能するのか、ある場合はC:2\、別の場合はC:0\、そして3つ目はD:\です。おそらく外付けHDDであり、Windowsがスリープ後に起動した瞬間にSteamがそれを見つけられなかったため、Steamは異なるエイリアスを割り当てたと思います。

しかし、実際にこれらのエイリアスを機能させるものは何ですか? 2または0というフォルダはありません。D:\Steam\...だけです。

14
HAL 9000

#1 ADS

これはCと呼ばれるファイルである可能性があります。これは、実際にはアプリのPATHからアクセス可能なジャンクション(シンボリックリンク)であり、代替NTFSストリームがあります ADS(代替データストリーム) したがって、C:1、 C:2、C:3などは別の場所に解決されますか? Steamは、その存在のほとんどがシングルドライブのインストールに制限されているため、ゲームの再配置をサポートするためのハッキーな回避策だったのではないでしょうか。

主な問題:ADSがフォルダー、ショートカットターゲット、リンク、またはジャンクションで機能することを認識していません。ただし、そうであれば、この構文にかなり近くなります。

#2相対パス

KingZoingoによって投稿されたリンクでは、C:が現在の相対パスである可能性があることがわかります。

"C:tempdir\tmp.txt" refers to a file in a subdirectory to the current directory on drive C.

フォルダまたはジャンクションに「2」という名前を付けることは合法であるため、これもこの構文につながります。

主な問題:ファイアウォールが実際の絶対パスを表示することを期待していました。

2
mtone

実行中のプロセスメモリに実際に何が入っているかを確認しないと、わかりにくいです。

一般的に言って、プログラムは、実行された「コマンドライン」の変更や削除など、自身のメモリに対して多くのがらくたを行うことができます。または子プロセスを実行します。 (私が覚えている限り、Steamは起動するたびに長い距離を移動し、更新を確認して、すべてが意味を失うまで自分自身を再起動します。)

つまり、その行の構文自体がいくらか「合法」であっても、現実は何でもかまいません。より良いツールを持っている人が同じ問題に直面し、それを直接調査するまで、決定的な答えはありません。

0
AnrDaemon

ここでの暗黙の質問は、c:2\fooはWindowsでは合法です。検索文字列があまりにも一般的であるため、Googleはここでは役に立ちません。しかし、MSDNは役に立ち、そうではないことを確認しています。彼らのページを参照してください ここ 。これは、Steamクライアントがエントリをスクライビングするのをサポートするもう1つのデータポイントです。おそらくそれはあなたにゲームの意見を伝えようとしているのでしょう:)

0
AlwaysLearning