Мне нужно сопоставить сетевой диск с пользователем SYSTEM, я создал PS1, который запускается запланированной задачей, первая часть успешно отображает диск:
$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("y:", "\\SAN_SERVER\folder1", $false, "domain\service_user", "password")
После сопоставления происходит куча вещей, копирование файлов и т. Д.
В конце скрипта подключенный диск нужно отключить:
& 'D:\Scripts\PsExec64.exe' -s cmd /c "net use y: /delete /yes"
Эта команда работает, если я запускаю ее вручную из своей учетной записи (мне нужно запустить PS от имени администратора), однако она не работает из сценария в запланированной задаче, я использую PsExec64.exe, потому что я узнал, что, поскольку сеть диск был сопоставлен с доменом \ пользователем, он может быть отключен только с доменом / пользователем_службы, если мы не используем PsExec64.exe, есть ли способ отключить диск, используя другие данные?
На данный момент я предполагаю, что у вас есть причины совместимости / устаревшие, чтобы не использовать собственный Новый-PSDrive командлет из вашего сценария Powershell.
Итак, поскольку вы уже используете наследие MapNetworkDrive из WScript.Network, почему вы используете net use
с psexec вместо использования его партнера, RemoveNetworkDrive?
Не используйте буквы дисков. Powershell, даже в версии 2.0, позволит вам широко использовать UNC-пути при работе с файловой системой. Таким образом, вы можете напрямую обращаться к местоположениям без PSDrive или буквы диска. Тогда вам не нужно ничего отображать, и вам не нужно их отключать.
#as the service account
Set-Location \\SAN_SERVER\folder1
#this is the same as net use y: \\SAN_SERVER\folder1;cd y:
Затем просто выполняйте манипуляции с файлом с относительными путями. Вы также можете присвоить переменным имя сервера и путь к папке, чтобы вы могли использовать "$server\$folderpath\"
вместо буквы диска.
Я нашел ответ, и это так глупо ..
& net use y: /delete /yes
Это работает при запуске из запланированной задачи с помощью SYSTEM .. Просто нужно добавить &, показывает отсутствие у меня навыков PS .. о, мальчик