Powershell script / command

Help me with the powershell Script/command  to get the details of the Drives for the list of  servers ( whether drive provided  is Physical/Storage drive).If the disk is provided from storage, then we need the detail about the disk/drive, which we will be forwarding to the Storage team to remove the disk/drive.

We normally used to logon into the server manually and from the device driver will be collecting the drive details.I am apart of build team where we would be doing the decommision of servers, as part we would be collecting the drive/disk information before unracking the servers.
LVL 11
Venugopal NAsked:
Who is Participating?
 
Venugopal NConnect With a Mentor Author Commented:
I have worked out earlier by using Wmiobject , but most of time it gives RPC server is unavailable.I was looking for some other option.
0
 
chlebiTeam Leader IT InfrastructureCommented:
I did not try as I don't have computer access at the moment but something like this could work:
GET-WMIOBJECT -query "SELECT * from win32_logicaldisk" -computer computername

This shuld work as a start - at least this gives you drive list from remote machine. Then you need to filter and grab data you need.
0
 
Joseph DalyCommented:
I think you want to use the physical disk versus the logical disk. This way you can see more details on it

get-wmiobject win32_diskdrive -computer computername | select-object *
0
Improved Protection from Phishing Attacks

WatchGuard DNSWatch reduces malware infections by detecting and blocking malicious DNS requests, improving your ability to protect employees from phishing attacks. Learn more about our newest service included in Total Security Suite today!

 
Johan OhlssonMS Production Server Engineer Commented:
Hi!

Can this be something:

1. Open Powershell than use: Enter-PSSession -ComputerName XXXXXXX      
X= Servername (If you do not can connect to the server, you need to enable PSRemote on the server you are going to connect.)

2. Invoke-Command -ComputerName XXXXXXX -ScriptBlock {Get-WmiObject -query "Select * from Win32_logicaldisk" | Format-Table $Item -auto} -credential Domain\User

3. log in

Regardes
Johan
0
 
Johan OhlssonMS Production Server Engineer Commented:
Hi

Try this:

Get-Content "ListofComputers.txt" | Foreach-Object {Get-WmiObject -Computername $_ -Class Win32_DiskDrive -Filter "Model like '%PowerPath%'" | select systemname,deviceid,model}

Regards
Johan
0
 
Johan OhlssonMS Production Server Engineer Commented:
Hi again!

Try this also:

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Storage.Vds") | Out-Null
$oVdsServiceLoader = New-Object Microsoft.Storage.Vds.ServiceLoader
$oVdsService = $oVdsServiceLoader.LoadService($null)
$oVdsService.WaitForServiceReady()
$oVdsService.Reenumerate()
$cDisks = ($oVdsService.Providers |% {$_.Packs}) |% {$_.Disks}
$cPacks = $oVdsService.Providers |% {$_.Packs}

foreach($oPack in $cPacks)
{
    If($oPack.Status -eq "Online")
    {
        foreach($oDisk in $oPack.Disks)
        {
            Write-Host "$($oDisk.FriendlyName) ( $($oDisk.BusType) )"
        }


        foreach($oVolume in $oPack.Volumes)
        {
            Write-Host "`t$($oVolume.AccessPaths) ( $($oVolume.Label) )"
        }

    }
}


Regardes
Johan
0
 
Venugopal NAuthor Commented:
WMiObject doesnt help as specified.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.