User Tools

Site Tools


Sidebar


Здравствуйте!

Меня зовут Михаил!
Я системный администратор
и наполняю эту wiki,
решая разнообразные IT-задачки.

Моя специализация - виртуализация!

Я всегда готов помочь Вам
наладить IT-инфраструктуру
за скромное вознаграждение!

mike@autosys.tk
+7 (910) 911-96-23

ms_windows_ms_sql:подсчитать_количество_принтеров_на_терминальном_сервере_windows_2008

На терминальном сервере Windows 2003 администратору били видны все подключенные принтеры пользователей, но на Windows 2008 эта фича исчезла. Нажеприведенный Powershell скриптик позволяет вывести список подключенных принтеров пользователей и подсчитать их количество:

$servers = get-content c:\compnames.txt

Function CloseAllRegs {
    if($regHKU -ne $null) {
        $regHKU.Close()
    }
    
    if($regUser -ne $null) {
        $regUser.Close()
    }
    if($regHKLM -ne $null) {
        $regHKLM.Close()
    }
    if($regProfileList -ne $null) {
        $regProfileList.Close()
    }
}

foreach ($server in $servers) {
  $numprinters = 0
    # Trim white space after the computer name
    $server = $server.Trim()

    $regHKLM = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey("LocalMachine", $server)
    $regProfileList = $regHKLM.OpenSubKey("SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList")

    foreach ($sid in $regProfileList.GetSubKeyNames()) {
        $profileImagePath = $regProfileList.OpenSubKey($sid).GetValue("ProfileImagePath")
        $regHKU = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey("Users", $server)
        $regUser = $regHKU.OpenSubKey("$sid\Printers\Connections")
            if ($regUser -eq $null) {
                $regHKU.Close()
                continue
            }
            
            foreach ($printer in $regUser.GetSubKeyNames()) {
                write-host -NoNewline $server','
                $printer.Replace(",", "\")  # backslashes are replaced with commas, revert that
                $numprinters = $numprinters + 1
            }
   
    }
   
    CloseAllRegs
    write-host 'Total number of printers on '$server ' - ' $numprinters

 }
 

Discussion

Enter your comment. Wiki syntax is allowed:
H O O I᠎ L
 
ms_windows_ms_sql/подсчитать_количество_принтеров_на_терминальном_сервере_windows_2008.txt · Last modified: 2015/11/25 08:12 by mike