function Get-Diskinfo {
param(
[string[]] $Computername = 'XEUTS001',
[string[]] $drive = 'c:'
)
$a = "-join $Computername[1..3]"
Get-WmiObject Win32_LogicalDisk `
-Filter "DeviceID = '$drive'" `
-ComputerName $Computername `
-Credential (Get-Credential -Credential ayan-$a) |
Select-Object `
@{n='Size'; e={$_.size / 1gb -as [int]}},
@{n='free';e={$_.freespace / 1gb -as [int]}},
@{n='% free';e={$_.freespace / $_.size *100 -as [int]}} |
Format-Table -AutoSize
}
特定のディスクに関する詳細を取得するために、この関数を作成しました。ただし、それらをリモートでマルチドメイン環境で実行する必要があります。異なる OU のコンピューターには異なるユーザー名があります。スクリプトがコンピューター名自体からユーザー名を取得できるようにしたかったのです。ユーザー名---- "name"+ "first 3 letters of the computername"
は、OU 名であるこの形式です。-Join
メソッドを正常に動作させることができます。ただし、変数が関数内のパラメーターである場合は機能しません。ここで、ユーザー名は、次の"ayan--join xeuts001[1..3]"
ように表示したいときに次のように表示されます"ayan-xeu"