• This is something I have been looking for, I had a similar experience when searching for  solution. What I will do with this is first test this in my environment, but then once I know my environment doesn't break it, I will modify it to be used with SCCM. this will overcome the inherent limitation` of targeting workstations with Invoke-command, because the user has shutdown their workstation. With SCCM the job will just wait for the user to come on line and optionally require a reboot. Great work!

  • This addendum to my previous post is for those with SCCM build 1610 or newer.

    In SCCM 1610 and above Microsoft added a "Run Script" function, using the same scripts as you use for group policy with the location for your report hard coded in the script with modify rights for "Authenticated Users" as noted above you can deploy the script against a collection of machines and the result come back incredibly fast. And I mean"blazing faxt" 5 minutes for 1600 reports.

    Now is this better than using group policy, that depends if you need complete and constant updates to the data, the answer is no, because the scripts function will only return results from on-line machines, while group policy will keep reporting every 2 hours or so.

    To use the scripts function safely my scripts are very quick and read only, I then target a collection that reports only on-line machines, I refresh it just before activtivation.  Then I deploy the script to the collection to 1500 machines and get results in 5 minutes, multiple location across the US!

    So to summarize, use the script with Group policy for continuously updated results and use SCCM Script function for quick results against machines in an SCCM collection.

    Remember this technique that has been shared here is very powerful and with GREAT POWER comes GREAT RESPONSIBILITY.  Do it wrong and you may experience a CEV. (Career Ending Event)

    Use at your own and your networks risk.

    Excelsior,

    DeployGuy.

  • get-verb does work on 5.1

    98 verbs

  • I wanted to have a function with a hard coded value for testing.

    I added the following to the top and bottom of the script.

    At the top

    Function Set-IconVisible{

    At the bottom

    Set-IconVisible nsload.exe 2
    stop-process -name explorer

    In this example I am making the Citrix NetScaler Gateway Plugin icon visible

    The stop-process cmdlet has an interesting behavior when stopping the Windows shell (explorer.exe), that behavior is that it kills the task without letting it write the values in memory which would overwrite the changes made by the script, then Explorer.exe automatically restarts!  And the icon becomes visible immediately!

    The one caveat is I don't believe a non-administrator can kill the Windows Shell so the GPO method is superior. But for testing by and administator this small modification seems to work.

    To use this as an SCCM Package i would use the run a program first option under the user context to change the users tray setting, then use the stop-process -name explorer comand to make it take effect immediatly, should work, i will try to test this and report back.

    avatar
  • DeployGuy became a registered member 5 years, 1 month ago

© 4sysops 2006 - 2021

CONTACT US

Please ask IT administration questions in the forums. Any other messages are welcome.

Sending

Log in with your credentials

or    

Forgot your details?

Create Account