Мой ноутбук вчера вернулся из ремонта. Его жесткий диск был заменен на твердотельный накопитель со свежей установкой Windows 10 Домашняя для одного языка (обновление 1903) без резервного копирования. Он также поставлялся с учетной записью администратора, которая называлась что-то вроде «пользователь». Эта деталь смущала.
Я должен был лучше подготовить исследовательский кулак, но я был слишком нетерпелив. Итак, моей первой попыткой было изменить имя пользователя в Панели управления. Но имя пользовательской папки осталось прежним. Затем я выполнил Control UserPasswords2
и изменил там имя пользователя. Запустив его во второй раз, я не увидел ни одного пользователя в списке, но мне просто пришлось перезагрузиться. Я не помню, какое имя пользователя было там раньше, но к тому времени отображалось новое. Но, опять же, имя папки не изменилось.
Я заметил еще одну странную вещь: мой Wi-Fi дублировался. Я мог бы использовать, скажем, «NET» и «NET 2». Это было решено путем удаления обеих сетей. На всякий случай проверил, дублируется ли папка Temp, и нет.
Затем я провел более длительное исследование, и во многих местах указывалось решение, которое требовало изменения всех совпадающих значений пути пользователя в реестре, около 100 записей. Использование сценария PowerShell выглядело хорошей идеей. Я не нашел никакого кода для этого, но я уже играл с PowerShell. Пробуем простые вещи.
Я думал, что придерживаться Get-
команд и избегать Set-
будет безопасно. Но когда я выполнил следующее:
PS C:\Windows\system32> 1, 2, 3 | Get-ItemProperty
Результат был:
Diretório: C:\Windows\system32
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 14/07/2019 11:21 8 1
-a---- 14/07/2019 11:10 2 2
Get-ItemProperty : Não é possível localizar o caminho 'C:\Windows\system32\3' porque ele não existe.
No linha:1 caractere:11
+ 1, 2, 3 | Get-ItemProperty
+ ~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Windows\system32\3:String) [Get-ItemProperty], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetItemPropertyCommand
Мне это показалось странным, потому что была таблица с информацией, смешанной с сообщением об ошибке, как будто она что-то изменила.
Я посмотрел папку System32 и там было два файла без расширения с именами 1
и 2
. Это единственные файлы, созданные и измененные сегодня в этой папке. А 1
старше 2
.
Вот что внутри 1
:
3
Файл 2
пуст.
Файлы остаются там даже при закрытии PowerShell.
Вот история команд, которые я выполнил в последней (и, кажется, единственной) сессии:
PS C:\Windows\system32> help GetItemProperty
PS C:\Windows\system32> GetChildItem -path HKCU:\ | GetItemProperty
PS C:\Windows\system32> Get-ChildItem -path HKCU:\ | Get-ItemProperty
PS C:\Windows\system32> Get-ChildItem -path HKCU:\
PS C:\Windows\system32> Get-ChildItem -path HKCU:\ | Get-ItemProperty Name
PS C:\Windows\system32> Get-ChildItem -path HKCU:\ | Get-ItemProperty -Name
PS C:\Windows\system32> Get-ChildItem -path HKCU:\ | Get-ItemProperty -Property "Name"
PS C:\Windows\system32> Get-ChildItem -path HKCU:\ | Get-ItemProperty
PS C:\Windows\system32> Get-ChildItem -path HKCU:\
PS C:\Windows\system32> 1,2,3 | Get-ItemProperty
PS C:\Windows\system32> 1, 2, 3 | Where $_ > 2
PS C:\Windows\system32> 1, 2, 3 | Where ($_ > 2)
PS C:\Windows\system32> 1, 2, 3 | Where $PSItem > 2
PS C:\Windows\system32> 1, 2, 3 | Where $_ -eq 2
PS C:\Windows\system32> 1, 2, 3 | Where -($_ > 2)
PS C:\Windows\system32> 1, 2, 3 | Where-Object $_ -eq 2
PS C:\Windows\system32> 1, 2, 3 | Where-Object -$_ -eq 2
PS C:\Windows\system32> 1, 2, 3 | Where -$_ -eq 2
PS C:\Windows\system32> 1, 2, 3 | Where -$_ = 2
PS C:\Windows\system32> 1, 2, 3 | Where -$_ == 2
PS C:\Windows\system32> 1, 2, 3 | Where - $_ -eq 2
PS C:\Windows\system32> 1, 2, 3 | Where -$_ -eq 2
PS C:\Windows\system32> 1, 2, 3 | Where -$_ -greater 2
PS C:\Windows\system32> 1, 2, 3 | Where -$_ -gt 2
PS C:\Windows\system32> 1, 2, 3 | Where -$_ -gt 0
PS C:\Windows\system32> 1, 2, 3 | Where -gt 0
PS C:\Windows\system32> 1, 2, 3 | Where-Object -$ -gt 1
PS C:\Windows\system32> 1, 2, 3 | Where-Object -$_ -gt 1
PS C:\Windows\system32> 1, 2, 3 | Where-Object -gt 1
PS C:\Windows\system32> 1, 2, 3 | Where -Property $_ Value 2
PS C:\Windows\system32> help Where
PS C:\Windows\system32> 1, 2, 3 | Where { $_ > 1 }
PS C:\Windows\system32> 1, 2, 3 | % { $_ > 1 }
PS C:\Windows\system32> 1, 2, 3 | % { $_ > 1 } | Write
PS C:\Windows\system32> 1, 2, 3 | % { $_ > 1 } | Write-Verbose
PS C:\Windows\system32> 1, 2, 3 | Where { $_ -eq 1 }
PS C:\Windows\system32> 1, 2, 3 | Where { $_ -gt 1 }
PS C:\Windows\system32> 1, 2, 3 | % { $_ -gt 1 }
PS C:\Windows\system32> 1, 2, 3 | % { if ($_ -gt 1) { Write $_ } }
PS C:\Windows\system32> help Write
PS C:\Windows\system32> 1, 2, 3 | Get-ItemProperty
Я не планирую менять реестр, я думаю, что просто вернуть старое имя и создать отдельную учетную запись будет нормально. Но стоит ли мне беспокоиться об этих двух файлах?
Простите за длинный пост. Заранее спасибо.