В настоящее время я ищу, чтобы узнать всю информацию о лицензии Solidworks в сети. Мне нужна помощь в написании скрипта для powershell для просмотра списка хостов, которые находятся в файле csv/txt, а затем выполните следующую команду, сохранив результат в формате csv, имеющем имя компьютера, запись реестра Solidwork License.

Это команда, которую я использую так далеко,

Invoke-Command -ComputerName NAME -Command {Get-ItemProperty -Path HKLM:\SOFTWARE\SolidWorks\Licenses}

По умолчанию. Solidworks сохраняет информацию о лицензии по следующему пути реестра

COMPUTERNAME\HKEY_LOCAL_MACHINE\SOFTWARE\SolidWorks\Licenses\Serial Numbers\Solidworks

1 ответ1

0

Нечто подобное даст вам отправную точку:

#Get computers from text file. 1 compute per line
$myComputerList = Get-Content C:\Installs\computerList.txt

#Loop Through Array
ForEach ($computer in $myComputerList) {
    #Execute a command on the computer
    Invoke-Command -ComputerName $computer -ScriptBlock {
        #This is the command to execute
        #Grab the registry value you want and hold it in a variable
        $value = Get-ItemPropertyValue -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\" -Name ProductName
        #grab the machine name you're working on
        $computerName = $env:COMPUTERNAME
        #comma separate them and spit them out to a file.  This can be a UNC path on a network share
        ($computerName + "," + $value) | Out-File -FilePath C:\Installs\Output.csv -Append
    }
}

Вы можете внести в нее всевозможные дополнения, такие как обработка нескольких значений реестра, проверка того, включен ли компьютер перед подключением, обработка ошибок доступа и неконтактируемых компьютеров и т.д., Но поскольку это не служба написания сценариев, только что дал вам краткую отправную точку

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .