2016-10-10 9 views
0

나는 Z에 D에서 문자를 변경하려면 :CD ROM Letter를 바꾸는 방법은 무엇입니까?

Set-WmiInstance -InputObject (Get-WmiObject -Class Win32_volume -Filter "DriveLetter = 'd:'") -Arguments @{DriveLetter='Z:'} 

오류 :

Set-WmiInstance : Cannot bind argument to parameter 'InputObject' because it is 
null. 
At line:1 char:30 
+ Set-WmiInstance -InputObject (Get-WmiObject -Class Win32_volume -Filter "DriveL ... 
+        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidData: (:) [Set-WmiInstance], ParameterBindingValidationException 
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.SetWmiInstance
+0

분명히'Get-WmiObject'는 결과를 반환하지 않습니다. 그 이유를 조사해야합니다. –

+0

@AnsgarWiechers가 도와주세요. – FoxZ

+0

해당 시스템에는 D : 드라이브가 있습니까? 'Get-WmiObject -Class Win32_volume -Filter '의 출력은 무엇입니까? DriveLetter ='d : ' "' – BenH

답변

2

에 마운트 된 장치가 없다 아마 때문에 WMI 쿼리 (아무것도 반환하지 않기 때문 오류가 발생합니다 D:). 아무것도 반환하지 않습니다

Get-WmiObject -Class Win32_volume -Filter "DriveLetter = 'd:'" |Set-WmiInstance -Arguments @{DriveLetter='Z:'} 

Get-WmiObject 경우 Set-WmiInstance 실행되지 않습니다 그리고 당신은

+0

exisint cd rom letter가 D인지 확인합니다. exisitn 문자가 z로 변경 될 수 있는지 여부를 동적으로 확인하는 항목 : @mathia – FoxZ

0

분명히 중첩 된 Get-WmiObject 호출에 오류가 없습니다 : 그것을 방지하기 위해

대신 파이프 라인을 사용 결과를 반환하지 않습니다.

  • 시스템이
  • 시스템이 광학 드라이브가 광학 드라이브가없는, 그러나 다른 드라이브 문자
  • 에 오류가 발생했습니다 (하지만 당신은 설정 :이 이것에 대한 여러 가지 이유가 될 수 오류 조치가 SilentlyContinue)
  • & hellip;

는 일반적으로 더 좋은 방법은 드라이브 문자에 의존하지 않는 것입니다,하지만 drive type, 그리고 마티아스는 his answer 지적 가득 차거나 - 명령을 중첩 대신 파이프 라인을 사용하는 (그래서 빈 결과가 아닌 이상 건너 뜁니다 오류가 발생했습니다).

Get-WmiObject -Class Win32_volume -Filter 'DriveType=5' | 
    Select-Object -First 1 | 
    Set-WmiInstance -Arguments @{DriveLetter='Z:'}