
前提・実現したいこと
Directory.GetDirectories()を使用して、共有フォルダ内のファイルパスを取得したい
発生している問題・エラーメッセージ
Windows10 バージョン1909にアプデ後、
「ユーザー名またはパスワードが正しくありません」
と表示される
該当のソースコード
Directory.GetDirectories(\192.168.1.10\share\dir1\dir2)
試したこと
- Windowsに資格情報の追加
- SMBのチェックボックスをすべてチェック
- エクスプローラーでの接続は確認済み
補足情報(FW/ツールのバージョンなど)
Windows10 1909 KB4528760

マルチポストのようですので他の投稿先の URL を貼っておきます。
https://social.msdn.microsoft.com/Forums/ja-JP/bde97d6b-9caa-4b33-9620-7725bf2e3eaa/directorygetdirectories?forum=netfxgeneralja
私の方で提示すべきでした、ありがとうございます。
マルチポストについて以後気を付けます。
コチラにも同様の質問をしています。
https://forum.uipath.com/t/topic/186391
マルチポストであるの(「マルチポストしています」と明言すれば許容される、と言うものでもありません)と、質問に不明瞭な点があるので回答は避けますが、Directory.GetDirectories("\\ネットワークドライブ名\フォルダ1\フォルダa") について、「ネットワークドライブ名」とは通常、"S:", "T:", "U:"... (<なんでもいいけど)などの共有ドライブ名を指します。PATHの頭に\\がつくのはUNC PATHで、"\\servername\share\dir1\dir2"や"\\192.168.1.10\share\dir1\dir2" などとなるはずです。具体的にどのようにPATHを指定しているのでしょう。'\'文字がエスケープもされていません。
また、思い付き程度の指摘ですが、UiPathのロボットの実行時の(エージェントの)アカウントも問題になると思います。Windowsサービスのアカウントで動作しているならば、エクスプローラーで既に共有していても、別の扱いになるはずです。
ご指摘の通り、
< \\192.168.1.10\share\dir1\dir2
こちらの形です、私の説明が間違っていました。
今まで問題なく動作していたのでエスケープの必要性がよくわかっていません。
よければ解説頂けると幸いです。
また、UiPathの起動時のアカウントについては確認を取りたいと思います。
エスケープについてですが、たとえばC#を使って .NET Framework でSystem.IO.Directory.GetDirectories()を使うときは"\"マークをエスケープしたりしますが、UiPath Studio 上の入力指定の話であればエスケープせずに入力すると思うので、質問者さんのコードはそれを示しているのだと思います。(<ですよね?)ですので、私の指摘は無視してください。
こちら、管理者権限でUiPathを起動し、実行時に発生しています。
ただ、処理の関係上管理者権限での起動が必要です。どうしたらよいでしょうか。

回答1件
あなたの回答
tips
プレビュー