2012-11-23 3 views
0

네트워크 서버에서 사용자/암호가 필요한 디스크 공간을 감지하는 Powershell 스크립트가 있습니다.Get-WmiObject 자격 증명이 예약시 작동하지 않습니다.

$password = get-content C:\creds.txt | convertto-securestring 
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist "username",$password 
Get-WmiObject -ErrorAction Stop Win32_LogicalDisk -ComputerName $deviceName -credential $cred -Filter "DeviceID='$darg'" 

$deviceName$darg가 이미 올바르게 정의되어 http://social.technet.microsoft.com/Forums/en-US/winserverpowershell/thread/440ab7ed-7727-4ff7-a34a-6e69e2dff251/

이 코드를 얻으려면 :

나는이 따랐다.

이것은 Powershell 스크립트를 수동으로 실행할 때 잘 동작합니다. 그러나 Windows 스케줄 작업으로 설정할 때 사용자/패스가 잘못되었다고 생각하면 실패합니다.

Get-WmiObject : 액세스가 거부되었습니다. (HRESULT에서 예외 : DENIED 0x80070005입니다 (E_ACCESS ))

$ 디스크 = GET-WmiObject를 < < < < -ErrorAction 정지의 Win32_LogicalDisk -ComputerName $ 장치 이름 -Credential $ cred하게 -Filter "의 DeviceID = '$의 darg'" + CategoryInfo : NotSpecified : (:) [은 Get-WmiObject를, 무단 AccessException + FullyQualifiedErrorId : System.UnauthorizedAccessException, Microsoft.PowerShell.Commands.GetWmiObjectCommand 왜이

입니까? (이 계정은 원격 서버의 로컬 사용자입니다. 일정 인터페이스에서 자격 증명을 입력하려고했지만 잘못된 로그인 (로컬 계정 인 것일 수 있음)을 저장하지 않습니다. ServerName\LocalUser이 작동하지 않습니다. Windows Schedule UI는 여전히 잘못된 로그인 오류를 제공합니다.

+0

ServerName \ LocalUser를 사용자 이름으로 사용해보십시오. 지정된 계정이 대상 서버의 로컬 관리자 그룹 사용자 여야합니다. –

+1

특정 키 값을 제공하지 않으면 convertto/from-securestring이 사용자별로 작동한다는 인상하에 있습니다. IOW, 한 사용자는 다른 사용자의 데이터를 읽을 수 없습니다. 이 기존의 SO 질문과 관련된 것 같습니다 : http://stackoverflow.com/questions/7109958/saving-credentials-for-reuse-by-powershell-and-error-convertto-securestring-ke. 또한 Powershellcommunity.org에서 관련 정보 토론이 있습니다. http://powershellcommunity.org/Forums/tabid/54/aft/8122/Default.aspx –

+0

@darinstrait 감사합니다. 응답으로 그것을 떨어 뜨리는 것을 자유롭게 느끼고 나는 받아 들일 것이다. – JBurace

답변

1

내 대답은 다음과 같습니다.

convertto/from-securestring 함수는 특정 키 값을 제공하지 않으면 사용자별로 작동합니다. IOW, 한 사용자는 다른 사용자의 데이터를 읽을 수 없습니다.

This pre-existing SO question이 적합하다고 보입니다. Powershellcommunity.org의 There is also relevant discussion.

1

사용자 계정으로 실행하고 자격 증명없이 wmi 요청을 실행하도록 설정하지 않는 이유는 무엇입니까?

+0

원격 서버의 로컬 계정입니다. 스케줄러 UI에서 해봤지만 유효한 로그인인지는 알 수 없습니다. 아마 도메인에 없기 때문일 수 있습니다. – JBurace

+0

은 더 많은 정보가 필요합니다. "Powershell 스크립트를 수동으로 실행할 때 제대로 작동합니다"라고 말하면 스크립트가 서버에서 실행됩니까? –

+0

스크립트가 예정된 동일한 PC에서 실행됩니다. 따라서 스케줄을 실행하는 대신 .ps1 파일 (스크립트)을 실행하면 정상적으로 작동합니다. – JBurace

관련 문제