🤘 9 reputation

sean13128

Standard

Joined: 1/10/2018

Last seen: Wednesday at 6:36 PM

Activity
  • Sounds like your DNS and DHCP servers are super out of sync. Have you set up dynamic DNS? Having your DHCP server/s be the owner of the client DNS entry is game changing for PDQ. We had a similar problem and after setting up dynamic DNS and forcing a scavenge we were 100%.

  • I'm not sure if it helps in your situation but have you looked into Microsoft VAMT, it's a free utility from MS to manage Windows/Office licensing for networked systems. Supports right click activate and will return available uses of MAK / store KMS keys etc.

  • Update on this, it's definitely something with GPU acceleration. Task manager shows GPU 2 -3D permanently when Deploy is up and only occasionally when Inventory is up. Something must be different between Inventory 16/5 and Deploy 17 for HW acceleration. I wish there was an off button for it.

  • Odd CPU load with PDQ Deploy console
  • Weird happenings with cloned systems
  • I believe you are describing a native Windows Server roll called Distributed File System (DFS)

    https://www.pdq.com/blog/setting-up-dfs-on-windows-server/
    https://en.wikipedia.org/wiki/Distributed_File_System_(Microsoft)

  • the notification from above would only be relevant to users already logged on. For anyone after that it would not happen until the next notification window.

    I'm having trouble understanding your specific requirement, it might help if I understood a bit more of what your attempting to achieve.

    A few questions to help better understand

    1. Do you have a prohibiting factor for off hour updates?
    2. Could you instead opt for something like a desktop background? I have a BGINFO script that throws up system information over a default background that could be used to update the background to a "Under construction" background or whatever for all system users.

    for part 2 you just download BGINFO and add a startup script to group policy to run the BGINFO template file against bginfo after copying it local with the background of your choice. Something like C:\generalstuff\bginfo

    Then just change step one to copy a replacement jpg or whatever to bginfo new step 2 execute the same script as logged on user and tada the background changes to "stuff is happening" untill whatever step where you put it back to normal or to a finished background until log off and on gpolicy reapply normal.

  • I thought it just stored the value returned from the computer information scan

    More or less Get-CimInstance -ClassName win32_operatingsystem | select csname, lastbootuptime stored as a value and iterated on against current date.

    Look at one of your systems where this is wrong and check the last time it successfully scanned computer information or did the standard scan. If you don't currently have a scan set to when heartbeat is detected, I would highly recomend setting that. Options > Scan Profiles > standard (edit) > triggers | modify when scan aget is * days old to your preferred value and add heartbeat

    Check your minimum time between standard scans and make sure it's set to what you would consider reasonable, If I remember default was like 7 days. We prefer to have it set to 24h in our environment.

  • This might work for you. It doesn't ask for permission but it will let the user know what's up per step.

    Step 1 (powershell - make sure to select run as logged on user under options)

    $wshell = New-Object -ComObject Wscript.Shell
    $wshell.Popup("A message to your user that the program will update",0,"Box Name",0x0)
    

    Step 2 (powershell) get-service -name "whatever" | stop-service

    Step 3 (do your thing)

    Step 45678 (inject any other messages between steps for update or task completed) (again make sure to select Run as Logged on User under Options for the task)

    ref https://mcpmag.com/articles/2016/06/09/display-gui-message-boxes-in-powershell.aspx https://powershell.org/2013/04/29/powershell-popup/

  • $oldComputerName = '$(COMPUTER:TARGET)' pass it with ' '
    For the pop up box you may need to select close shell on completion (or leave it open) in the tool editor under Shell

    If you use the tool window I think it suppresses input like that.

  • We use SW Web Helpdesk here but a common feature is a CSV asset import. You can usually download a template CSV from web help desks asset tab and copy paste the appropriate columns from PDQ then import.

    https://confluence.atlassian.com/adminjiraserver072/importing-data-from-csv-829827152.html

    But this is my low level knowledge of DB workaround solution. I'm sure there is a more fluid way.

  • I did some digging. best way I could find to create the popup and return it as a value is below. Running this local now instead of remote.

    [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic')
    $NewHname = [Microsoft.VisualBasic.Interaction]::InputBox("Enter New Hostname", "Get New Name Box", '$(Computer:TARGET)')
    Rename-Computer -computername '$(Computer:TARGET)' -NewName $NewHname -force -restart
    

    my reference for this https://stackoverflow.com/questions/30534273/simple-inputbox-function https://stackoverflow.com/questions/16208013/make-input-box-with-predefined-value

    Edit revised and cleaned up some Worked on my end up to getting access denied on rename, I think I remember this being some quirk that I didn't want to research. This is why I ran our other script local. Perhaps I'm missing something but your box popup is in this one. It references the computer name from PDQs variable, to test just the popup in PS without PDQ first run. I'm sure you can edit it to get what you need out of it.

    $CurHname = "test"
    [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic')
    $Value = [Microsoft.VisualBasic.Interaction]::InputBox("Enter New Hostname", "Get New Name Box", $CurHname)
    
  • Not to offend if you already knew but, this is probably better handled by group policy. Google Chrome's policy template makes this a whole lot easier. https://support.google.com/chrome/a/answer/187202?hl=en

    If domain isn't an option then I guess you would be configuring the local files yourself and copying over your own template. Similar to how Mozilla does with it's .cfg file. https://superuser.com/questions/554233/how-to-change-preferences-in-chrome-by-modifying-files

    Never done this, always had the luxury of using a group policy template.

  • get-item cert:\LocalMachine\My\* | remove-item
    $SN = gwmi win32_bios | select -ExpandProperty SerialNumber
    $NewComputerName = "whateverfrontpartyouwant" + $SN
    Rename-Computer -NewName $NewComputerName -Force -Restart
    

    This purges the local certs for 802.1x , Gets the Serial number from bios Creates a variable with a preset front part and serial number Renames the computer and forces a restart

    we use the above as an inventory Tool with remote run. You could modify to change the host name based off the old by calling host name or doing

    $hostname = hostname
    // returns something like Funhouse3
    $hostname.replace ("Funhouse", "NoFun")
    // returns NoFun3
    

    so

    $hostname = hostname
    Rename-Computer -NewName $hostname.replace ("Funhouse", "NoFun") -Force -Restart
    

    You could probably use the built in PDQ variables to modify this to run local but we had the best success running it as remote.

  • That depends on how you set your scan profile. Under options and scan profiles, look at the standard profile and edit it. Under Triggers you can add heartbeat (if not already there), this will scan the machine if it goes offline and comes back. You could also just set it to scan every 1 day and it will scan at the next point it sees the machine after 1 day has elapsed since last scan.

    The heartbeat is triggered when an offline system comes online, if you set heartbeat in PDQ deploy it will deploy in the same way as mentioned above.

    https://www.pdq.com/heartbeat-schedule/

  • Unfortunately the agent is useless if the system is off, the only options are IT PT, Wake on LAN, some kind of AMT wake up, or scheduled BIOS wakeups. Our users have deep drive to conserve power as well, due to restrictions with our environment, we were unable to utilize wake on LAN.

    One of our strategies is to have all our important patching/scanning take place early in the morning. Since the majority of our systems are Dell we were able to use Dell Command Configure to build a deployable exe to configure a BIOS wake time before patching/scanning. I assume other vendors have similar options.

    Edit: Are heartbeat deployments not an option due to users needing to use the system? We combine heartbeat and schedule for our deployments to keep everyone patched.

  • check the agent service on the client to see if it's failing. We had a similar issue and just changed group policy to have the service continue to restart after crashing. Short term fix.

    invoke-command computer {Get-Service -Name "PDQInventory*"}

    start it up if needed (we just built it as a tool in inventory invoke-command computer {Get-Service -Name "PDQInventory*" | Start-Service}

  • That's a good tip, i set it down to 2 weeks to prevent it from stacking up so high. 

  • PDQ Deploy 15 R4 - Brutally slow when going through all deployments
  • New error in the filter as the service just crashed while typing OP 

     

    CLR Version : 4.0.30319.42000
    Date : 2018-01-17T21:29:03.1985563Z
    Entry : C:\Program Files (x86)\Admin Arsenal\PDQ Inventory\PDQInventory.exe
    Error : The server disconnected, it may have gone offline or the network dropped.
    Error Type : AdminArsenal.Protocol.ServerDisconnectedException
    Manufacturer : Microsoft Corporation (Virtual Machine)
    Memory : 16 GB (12 GB free)
    Product : PDQ Inventory
    Version : 15.1.0.0
    Windows : Microsoft Windows Server 2016 Standard (10.0.14393)

    An existing connection was forcibly closed by the remote host
    System.Net.Sockets.SocketException
    Error Code: 10054
    HResult: 0x0005 (0)
    at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
    at System.ServiceModel.Channels.SocketConnection.ReadCore(Byte[] buffer, Int32 offset, Int32 size, TimeSpan timeout, Boolean closing)
    ------- OUTER EXCEPTION -------
    The server disconnected, it may have gone offline or the network dropped.
    AdminArsenal.Protocol.ServerDisconnectedException
    at AdminArsenal.Protocol.ServerConnectionException.ThrowIfDown(Exception ex)
    at AdminArsenal.Protocol.ClientConnection.GetNotifications(NotificationRequestMessage request)

     

    Not reading much into this other than the local console application lost connection to central server