ISE Powershell не может запуститься после (по глупости) удаления всех переменных - PullRequest
3 голосов
/ 14 апреля 2011

В своем стремлении выяснить, какие переменные были защищены или константы, я решил просто посмотреть, какие из них можно удалить - предполагая, что упомянутые выше будут оставлены в покое.Чего я не осознавал, так это того, что удаление этих переменных не ограничивалось бы областью применения этого сеанса ISE - но было не только глобальным для PowerShell, но и глобальным для системы.Я надеюсь, что кто-то может помочь мне заставить работать ISE снова.

Моя глупость:

Remove-Variable *  

... привела к множеству сообщений об ошибках итолько горстка (10-15) осталась, когда я выполнил dir variable: впоследствии.Думая, что это было не страшно, и что перезапуск ISE вернул бы меня к нормальной жизни, я закрыл его - и больше не могу его запускать.

Дополнительные симптомы

С тех пор я обнаружил, что я потерял такие вещи, как переменные окружения %windir% пропали - что в самом интересном повороте мешает вам открыть расширенные настройки системы (не удается найти %windir%\system32\systempropertiesadvanced.exe), чтобы вернуть обратно ENVвверх ... (Да, я могу запустить его напрямую)

Обновление : Я обнаружил дополнительный эффект / симптом: Windows сообщила, что у меня может не быть подлинной версии Windows после автоматической-Обновление не может работать правильно.Я не осознавал, что что-то такое простое, как исчезновение некоторых ENV-вариаций, убьет это.Хм.

Итак - кто-нибудь знает, как восстановить или воссоздать среду, необходимую для успешного запуска ISE?

(И да, я пытался удалить и повторно добавить функцию,в сочетании с перезагрузками.)

Ответы [ 2 ]

2 голосов
/ 15 апреля 2011

Я только что удалил-Variable * в ISE и ничего не произошло. Я все еще могу открыть ISE и работать как обычно. Я также сделал -WhatIf, чтобы увидеть, что действительно удаляется.

PS H:\> Remove-Variable * -WhatIf
What if: Performing operation "Remove Variable" on Target "Name: null".
What if: Performing operation "Remove Variable" on Target "Name: false".
What if: Performing operation "Remove Variable" on Target "Name: true".
What if: Performing operation "Remove Variable" on Target "Name: MaximumErrorCount".
What if: Performing operation "Remove Variable" on Target "Name: MaximumVariableCount".
What if: Performing operation "Remove Variable" on Target "Name: MaximumFunctionCount".
What if: Performing operation "Remove Variable" on Target "Name: MaximumAliasCount".
What if: Performing operation "Remove Variable" on Target "Name: MaximumDriveCount".
What if: Performing operation "Remove Variable" on Target "Name: Error".
What if: Performing operation "Remove Variable" on Target "Name: PWD".
What if: Performing operation "Remove Variable" on Target "Name: ?".
What if: Performing operation "Remove Variable" on Target "Name: MaximumHistoryCount".
What if: Performing operation "Remove Variable" on Target "Name: Host".
What if: Performing operation "Remove Variable" on Target "Name: HOME".
What if: Performing operation "Remove Variable" on Target "Name: ExecutionContext".
What if: Performing operation "Remove Variable" on Target "Name: PSVersionTable".
What if: Performing operation "Remove Variable" on Target "Name: PID".
What if: Performing operation "Remove Variable" on Target "Name: PSCulture".
What if: Performing operation "Remove Variable" on Target "Name: PSUICulture".
What if: Performing operation "Remove Variable" on Target "Name: ShellId".
What if: Performing operation "Remove Variable" on Target "Name: PSHOME".
What if: Performing operation "Remove Variable" on Target "Name: ConsoleFileName".
What if: Performing operation "Remove Variable" on Target "Name: $".
What if: Performing operation "Remove Variable" on Target "Name: ^".
What if: Performing operation "Remove Variable" on Target "Name: StackTrace".
What if: Performing operation "Remove Variable" on Target "Name: OutputEncoding".
What if: Performing operation "Remove Variable" on Target "Name: ConfirmPreference".
What if: Performing operation "Remove Variable" on Target "Name: DebugPreference".
What if: Performing operation "Remove Variable" on Target "Name: ErrorActionPreference".
What if: Performing operation "Remove Variable" on Target "Name: ProgressPreference".
What if: Performing operation "Remove Variable" on Target "Name: VerbosePreference".
What if: Performing operation "Remove Variable" on Target "Name: WarningPreference".
What if: Performing operation "Remove Variable" on Target "Name: ErrorView".
What if: Performing operation "Remove Variable" on Target "Name: NestedPromptLevel".
What if: Performing operation "Remove Variable" on Target "Name: ReportErrorShowExceptionClass".
What if: Performing operation "Remove Variable" on Target "Name: ReportErrorShowInnerException".
What if: Performing operation "Remove Variable" on Target "Name: ReportErrorShowSource".
What if: Performing operation "Remove Variable" on Target "Name: ReportErrorShowStackTrace".
What if: Performing operation "Remove Variable" on Target "Name: WhatIfPreference".
What if: Performing operation "Remove Variable" on Target "Name: FormatEnumerationLimit".
What if: Performing operation "Remove Variable" on Target "Name: PSEmailServer".
What if: Performing operation "Remove Variable" on Target "Name: PSSessionOption".
What if: Performing operation "Remove Variable" on Target "Name: PSSessionConfigurationName".
What if: Performing operation "Remove Variable" on Target "Name: PSSessionApplicationName".
What if: Performing operation "Remove Variable" on Target "Name: psUnsupportedConsoleApplications".
What if: Performing operation "Remove Variable" on Target "Name: PSBoundParameters".
What if: Performing operation "Remove Variable" on Target "Name: args".
What if: Performing operation "Remove Variable" on Target "Name: input".
What if: Performing operation "Remove Variable" on Target "Name: MyInvocation".
What if: Performing operation "Remove Variable" on Target "Name: _".
What if: Performing operation "Remove Variable" on Target "Name: psLocalHelp".
What if: Performing operation "Remove Variable" on Target "Name: psOnlineHelp".
What if: Performing operation "Remove Variable" on Target "Name: psISE".
What if: Performing operation "Remove Variable" on Target "Name: profile".

Отмечу, что в этом списке действительно скандал. Кстати, это просто переменные в пространстве выполнения ISE. Я не уверен, как удаление этих переменных препятствовало бы функционированию ISE вообще.

0 голосов
/ 15 апреля 2011

Спасибо всем за помощь - вот что я сделал, который, хотя я не уверен, что вернул меня на 100%, позволил мне использовать ISE, Hyper-V Manager и снова подтвердить подлинность.

Я перешел на другой сервер Server 2008 R2, сравнил ключ, вручную отредактировал реестр и добавил эти значения обратно на сломанную машину:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
  Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;
  PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
  PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
  TEMP=C:\Windows\TEMP
  TMP=C:\Windows\TEMP
  windir=C:\Windows

Я склоняюсь к повышенным привилегиям администратора ISEв качестве основной причины это затронуло больше, чем сеанс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...