問題タブ [smb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - IIS6 で UNC 経由で画像を提供するときの ASP.NET ConfigurationErrorsException
UNC 経由で Samba 共有に接続する Web アプリに仮想ディレクトリがあります。問題なく Windows エクスプローラー経由でファイルを参照できますが、Web アプリで次のメッセージが表示された黄色い画面がスローされます。
説明: この要求を処理するために必要な構成ファイルの処理中にエラーが発生しました。以下の特定のエラーの詳細を確認し、構成ファイルを適切に変更してください。
パーサー エラー メッセージ: 構成ファイルの読み込み中にエラーが発生しました: ファイル '\cluster\cms\qa-images\120400\web.config' が見つかりませんでした。
私には意味がないのは、なぜweb.config
その場所で を探しているのかということです。仮想ディレクトリはそのルートからイメージを提供できる (つまり、正常に\\cluster\cms\qa-images\test.jpg
機能する) ため、認証の問題ではないことはわかっていますhttp://myserver/upload/test.jpg
。
アイデア?
macos - シンボリック リンクは、Windows または Linux (smb) と共有すると機能しますが、Mac (afp または smb) と共有すると壊れます
Mac には、共有フォルダー ~\Documents があります。Data と Data_2011 の 2 つのサブフォルダーがあり、前者には過去数年間のファイルのフォルダーが含まれ、後者には 2011 年 1 月 1 日以降に更新された Data フォルダー内のフォルダーへのシンボリック リンクが含まれます。リンクは標準で作成されました。ln -sコマンド。
共有ドキュメント フォルダーを Windows コンピューターにマウントすると、リンクが機能します。smb を使用して Linux にマウントすると、リンクが機能します。これらのリンクをホストしている Mac で直接使用すると、機能します。ただし、リモートの Mac から Documents フォルダーをマウントすると、ソフト リンクが壊れます。明確にするために、[Finder] > [サーバーに接続] > [afp://xxx.xxx.xx.xx/] または [smb://xxx.xxx.xx.xx/Documents] に移動して、Documents フォルダーをマウントします。
これらのソフト リンクをリモートの Mac と共有するときに機能させる方法について何かアイデアはありますか?
-シボ
windows - デバイス ドライバーの ImagePath
私はいつもドライバのイメージパスを直接設定しています.(C:\Windows\System32\drivers\abc.sys)
しかし、多くのデバイス ドライバーが ImagePath を%SystemRoot%\system32\svchost.exe -k netsvcs
に設定していることは知っていました
。これは、Lanmanworkstation ドライバーのレジストリ ハイブです。
Lanmanworkstation ドライバーのイメージ ファイルは mrxsmb.sys だと思いますが
、'System32\drivers\mrxsmb.sys' は配置されませんでした。どうして。
svchost.exe -k netsvcsとはどういう意味ですか?
特定のパスはありませんが、StartService 関数はうまく機能します。
Service Manager(? よくわかりません) はどのようにしてドライバーのイメージ パスを見つけますか?
これを使うメリットはありますか?
この方法を使用することにした場合、ドライバー コードを変更する必要がありますか?
windows - 既存の CIFS セッションを再利用したり、プログラムで明示的に終了したりするにはどうすればよいですか (W2K8 から Netapp へ)。
Windows で実行され、CIFS を介して Netapp ファイラーの共有をスキャンするプログラムがあります。スキャナーが W2K3 で実行されて終了するときに、Netapp ファイラーで「cifs sessions -c」を実行すると、セッションがなくなっていることが示されます。同じスキャナーが W2K8 で実行されて終了すると、上記の Netapp コマンドはセッションがまだ有効であることを示します。スキャナ アプリケーションはすでに終了しているため、セッションにトラフィックはもうないはずです。
これまでに行ったこと: 1) cifs.idle_timeout 秒数 (以上) 待機して、セッションが終了するかどうかを確認しました。そうではありません。2) W2K3->Netapp と W2K8->Netapp 間の通信のパケット トレースを分析しました。W2K3 トレースは TREE_CONNECT と TREE_DISCONNECT を示していますが、W2K8 トレースは TREE_CONNECT 要求のみを示しています。これを確認しますが、W2K3 の TREE_DISCONNECT の後に LOGOFF 要求が続くと思います (セッションが終了すると思いますか?)。3) Netapp が表示されていない場合にどのように見えるかを確認するために、W2K8 クライアント マシンから、windows-explorer \\C$ 経由でアクセスしました。これにより、ワイヤ上で TREE_CONNECT 要求が発生します。W2K8クライアントによって生成されたワイヤにTREE_DISCONNECTがなかったにもかかわらず、エクスプローラーウィンドウを閉じると、W2K3サーバーマシンがセッションを閉じました。
つまり、Netapp は W2K8 が送信していないものを期待しているようです。
質問 : スキャナ アプリケーションで i) スキャンが完了したときに明示的な LOGOFF SMB 要求を送信するために使用できる特定の API はありますか? ii) または、新しいスキャンのために W2K8 クライアントと Netapp ファイラーの既存のセッションを再利用しますか? ii) 誰かがこれまたは同様のシナリオに直面していますか?
前もって感謝します。
java - ANDROID:JavaでのCIFS共有へのアクセス
私は最初のAndroidアプリを書いています。これは、多かれ少なかれマウントポイントマネージャーになる予定です。ローカルマウントとNFSマウントは簡単ですが、CIFS共有をどのように処理するかわかりません。
理想的には、ホストを選択した後、CIFS共有のリストが表示されます。最低限、CIFS URI /共有文字列を入力してマウントできるはずです(例://192.168.1.100/mount_point)。ホストを選択できるEStrongsについて考えています。共有が表示され、さらに探索することができます。
私はjCIFS(これはAstroが使用しているものだと思います)を見てきました。また、xda-developersでcifs.koモジュールについて言及しているのを見ました。他に標準的なアプローチはありますか?jCIFSまたはcifs.koを使用してこれを一般的に行う方法に関するヒント/推奨事項はありますか?rootアクセスを取得する必要はありません。
winapi - Windowsでネットワーク共有の列挙が非常に遅いのはなぜですか?
Windows API関数NetShareEnumまたはWNetEnumResourceを介してネットワーク共有のリストを取得するには、要求を完了するのに最大60(!!!)秒かかります。多分誰かがそれがとても遅い理由を知っていますか?たぶん、API /ライブラリ(SMBなど)を使用して、共有を適切な速度で列挙することは可能ですか?
iphone - NSNetServiceクラスを使用して、Windowsマシンで共有されているフォルダーにSMBtcpip接続を確立する
私はiPhoneを使って自分のWindows共有フォルダにアクセスする方法を見つけようとしています。必要な機能は、私が構築しているより大きなエンタープライズアプリの一部です。すでに同様の質問をしているが運がない人がいます-iOSはSMBを介したファイル操作をサポートしていますか?
今、私は「SimpleNetworkStreams」と呼ばれるアップルデベロッパチュートリアルを見つけました。これは、NSNetServiceインスタンスのタイプをプロトコルに設定することにより、tcpを介してx-SNSUploadプロトコルを使用するためにNSNetServiceを使用しますx-SNSUpload._tcp
これが彼らがそれをどのように行ったかです-
したがって、MacBookでSMBサーバーに置き換え_x-SNSUpload._tcp
て実行するとします。_smb._tcp
次の一連のコマンドを実行して、MacBookでSMBを起動します
次に、iPhoneの画像をMacBookのルートディレクトリに転送できます。私はWindowsマシンの共有フォルダでも同じことをしたいと思っていました。
共有フォルダの名前は「テスト共有」です。私は自分のWindowsマシンの「テスト共有」フォルダをすべての人に完全に制御して明示的に共有しました。コードの完全な詳細は以下に記載されています(更新後)
ブラウザで「smb:\\ 10.212.19.121」と直接入力すると、共有フォルダにアクセスできます。ファインダーアプリケーションが開き、「一時共有」フォルダーをマウントするオプションが表示されます。
更新-上から取り出された多くの冗長なテキストと、SimpleNetworkStreamsがどのように機能するか、そして私が微調整したことの詳細を以下に示します。
コードは-SimpleNetworkStreams-から取得されます
- 送信するファイルのタイプNSInputStreamのストリームを開きます
- アップルのドキュメントが言うように
「NSNetServiceオブジェクトを直接作成するか(正確なホストとポートの情報がわかっている場合)、NSNetServiceBrowserオブジェクトを使用してサービスを参照できます。」
NSNetServiceのオブジェクトは、SMBサーバーをホストするサーバーに対してインスタンス化されます
NSOutputStream型の出力ストリームオブジェクトをself.networkStreamに取得します。
次に、NSOutputStreamデリゲートがNSStreamEventHasSpaceAvailableをキャッチし、入力ファイルをバッファリングしてから、そのバッファをNSOutputStreamオブジェクト(networkStream)に書き込みます。
windows-7 - Windows 7は実際にSMBコアプロトコルをサポートしていますか?
古いZ80ベースのマシン用のSMBサーバーの開発を開始しました。このマシンは非常にシンプルなMS-DOSのようなオペレーティングシステム(マルチタスクなし、ユーザーの概念なし、FATファイルシステムのみ、ユニコードなし、8.3ファイル名のみ)を実行し、メモリが限られているため、私の最初のアイデアはSMBコアプロトコルのみを実装することです。TCPトランスポートを使用します。
今のところ、SMB_COM_NEGOTIATEコマンドに応答する非常に短いテストコードがあり、コアプロトコル(「PCネットワークプログラム1.0」)が目的の方言であることを示しています。"\\<server IP>"
それをテストするために、エクスプローラーウィンドウを開き、アドレスバーに入力して、Windows7マシンから接続しようとします。サーバーがnegotiateコマンドを受信し、(明らかに)正しい応答を送信することをWiresharkで確認しました。
問題: Windowsクライアントが応答を受信するとすぐに、一般的な「リソースにアクセスできません」エラーメッセージ(エラーコード0x80004005)が表示され、その後何も起こりません(それ以上のSMBメッセージは送信されません)。SMB_COM_TREE_CONNECTまたは同様のコマンドを受け取ることを期待していました。
Windows 7はコアプロトコルをサポートしていないのではないかと思っていましたが(非常に古く、セキュリティ機能がまったくありません)、ネゴシエートリクエストにコアダイアレクト名が表示されるのはなぜですか?多分私はいくつかのステップを逃していますか?サーバーは、ネゴシエート応答の後に追加のパケットを送信する必要がありますか?
クライアントOSはWindows7Ultimate 64ビットであり、プロセスで誰かが何か問題を発見した場合に備えて、要求と応答の両方のWiresharkダンプを次に示します。
リクエスト:
応答:
更新:コアダイアレクトの代わりにNT LM 0.12ダイアレクトを選択すると、クライアントからSESSION_SETUP_AND_REQUESTXコマンドを受け取ります。したがって、明らかに、コアプロトコルはWindows 7ではサポートされていないようです。とにかく、追加情報があれば幸いです。
windows - Windows に SMB リダイレクタを実装する最も簡単な方法は?
IP アドレスとポートの両方でリモート SMB サーバーを指定することで、他の OS で簡単にできることを Windows で実行できる小さなツールを実装したいと考えています。ネイティブでは、Windows は 445 または 139 (その選択) 以外のポートでは SMB を実行しません。Microsoft が Windows に追加し続けているさまざまな悪いことに対する回避策でモグラたたきをするのにはうんざりです。 SSH ポート フォワーディング経由。
私が念頭に置いているのは、次のようなことができる小さなコマンドラインアプリです
netsubst サーバー名 -i IP -p PORT
これはドライバーと連携して機能しますか?dll? SMB リダイレクタとして Windows にフックしますが、接続先を見つけるためにネットワーク上で検索する代わりに、netsubst によって設定されたサーバー名のテーブルをスキャンします。だから私はできるだろう
net use X: //サーバー名/共有名/ユーザー:ユーザー名 *
通常の方法で、Windows が見つけたマシンのポート 445 または 139 で //servername を検索する代わりに、IP、ポート PORT に直接アクセスします。IPがたまたま127.0.0.1で、PORTがたまたまssh経由で別の場所に転送されたものであった場合、それはすべてうまくいくので、Windowsがローカルホストポート139へのアクセスの周りに置く愚かな壁に対処する必要がなくなります。 445。
私が必要としているのは、VirtualBox がホスト ファイル共有を行うために使用する //vboxsvr ゲスト追加機能に似たものであると考えていますが、完全なバックエンドを必要としないため、おそらくもっと単純です。 d 交換する必要があるのは、リモート SMB サーバーへの初期接続を確立する部分です。しかし、VirtualBox のソース コードに取り掛かる前に、誰かがこれを行うためのより簡単な方法を提案したり、SMB リダイレクタの実装に関する Microsoft のドキュメントを教えてくれたりできますか?
linux - Linux と Windows の両方で使用される Samba 経由の Mercurial/Git 共有リポジトリ
リポジトリは Linux ボックス上にあり、Windows 用の samba 経由でアクセスします。
一般的に、物事はうまくいくようです。Git は、Windows でのパフォーマンスに問題がありますが、それ以外は機能します。このため、現在はmercurialのみを実行しています。
問題は、"hg status" が Windows と Linux で異なる結果を返すことがあるということです。どちらも同じリポジトリから実行されています。
この違いの原因は何ですか? どうすれば修正できますか?
これらのファントム変更を送信すると、変更ログに次のように記録されます。
これは、ntfs ファイルのアクセス許可の問題であることを意味します。