我正在尝试使用 powershell 中的“系统”帐户将驱动器映射到另一台服务器。我成功了,但只有以系统身份登录才能访问服务器,而不能以管理员或普通用户身份登录。
如果我使用管理员 powershell 或 dos 命令 shell 映射它,那么每个人都可以使用它。不幸的是,我无法做到这一点,因为我正在使用 Amazon Web Service (AWS) SendCommand 功能进行映射,并且它仅使用系统级 powershell。即使我将映射命令放在批处理文件中并让其运行,映射的驱动器仍然仅对系统 powershell 用户可用。
以下是通过 AWS SendCommand 发送的两个命令的示例:
cd "C:/Program Files/Enventive/EnCOM Listener 1.0/lib/"
start-process "cmd.exe" "/c MapNetworkDrive 172.31.26.59"
批处理文件执行如下网络使用命令:
net use D: \\%1\Company /USER:Administrator /PERSISTENT:YES "<password>"
有没有什么办法可以让系统级 powershell 映射的驱动器可供所有用户使用?
我也在系统级 powershell 中尝试了以下方法,但得到了相同的结果:
$user = "Administrator"
$pass = ConvertTo-SecureString -String '<password>' -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user,$pass
New-PSDrive -Name D -PSProvider FileSystem -Root \\172.31.26.59\Company -Credential $cred -Persist
完成此操作后,D: 驱动器可从系统级 powershell 中使用,但不能从 DOS 命令 shell 或管理员级 powershell 中使用
我也尝试过:
$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("D:", "\\172.31.26.59\Company", $false, "Administrator", '<password>')
得到了相同的结果。在所有尝试中,文件资源管理器中都显示“已断开连接的网络驱动器 (D:)”,如果我单击它,会弹出一个窗口,提示“无法访问 D:\。用户名或密码不正确。”
答案1
有没有什么办法可以让系统级 powershell 映射的驱动器可供所有用户使用?不。
映射网络驱动器特定于用户帐户。您在使用启动的会话中创建的映射网络驱动器以管理员身份运行选择权或使用其他用户的凭证 不可见在没有明确凭据启动的会话中,或者使用当前用户的凭据启动的会话中。
顺便一提,你可能会遇到驱动器号冲突分配映射驱动器号给D
...
A和B一般是上个世纪的软盘驱动器保留的,C和D一般是硬盘驱动器和光驱保留的,所以读卡器会使用E,F,G,H。