I'm trying to remotely collect few details (machine name, user name,MAC address, Serial number, OS version etc) from the large group of computers.
I have come up with different ways.
Method 1:
Deploy a script on all the machines, script will fetch the details from machine and write in to a shared excel file present in the network file share.
Challenges:
The target environment doesn't have network share folders enabled.
Challenge in concurrent updating the excel from multiple machines at the same time.
Method 2:
Deploy a script on all the machines, which will run fetch the required details and send an email to particular email address with all the required details in subject line.
After all the email are received, admin can copy those emails and copy to excel, so it copies the subject line of the emails in excel rows. Later admin can delimit and seperate the column for desired report.
Challenges:
This method tried and working fine. But challenge is no.of charecters in the email subject is limitted to 256 hence can't fetch more details.
I would like to request whether anyone has any inputs or other possible methods to achieve the target.
Thank you
Related
I'm building product inspection system using VBA
in a manufacturing company which is SMB.
Succeeded to access DB in NAS(it was pre-installled) to
read and write data.
But I can't figure out how to access files in NAS Server
I need to read and show item pictures on userform
for users to check Item and Part Number
Currently doing it using network connection
(It considers NAS is connected as local & VPN network participant
so i just load it like "pictures.insert("10.0.0.#######.jpg")")
is there any other way to connect and access the picture
not by VPN
prbly i should write codes to
connect / find forwarded port / verify as user / read file
but dont know how.
Thank you for any advice or opinions alot!
I have approx 22 vb.net windows form based projects that are run by different users throughout my company. I publish them using one-click to a network server, then install on each user computer using the set-up file on that server. That way, when I publish an update, it is automatically pushed to each user when they open their programs.
I'd like to consolidate all of this into 1 program. So for example, the Accounting dept, IT Dept, and Customer Service Dept would all have the same icon/program to open, and they choose which program specific to them to open from that main menu. The goal is to remove all 22 programs from user computers and only have 1 installed that runs each individually (somehow).
My dilemma is program updates. When I update a program for the Accounting Dept, IT doesn't need that update. But since it would be only 1 installation and 1 publish, every user on the network would receive updates not relevant to them. So how do I create one main program "hub" for all users that only receives updates to the programs that they need?
You can launch the click once programmatically
Dim url = "\\Software\Production\ClickOnceApp\ClickOnceApp.application"
Process.Start("rundll32.exe", "dfshim.dll,ShOpenVerbApplication " & url)
Just point to the url on your server, where it's installed from. This will launch the app the same way windows does, so it would check for updates when it's run as if it's run from the start menu.
Then you could maintain a list of 22 applications' names and locations in the 23rd app's settings, xml, sql, etc., and add user groups, permissions, etc.
It could be a winforms app which provides buttons according to the configuration above for launching all these apps. Yes, I think this is actually a pretty neat idea.
I am running an excel macro, it downloads some files from SharePoint. It's working fine but my problem is, Everytime i need to check if the file exists there or no then i download it.
Is there a possibility to add a condition when the file is added on SharePoint then the macro will run automatically. Because the reports are uploaded in different times by other users for example one day at 9 am, another day 11 am, another day at 1pm... and now i am checking everyday many times on the sharepoint site if the report was added or no before i run my macro.
I want to avoid this and link somehow the sharepoint site to my macro.
For example for the reports i receive on Outlook i created a macro when i receive an email with attachment containing a specific name it will download automatically. I want something similar on Sharepoint without checking everytime on Sharepoint if the other users uploaded their reports or not.
Any suggestion please ?
Assuming that you are using SharePoint 2013 OnPremise you can write an ItemAdded event receiver which will execute your macro (you can do this only if you are allowed to deploy code to SharePoint).
You could also write a Service / Job that will run every 5-10 minutes and check which files have been added in the last 5-10 minutes (this frequency will depend on what is the urgency for executing the macro), download the file and then execute the macro on those.
Irrespective of the environment this code could run directly from your local machine if you have no good place to host it.
I'm looking into making an apache module that would prevent any user from downloading the exact same large file multiple times.
This is the logic I have in mind:
- Get IP address and if it's not in database, store it and allow download
If IP address exists, then:
- If current requested file matches previously requested file, show error
- Upon completion of download, remove IP address from database.
I plan to capture the end of the download via an output filter (or should I use the log_transaction hook?).
The problem with this idea is that hackers could change their IP address at any time and therefore two different IP addresses could download one copy of the exact same file simultaneously.
How do I rectify this whole situation so that no multiple downloads of the exact same file run simultaneously for multiple IP addresses that belong to hackers?
If anyone has a solution, can you provide some very basic pseudo code so I can update my apache module accordingly?
What I'm trying to do is seperate my existing MS Access application into a front-end (which will run locally on a user's machine) and backend (which will be hosted on a networked file server) and allow users to choose between "read-only" and "write" modes. The idea is that only one user can use the "write" mode at a time, thus preventing the same piece of inventory being allocated to mutliple customers. My problem is that the application currently handles concurrency by requiring users to open a .bat file which only allows them to enter application if a .ldb file does not already exist (there is no read-only mode currently), so I need to prevent users accessing the production data in "read-only" mode from creating a .ldb file and unessarily blocking out other users.
The biggest challenge to implemnting this is that users must have write access to the temporary tables in the MS Access (.mdb) file installed locally. I have tried to implement this using a linked table, but I'm not sure how I can control when records become locked using linked tables (which creates a .ldb file).
You could change the sharing setting back to Exclusive Mode. Then only one person can access the file at a time. Check out this link and the other sharing options you have.
http://office.microsoft.com/en-us/access-help/set-options-for-a-shared-access-database-mdb-HP005188297.aspx
Side note: Yikes. Using Access in a shared network environment is not fun. I hope nothing important/time sensitive/secure is in this file. The .ldb file not being deleted and blocking other users is something that I use to see happen regularly in this situation. I believe splitting the Access file into a front-end and back-end like you've done is the first step. Then using linked tables to a SQL Server database can help resolve these issues. But if you're going to this level of effort you may want to consider dumping Access and get a COTS product or create a new application.
Depending on which version of Access you are using, theres alot of flexibility in the UI developement. In other words, this sounds more like an "interface" issue as apposed to a "database" issue. Given everybody is able write to a table, you should be able to check in somewhat real time (performance can be an issue with larger datasets), whether a particular has been added to inventory or not.
They I handled this problem is have two tables, an incomming and outgoing log, and set up a query that did the math against the inventory list on the amount of products. And like a general ledger, select set amount of time to "close the log" (monthly, quarterly) so that the query is not taking into account stuff that happened two years ago.
If you need more help with Access related stuff, Access Monster is a good forum site that deal with nothing but access.
My problem is that the application currently handles concurrency by requiring users to open a .bat file which only allows them to enter application if a .ldb file does not already exist (there is no read-only mode currently), so I need to prevent users accessing the production data in "read-only" mode from creating a .ldb file and unessarily blocking out other users.
--> If every user has his own copy of the front-end on his own machine, you'd have to check the .ldb file of the back-end.
I guess it would be easier to give everyone write access to the backend and manage the actual writing programmatically with a "locked by User X" field in the backend:
You said:
preventing the same piece of inventory being allocated to mutliple customers
If this is the only reason for putting all users but one in read-only mode, you could put a "locked by User X" field on the inventory table. If someone starts to modify (or even opens) a piece of inventory, update the record with his user name, and delete the user name again when he's done.
If another user tries to open the same piece of inventory as well, the name of the first user will already be in the "locked by User X" field, so you can put the second user in read-only mode.
If the inventory pieces are not the only problem and all the other users really are not allowed to change anything as soon as someone else already is editing, you can create a new table with only one column and one row and use this as the "locked by User X" field. As soon as there is a user name inside, you can put everyone else in readonly mode.
No matter how you do it, you will have to provide some kind of admin menu, so if someone's front-end crashes while editing, someone else needs to be able to unlock this user's locked data (=delete his username from the "locked by User X" field).