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


8

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

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

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

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

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

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

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


Get-PSDrive -PSProvider FileSystem新しいPowershellコンソールを開いたときに何が報告されますか?
jscott

@jscottは:新しいコンソールでは、私が見るACD。すでに開いているコンソールには、も表示されZます。新しいコンソールが表示されないのはなぜZですか?
Rocket Hazmat

3
Powershellを昇格させていますか?その場合は、「管理者として実行」なしで実行してみてください。管理者特権で実行している場合は、ドライブを再マップする必要があります。 stackoverflow.com/questions/4742992/...
jscott

@jscott:管理者として実行されています。私も走ったSet-ExecutionPolicy -ExecutionPolicy Unrestricted。PowerShellを使用して、を呼び出すスクリプトを実行しようとしていますNew-ADUser
Rocket Hazmat

@jscott:(管理者ではなく)ユーザーとしてPowerShellを実行Z:したところ、問題なくアクセスできました。
Rocket Hazmat 2015年

回答:


8

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

net use Z: "\\vmware-host\Shared Folders"

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


また、PowershellがPUSHDとPOPD(またはより正式には、プッシュロケーションとポップロケーション)の使用をサポートしていることも触れておきます。これらは、特定の操作のドライブを一時的にマッピングするのに適しています。
Get-HomeByFiveOClock

5

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

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

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

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

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

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


ええ、それはここで起こっていたものです。ドライブはユーザーとしてマップされ、PowerShellは管理者として実行されていました。私はPowerShellではなくLinuxシェルに慣れています。
ロケットハズマット2015年

これは、管理コンソールのプロンプトに関して本当に良いヒントです。profile.ps1で何を使用して、セッションが昇格されているかどうかを検出していますか?
stib
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.