Это действительно досадная ошибка - попытка выполнить операцию InitializeDefaultDrives на провайдере FileSystem не удалась., который я получаю каждый раз, когда запускаю powershell вне сети компании.
Скриншот
Краткое описание:
У меня есть ноутбук в домене. Есть два способа, которыми я использую это. Сначала внутри сети компании и там все отлично работает. Второй способ, когда я нахожусь вне офиса, подключаясь через VPN. Выдает вышеупомянутую ошибку каждый раз, когда я запускаю powershell.
Скрипт для поиска диска:
Из моего повторного поиска ошибки причина, по-видимому, заключается в невозможности подключения диска или ресурса.
Я пытался выяснить, в чем может быть причина. Поскольку произошли некоторые изменения в структуре домашних папок, я заподозрил это.
Я выполнил в обоих местах этот скрипт:
Write-Verbose -Message 'Get-PSDrive -PSProvider FileSystem' -verbose
echo 'Get-PSDrive -PSProvider FileSystem' | Out-File -Append -Encoding "UTF8" -FilePath filesystem.log
Get-PSDrive -PSProvider FileSystem | Out-File -Append -Encoding "UTF8" -FilePath filesystem.log
Write-Verbose -Message 'net use' -verbose
echo 'net use' | Out-File -Append -Encoding "UTF8" -FilePath filesystem.log
net use | Out-File -Append -Encoding "UTF8" -FilePath filesystem.log
Write-Verbose -Message '[System.IO.DriveInfo]::GetDrives() | Format-Table' -verbose
echo '[System.IO.DriveInfo]::GetDrives() | Format-Table' | Out-File -Append -Encoding "UTF8" -FilePath filesystem.log
[System.IO.DriveInfo]::GetDrives() | Format-Table | Out-File -Append -Encoding "UTF8" -FilePath filesystem.log
# does not work properly
# Write-Verbose -Message 'Get-CimInstance -ClassName Win32_LogicalDisk -ComputerName $env:COMPUTERNAME' -verbose | Out-File -Append -Encoding "UTF8" -FilePath filesystem.log
#Get-CimInstance -Class Win32_LogicalDisk | Out-File -Append -Encoding "UTF8" -FilePath filesystem.log
Write-Verbose -Message 'Get-CimInstance -Class Win32_NetworkConnection' -verbose
echo 'Get-CimInstance -Class Win32_NetworkConnection' | Out-File -Append -Encoding "UTF8" -FilePath filesystem.log
Get-CimInstance -Class Win32_NetworkConnection | Out-File -Append -Encoding "UTF8" -FilePath filesystem.log
Результаты:
Кажется, что U:\ скрывается от теней (не появляется в помещениях). Это сетевой диск, который был отключен и больше не должен использоваться. (есть некоторые унаследованные программы, использующие его, и их следует применять через правила GPO)
net use
дает:
U: \\server_name\U_login_name$ NFS Network
[System.IO.DriveInfo]::GetDrives() | Format-Table
производит:
Name DriveType DriveFormat IsReady AvailableFre TotalFreeSpa TotalSize RootDirecto VolumeLabel
eSpace ce ry
---- --------- ----------- ------- ------------ ------------ --------- ----------- -----------
C:\ Fixed NTFS True 1779298304 1779298304 ...43488000 C:\ OSDisk
U:\ Network False U:\
Get-CimInstance -Class Win32_NetworkConnection
LocalName RemoteName ConnectionState Status
--------- ---------- --------------- ------
U: \\server_name\U_login_name$ Disconnected Unavailable
С другой стороны, когда непосредственно в сети компании нет U:\ что так всегда.
Что я пытался исправить ситуацию
ручное отключение
1) обычным способом (щелкнув правой кнопкой мыши по разъединению) выдается ошибка этого сетевого подключения не существует
2) при использовании NFS
umount u:
::Disconnecting U: \\server_name\U_login$ There are open files and/or incomplete directory searches pending on the connection. Do you want to continue this operation? (Y/N) [N]:y Network Error - 2250 Not Connected
3) Пробное принудительное отключение всех подключений NFS (U: диск указан как общий ресурс NFS)
umount -f -a
:Network Error - 2250 Not Connected
предложения найдены в интернете:
1) Изменить GPO
Чтобы решить эту проблему, примените следующий параметр через групповую политику:
User Configuration/Administrative Templates/System/Scripts/Run logon scripts synchronously = Enabled
(примечание: компьютер запускается очень, очень медленно при использовании перемещаемого профиля. Пришлось отключить эту настройку)
2) подключенный диск не исчезнет
Я очень надеялся на эту ссылку. Подключенный диск не исчезнет - при повторном входе в систему я продолжаю подключаться. У меня такое же чувство, как в посте, - цитата:
> I have indeed checked scripts and GPOs and this is nowhere to be found there. This looks more like a manual mapping that had the
> "Reconnect on logon" checkbox checked and is now so persistent that
> there was no "normal" way to undo it.
К сожалению, каждое предложение не получилось.
реестр
1) Я искал строку в реестре и нашел ее здесь:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2]
. Я пытался удалить диск U:, но он продолжает возвращаться.
2) Я также нашел это здесь (но еще не экспериментировал с этим; я не хочу ломать ОС):
Windows Registry Editor Version 5.00
[HKEY_USERS\S-1-5-21-119559289-1840127793-336618761-855951\Volatile Environment]
"HOMEDRIVE"="U:"
"LOGONSERVER"="\\\\logon_server"
"USERDNSDOMAIN"="dns_domain"
"USERDOMAIN"="user_domain"
"USERNAME"="login"
"USERPROFILE"="C:\\Users\\login"
"HOMEPATH"="\\"
"HOMESHARE"="\\\\server_name\\U_login$"
"APPDATA"="C:\\Users\\login\\AppData\\Roaming"
"LOCALAPPDATA"="C:\\Users\\login\\AppData\\Local"
"USERDOMAIN_ROAMINGPROFILE"="user_domain"
[HKEY_USERS\S-1-5-21-119559289-1840127793-336618761-855951\Volatile Environment\1]
"SESSIONNAME"="Console"
"CLIENTNAME"=""
На данный момент я пришел к выводу, что что-то не так с моим профилем роуминга. Мне еще предстоит найти причину, по которой профиль в роуминге не обновляется с правильной информацией.
У кого-нибудь есть идея / опыт как решить такую проблему?