73

Windows 7 x64 仮想マシンで PowerShell を実行しています。ホスト上にネットワーク ドライブ (Z:) としてマップされた共有フォルダーがあります。PS を通常どおり実行すると、そのドライブに問題なくアクセスできますが、「管理者として」実行すると、次のように表示されます。

Set-Location : Cannot find drive. A drive with the name 'Z' does not exist.
At line:1 char:13
+ Set-Location <<<<  Z:
    + CategoryInfo          : ObjectNotFound: (Z:String) [Set-Location], DriveNotFoundException
    + FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.SetLocationCommand

管理者としてネットワーク ドライブにアクセスするにはどうすればよいですか?

4

7 に答える 7

105

最終的には、管理者として実行中にドライブ文字を再マップするだけで修正できました。

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

同じ PowerShell インスタンスから (またはまったく PowerShell から) 実行する必要はありません。ログオン セッション全体で 1 回だけ実行する必要があります。

于 2011-01-23T23:17:08.707 に答える
11

私の場合、ドライブ マッピングの代わりに UNC パスを使用するだけで問題なく動作しました。

したがって、あなたの例では、マップされたドライブ Z:\ を使用する代わりに、「\\vmware-host\Shared Folder」をパスとして使用しました。

于 2012-10-24T16:05:53.220 に答える
3

Powershell が昇格モードで実行されているときに、profile.ps1 で「不足している」PSDrive を再作成する次のハック ソリューションを使用しています。

要旨

# Reconnect PSDrives for network connections when running with elevated privileges
$elevated = (([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))
if( $elevated ) {
    net use | ?{ $_ -match ":\s+\\\\"  -and !$_.StartsWith("Unavailable") } | %{
        $tokens = $_.split(":")
        $psdrivename = $tokens[0][$tokens[0].length-1]
        $path = $tokens[1].trim().split(" ")[0].trim()

        if( !(get-psdrive | ?{ $_.Name -eq $psdrivename } )) {
            write-host ( "Restoring PSDrive for {0}: {1}" -f $psdrivename, $path )
            new-psdrive $psdrivename FileSystem $path | out-null
        }
    }
}  
于 2015-03-31T16:33:19.983 に答える
0

Vista以降、Microsoftにとって既知の問題のようです。安全でないレジストリの修正 に関する
Microsoft Knowledge Base の記事。

一部の担当者は、この後にマシンが起動しない可能性があると感じているため、現在このアプローチを評価しています;-)

于 2013-05-29T15:38:01.237 に答える
0

新しいpsdriveをマッピングしてそのデータにアクセスするのはどうですか? PSDrive は、スクリプトを記述したり、PowerShell でネットワーク データ ストアにアクセスしたりするときに、システムにマップされたドライブよりも優れていなくても、同じように機能します。

New-PSDriveコマンドレットの使用方法については、Technet:New-PSDriveを参照してください。

毎回新しい psdrive を作成する必要がない場合は、管理者とユーザー アカウントの両方のプロファイルに追加でき、powershell を開くたびに自動的に使用できるようになります。

〜ダン

于 2011-01-21T14:48:26.503 に答える