Ошибка при инициализации диска по умолчанию powershell
Initializes a RAW disk for first time use, enabling the disk to be formatted and used to store data.
Inputs
You can pipe an MSFT_VirtualDisk object to the VirtualDisk parameter.
You can pipe an MSFT_Disk object to the InputObject parameter.
Examples
Parameters
Runs the cmdlet as a background job. Use this parameter to run commands that take a long time to complete.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Runs the cmdlet in a remote session or on a remote computer. Enter a computer name or a session object, such as the output of a New-CimSession or Get-CimSession cmdlet. The default is the current session on the local computer.
Type: | CimSession [ ] |
Aliases: | Session |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Prompts you for confirmation before running the cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies the friendly name of the disk to initialize.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Specifies the input object that is used in a pipeline command.
Type: | CimInstance [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Specifies the disk number of the disk to initialize.
Type: | UInt32 [ ] |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Type: | PartitionStyle |
Accepted values: | Unknown, MBR, GPT |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Sends items from the interactive window down the pipeline as input to other cmdlets. By default, this cmdlet does not generate any output.
To send items from the interactive window down the pipeline, click to select the items and then click OK. Shift-click and Ctrl-click are supported.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies the path of the disk to initialize.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Specifies the maximum number of concurrent operations that can be established to run the cmdlet. If this parameter is omitted or a value of 0 is entered, then Windows PowerShell® calculates an optimum throttle limit for the cmdlet based on the number of CIM cmdlets that are running on the computer. The throttle limit applies only to the current cmdlet, not to the session or to the computer.
Type: | Int32 |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies the UniqueID of the disk to initialize
Type: | String [ ] |
Aliases: | Id |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Specifies the VirtualDisk object for which you want to initialize the associated Disk object. The Virtual Disk CIM object is exposed by the Get-VirtualDisk cmdlet.
Type: | CimInstance |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Example 3: Initialize a virtual disk
This example uses the VirtualDisk parameter with the Get-VirtualDisk cmdlet to get a virtual disk with the friendly name UserData, and initialize the Disk object associated with the virtual disk.
Examples
Description
The Initialize-Disk cmdlet initializes a Disk object with the RAW partition style to either the MBR or GPT partition styles. The default partition style is GPT. Disks must be initialized before they can be formatted and used to store data.
Example 1: Initialize a disk using default values
This example initializes the first disk in the computer (disk number 1), using the default values, which initializes the disk using the GPT partition style.
Outputs
If you specify the Passthru parameter, this cmdlet returns an object representing the newly initialized disk.
Решение
я не хочу прерывать выполнение скрипта в случае возникновения этих ошибок, но в случае -ea SilentlyContinue обработки ошибки не происходит.
Continue в catch-блоке поможет вам обработать ошибку и продолжить выполнение скрипта, например:
что любопытно,
$Error[0].Exception.HResult
вместо того, что я от него ожидал,
возвращает одну и ту же величину для всех ошибок.
ПОЧЕМУ ? Кто-нить разбирался с этим ?
KDE777, Хммм.
А разве continue в данном случае отрабатывает для catch-блока?
Судя по описанию About Continue, он отрабатывает только для for, foreach и while.
Я могу ошибаться, но может он все-таки для блока foreach отрабатывает в данном случае?
Просто для меня не очень понятно, почему вы его именно сюда включаете.
Добавлено через 6 минут
Да и в целом, выполнения цикла должно продолжиться и без continue
А разве continue в данном случае отрабатывает для catch-блока?
Судя по описанию About Continue, он отрабатывает только для for, foreach и while.
Я могу ошибаться, но может он все-таки для блока foreach отрабатывает в данном случае?
Действительно перепутал, в моём примере foreach-блок продолжит выполнение по умолчанию (и без Continue). А вот чтобы его остановить, нужен Break. Но главное, что этот пример показывает - конструкция из -EA Stop + try catch - не остановит перебор в foreach.
По поводу основного вопроса, по моему, дельный совет дал v_svitere - попробовать обрабатывать непосредственно текст ошибки ($_.exception.message или $Error[0].Exception).
К примеру, этот код добавления пользователя домена в локальную группу
может завершаться различными ошибками. В зависимости от ошибки вернее от кода ошибки должно происходить следующее действие.
Рассмотрим возможные ошибки связанные с этим действием:
В любом случае скрипт безвозвратно сворачивает в catch <> и там выводит длиннющий текст об ошибке, типа:
Исключение при вызове "Invoke" с "2" аргументами: "Не удалось добавить или удалить члена локальной группы, так как он не существует."
Все это я уже знаю и уже долго использую. Вопрос же был, имеется ли в Powershell что либо похожее на обработку ошибок в старых добрых версиях языках программирования типа C или Turbo Pascal. Что то вроде того, где $LastErrorCode - это, как в СИ, integer число, каждый код которой, имеет значении определенной ошибки.
The operation completed successfully.
ERROR_SUCCESS
0 (0x0)
Incorrect function.
ERROR_INVALID_FUNCTION
1 (0x1)
The system cannot find the file specified.
ERROR_FILE_NOT_FOUND
2 (0x2)
The system cannot find the path specified.
ERROR_PATH_NOT_FOUND
3 (0x3)
The system cannot open the file.
ERROR_TOO_MANY_OPEN_FILES
4 (0x4)
Access is denied.
ERROR_ACCESS_DENIED
5 (0x5)
The handle is invalid.
ERROR_INVALID_HANDLE
6 (0x6)
Заметьте, не вывод тонного текста с описанием ошибки, а вывод кода завершения последней команды с ошибкой или без. Вроде числа 2, которое например может означать ERROR_FILE_NOT_FOUND, короче, текст я сам в зависимости от кода ошибки забацаю, если нужно). Мне кажется у вас сказывается отсутствие старой школы программирования, поэтому, то, что мне кажется элементарно, до вас никак не может дойти. Только, пожалуйста, без обид, хамства и незаслуженного минусования.
Если представить это на Powershell, то выглядеть это могло бы так:
Всем привет, мб кто сталкивался, надо отформатировать жесткий диск, есть код, где диск это буква диска метка название диска.
при попытке запуска выдает ошибку:
Format-Volume : Invalid Parameter
Activity ID:
C:\Users\writer\Desktop\GF1.ps1:8 знак:1
+ Format-Volume -DriveLetter $ -NewFileSystemLabel $
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~
+ CategoryInfo : InvalidArgument: (StorageWMI:ROOT/Microsoft/. age/MSFT_Volume) [Format-Volume], CimException
+ FullyQualifiedErrorId : StorageWMI 5,Format-Volume
Ошибка при форматировании жесткого диска 0х8004242д
Поставил на ноутбук Windows 7 т.к он установился без драйверов - начал установку lan и wlan.
Пропали данные с переносного жесткого диска!
Жесткий диск Seagate Free Agent Go 50 GB работал два года отлично. Сегодня смотрели фотографии с.
Не открываются файлы с переносного жесткого диска
добрый день всем! проблема случилась, несколько лет назад продал ноутбук, предварительно скинув.
Установка Windows через BIOS с переносного жесткого диска
Всем добрый день! Обращаюсь впервые с такой проблемой - решила установить Windows с переносного.
Format-Volume : Invalid Parameter
Activity ID:
C:\Users\writer\Desktop\GF1.ps1:8 знак:1
+ Format-Volume -DriveLetter $ -NewFileSystemLabel $
А в показанном скрипте всего 5 строчек и аргументы Format-Volume выглядят иначе:
Ошибка:
PS C:\Users\writer\Desktop> C:\Users\writer\Desktop\GF1.ps1
M
16-2
format-volume : Invalid Parameter
Activity ID:
C:\Users\writer\Desktop\GF1.ps1:8 знак:1
+ format-volume -driveLetter $disk -fileSystem NTFS -NewFileSystemLabel .
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~
+ CategoryInfo : InvalidArgument: (StorageWMI:ROOT/Microsoft/. age/MSFT_Volume) [Format-Volume], CimException
+ FullyQualifiedErrorId : StorageWMI 5,Format-Volume
Можете показать свойства этого диска?
Пробовали просто в PS выполнить команду форматирования?
Или попробовать с другой ФС?
Пробовали просто в PS выполнить команду форматирования?
PowerShellВыделить код
1
Format-Volume -DriveLetter M -FileSystem NTFS -NewFileSystemLabel "16-2"
да пробовал тоже самое выдает
Или попробовать с другой ФС?
PowerShellВыделить код
1
Format-Volume -DriveLetter M -FileSystem exFAT -NewFileSystemLabel "16-2"
Попробуйте пересоздать раздел:
выкинуло с ошибкой
Remove-Partition : Клиенту не удалось получить доступ к ресурсу CIM.
C:\Users\writer\Desktop\GF1.ps1:10 знак:1
+ Remove-Partition -DriveLetter M
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (MSFT_Partition . ows/Storage. ):ROOT/Microsoft/. /MSFT_Partition) [Remo
ve-Partition], CimException
+ FullyQualifiedErrorId : MI RESULT 2,Remove-Partition
New-Partition : Клиенту не удалось получить доступ к ресурсу CIM.
C:\Users\writer\Desktop\GF1.ps1:11 знак:1
+ New-Partition -DiskNumber $DiskNumber -UseMaximumSize -DriveLetter M
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
+ CategoryInfo : PermissionDenied: (MSFT_Disk (Obje. ows/Storage. ):ROOT/Microsoft/Windows/Storage/MSFT_Disk
) [New-Partition], CimException
+ FullyQualifiedErrorId : MI RESULT 2,New-Partition
Format-Volume : Invalid Parameter
Activity ID:
C:\Users\writer\Desktop\GF1.ps1:12 знак:1
+ Format-Volume -DriveLetter M -FileSystem NTFS -NewFileSystemLabel "16 .
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~
+ CategoryInfo : InvalidArgument: (StorageWMI:ROOT/Microsoft/. age/MSFT_Volume) [Format-Volume], CimException
+ FullyQualifiedErrorId : StorageWMI 5,Format-Volume
Initializes a RAW disk for first time use, enabling the disk to be formatted and used to store data.
Example 3: Initialize a virtual disk
This example uses the VirtualDisk parameter with the Get-VirtualDisk cmdlet to get a virtual disk with the friendly name UserData, and initialize the Disk object associated with the virtual disk.
Description
The Initialize-Disk cmdlet initializes a Disk object with the RAW partition style to either the MBR or GPT partition styles. The default partition style is GPT. Disks must be initialized before they can be formatted and used to store data.
Parameters
Runs the cmdlet as a background job. Use this parameter to run commands that take a long time to complete.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Runs the cmdlet in a remote session or on a remote computer. Enter a computer name or a session object, such as the output of a New-CimSession or Get-CimSession cmdlet. The default is the current session on the local computer.
Type: | CimSession [ ] |
Aliases: | Session |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Prompts you for confirmation before running the cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies the friendly name of the disk to initialize.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Specifies the input object that is used in a pipeline command.
Type: | CimInstance [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Specifies the disk number of the disk to initialize.
Type: | UInt32 [ ] |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Type: | PartitionStyle |
Accepted values: | Unknown, MBR, GPT |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Sends items from the interactive window down the pipeline as input to other cmdlets. By default, this cmdlet does not generate any output.
To send items from the interactive window down the pipeline, click to select the items and then click OK. Shift-click and Ctrl-click are supported.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies the path of the disk to initialize.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Specifies the maximum number of concurrent operations that can be established to run the cmdlet. If this parameter is omitted or a value of 0 is entered, then Windows PowerShell® calculates an optimum throttle limit for the cmdlet based on the number of CIM cmdlets that are running on the computer. The throttle limit applies only to the current cmdlet, not to the session or to the computer.
Type: | Int32 |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies the UniqueID of the disk to initialize
Type: | String [ ] |
Aliases: | Id |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Specifies the VirtualDisk object for which you want to initialize the associated Disk object. The Virtual Disk CIM object is exposed by the Get-VirtualDisk cmdlet.
Type: | CimInstance |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Shows what would happen if the cmdlet runs. The cmdlet is not run.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Syntax
Syntax
Example 2: Initialize a disk using the MBR partition style
This example initializes a disk using the MBR partition style.
Example 1: Initialize a disk using default values
This example initializes the first disk in the computer (disk number 1), using the default values, which initializes the disk using the GPT partition style.
Outputs
If you specify the Passthru parameter, this cmdlet returns an object representing the newly initialized disk.
Непосредственно на сервере (при подключении по терминальной сессии) этот скрипт отрабатывает без ошибок и выводит искомые компьютеры. Но задача состоит в том, чтобы руководитель мог периодически запускать этот скрипт со своего рабочего компьютера (Comp) на Windows XP SP3 и видеть перечень "свободных" компьютеров. Т.е. нужно запустить скрипт удалённо с компьютера на Windows XP SP2.
Я скачал и установил пакет обновлений для Windows XP с Powershell (KB968930-x86-RUS).
В результате на сервере установлен Powershell v.4.0, а на Windows XP SP3 - Powershell v.2.0.
На сервере включил возможность удалённого управления командами "Enable-PSRemoting" и "set-item wsman:localhost\client\trustedhosts -value *" (понимаю, что это не безопасно и лучше указать имена конкретных узлов, с которых можно подключаться, но сейчас главное - хотя бы добиться результата по задаче).
На компьютере с WinXP запускаю Powershell и ввожу команду
Происходит подключение к серверу и я могу удалённо запустить свой скрипт. Но даже если ввести только команду "Import-Module Activedirectory", получаю ошибку:
ПРЕДУПРЕЖДЕНИЕ: Ошибка при инициализации диска по умолчанию: "Не удается установить связь с сервером. Возможные причины: сервер не существует, выключен или на нем не запущены веб-службы Active Directory.".
Повторюсь, если запускать скрипт непосредственно на сервере никаких ошибок не выдавалось.
Согласно руководствам в интернете, всё вроде как должно отрабатывать. Скрипт должен выполняться по удалённой сессии на сервере, а в результат выводить в окне Powershell на рабочей станции (Comp), но я никак не могу этого добиться. Подскажите, пожалуйста, что именно я не сделал/не заметил или вообще сделал не правильно?
Заранее благодарен за любую помощь.
Запуск скрипта PowerShell на удаленном сервере
Коллеги помогите, появилась задача связанная с запуском скрипта который находиться на удаленном.
Запуск скрипта с правами локального администратора на удалённом компьютере
Доброго времени суток. Запускаю скрипт на удаленном компьютере и передаю именя доменного.
Запуск скрипта из php на удаленном сервере
Приветствую всех. Я уже пару дней сижу и никак не могу сделать. Смысл такой. Есть дедик на CentOS.
На сервере включил возможность удалённого управления командами "Enable-PSRemoting" и "set-item wsman:localhost\client\trustedhosts -value *"
Вообще нигде не встречал упоминания, что эти же команды нужно будет вводить и на клиентской машине. Ведь этими командами мы включаем возможность удалённого управления данным узлом (на котором всё это настраиваем). У меня нет необходимости запускать удалённые задачи для исполнения на клиентской машине.
Ну да ладно, мне не сложно настроить удалёнку и на Windows XP SP3. Применил обе команды на клиентском компьютере. Ситуация, к сожалению, не изменилась. После успешного подключения к серверу (Server) сразу после ввода команды "Import-Module Activedirectory" всё та же ошибка.
Как чаще всего бывает, "сам дурак". В сети предприятия "Server" не является контроллером домена и оснастка "Active Directory" прикручена не полностью.
Если все те же команды вводить на контроллере домена, скрипт без ошибок выполняется по удалённой сессии.
Теперь возник последний вопрос: как создать cmd- или bat-файл, при запуске которого руководитель, совсем далёкий от командных строк и тем более Powershell'а, смог выполнять скрипт на контроллере домена?
Согласно мануалам создал cmd-файл с одной командой внутри:
К сожалению, в таком виде скрипт не запускается, но и ошибок никаких не выдаёт.
Если эти же команды вводить вручную одну за другой всё работает. После ввода "Enter-PSSession -ComputerName dc" успешно подключаюсь к удалённой сессии Powershell на контроллере домена. Затем запускаю скрипт, указывая полный путь до его расположения на контроллере домена и после отработки скрипта закрываем удалённую сессию командой "Exit-Session".
может завершаться различными ошибками. В зависимости от ошибки вернее от кода ошибки должно происходить следующее действие.
$? подходит, но выдает только истину фальш.
$Error не подходит, т.к. я нашел только текст ошибок, а не ее код.
$LASTEXITCODE вообще выдает 0, когда например пользователь уже состоит в группе.
Написать пакетный файл, обрабатывающий параметры командной строки и код завершения команды (программы)
Помогите пожалуйста написать пакетный файл обрабатывающий параметры командной строки и кода.
СМА ВOSCH LogiXX 8 Sensitive WAS 28740 OE, Не реагирует на команды, не отображает код ошибки
СМА ВOSCH LogiXX 8 Sensitive WAS 28740 OE. СМ формировала код ошибки F-47 (по словам клиента). По.
Выполнения команды после завершения предыдущей
Добрый день, Требуется выполнить команду rmdir после завершения удаления программы. Переменная.
В том то и дело, что нужен уникальный код ошибки или завершения, а не многострочные тексты "исчерпывающей информации". Сказал "А", скажи и "В". Вопрос был не в "исчерпывающей информации" в виде текста описания ошибки и ее групповому типу, которые я тоже видел, вопрос же был не в этом. Скажи мне лучше, запрятан ли в $Error среди "исчерпывающей информации" код завершения последней команды и как его вытащить из $Error?
Добавлено через 2 минуты
Более детально, чем инструкция try/catch исключения ничего не обработает.
Можете посмотреть типы получаемых исключений в процессе выполнения вашей команды.
Например так
Единственное уточнение для поста YuS_2, если возникающая ошибка непрерывающая то, к выполняемой команде необходимо добавить -ea stop, в этом случае она будет обработана инструкцией try/catch.
Вот тебе и ладно.
$_.exception.gettype().name
в двух разных случаях ошибки выводит одну и ту же строчку:
MethodInvocationException
Это во-первых.
Во-вторых, я не хочу прерывать выполнение скрипта в случае возникновения этих ошибок, но в случае -ea SilentlyContinue обработки ошибки не происходит.
Почему вы думаете, что здесь все телепаты? Покажите пример
И еще раз вам повторяю, лучше чем инструкция try/catch исключения ничего не обработает.
Во-вторых, я не хочу прерывать выполнение скрипта в случае возникновения этих ошибок, но в случае -ea SilentlyContinue обработки ошибки не происходит.
Потому как в Powershell имеется 2 вида ошибок:
1. Прерывающие выполнение скрипта
2. Непрерывающие выполнения скрипта
Чтобы вторые стали первыми, необходимо добавить функционал -ea stop, в противном случае инструкция try\catch не реагирует на непрерывающие ошибки.
Добавлено через 7 минут
Gouru, В качестве интереса могли бы и на MSDN краем глаза заглянуть, посмотреть, что из себя представляет объект класса exception, пробежаться глазками по свойствам, может быть и вопросы бы отпали сами собой
Я с самого начала описал свою ситуацию и конкретно поставил вопрос. Все то, что вы мне писали я знал до того, как создать эту тему.
Я с самого начала описал свою ситуацию и конкретно поставил вопрос. Все то, что вы мне писали я знал до того, как создать эту тему.
Так вам с самого начала и дали правильный ответ и направление для дальнейшего творчества.
Обрабатываете нужные исключения по типу, если под одно исключение попадают 2 разные ошибки, то можете обрабатывать в блоке catch в лоб свойство $_.exception.message, в ваших руках конструкции if/else или switch, регулярка и еще много много всего.
Или вам уже готовое решение надо?
Inputs
You can pipe an MSFT_VirtualDisk object to the VirtualDisk parameter.
You can pipe an MSFT_Disk object to the InputObject parameter.
Example 2: Initialize a disk using the MBR partition style
This example initializes a disk using the MBR partition style.
Читайте также: