web-dev-qa-db-ja.com

PowerShellで既にマップされているネットワークドライブにアクセスする

VMWare Workstation内でWindows Server 2012インストールを実行しています。共有フォルダを有効にしているので、ドライブZ:\\vmware-Hostにマップされます。エクスプローラーでこのドライブに正しくアクセスでき(「通常」のcmd内でZ:にアクセスできます)、ファイルを適切に開くことができます。

PowerShellを開いてcd Z:を試しましたが、次のエラーが発生しました:

cd:パス 'Z:\'が存在しないため見つかりません。

PowerShellがalreadyマップされたネットワークドライブを見つけられないのはなぜですか?

私は少しグーグル検索して、New-PSDriveコマンドを見つけました。私は以下を実行しました:

New-PSDrive -Name 'Z' -PSProvider FileSystem -Root 'Z:\'

しかし、上記と同じエラーが発生します。 PowerShell内のVMWare共有フォルダーにアクセスするにはどうすればよいですか。

8
Rocket Hazmat

Powershellを実行しているユーザーがドライブマッピングを使用できるようにする必要があります。次の操作を実行して、そのユーザーに同じドライブマッピングを与えることができます。

Net Use Z: "\\vmware-Host\Shared Folders"

以下を参照してくださいSO質問: 管理者として実行中のPowerShellでネットワークドライブにアクセスできません

8
jscott

このPowerShellコンソールを管理者または現在のユーザーとして起動していますか?

昇格されていないコマンドプロンプトから実行している場合は、ローカルにマップされたすべてのネットワークドライブが表示されます。私は現在あなたと同じ状況にあり、x:\\vmware-Host\[folder]にマップされています。Get-PSDrive -PSProvider FileSystemはローカルにマップされたすべてのドライブを表示します。

ただし、このコンソールを管理者として起動した場合、ローカルのマップされたドライブは表示されません。管理者特権のコマンドの場合、プロンプト(別の(2番目の)セキュリティコンテキストがアプリケーションのロードに使用されます)ネットワーク接続を共有しません。

良い知らせは、基本的には管理者コンソールでドライブを1回だけマップする必要があるだけであり、そのドライブはそのセキュリティコンテキストにとどまります(再起動するまで)。

これを自動化したい場合は、Powershellセッションを開始するときに、自動読み込みスクリプトを確認する必要があります。基本的に、My DocumentsWindowsPowerShellという名前のフォルダーを作成し、その中にMicrosoft.PowerShell_profile.ps1ファイルを作成すると、新しいPowerShellコンソールを起動するたびにトリガーされます。そこで、Net Useコマンドを追加したり、使用したい独自に作成したカスタム関数を追加したりできます。

たとえば、管理コンソールのカーソルを赤くする機能があり、PS1スクリプトに署名するために簡単に呼び出すことができる機能があります。

5
Mark Henderson