Navigation

    • Register
    • Login
    • Search
    • Recent
    • Popular
    1. Home
    2. Tyler
    3. Best
    T
    • Profile
    • Following 0
    • Followers 0
    • Topics 13
    • Posts 38
    • Best 5
    • Groups 0

    Best posts made by Tyler

    • RE: How to backup the server?

      Theopenem has a built in replication system, you should be able to add the new server to the com server list, configure it's storage, and then ensure the replication schedule is set up.

      If you have a com server that is using an SMB server, and you want to change that SMB server out from under the com server, then you should be able to replicate the SMB data using whichever tools it's platform affords and then point the com server at the new SMB server.

      The data in the storage location is file copy modules, images, and "Client Versions", I'm not yet familiar with the last one but the later two only change when you change them so you should be able to schedule around the replication. My client versions folder is empty, if yours is too then that is also solved.

      As far as a proper "backup", I'm unclear if that's truly possible with Theopenem, since the data at the storage location is understood based on metadata in the database. I think the intent is that you will have 2 or more com servers and that will provide redundancy, just not any sort of snapshot functionality.

      posted in Support
      T
      Tyler
    • RE: File Copy Modules failing inconsistently

      I found the client scripts and modified wie_deploy.ps1 to leave the zip file in place; it is 0kb in size. This is why Expand-Archive is throwing a fault deep in it's dependencies.

      I'm still learning how to get exit codes from curl.exe in powershell. It should be possible to replace the call to curl.exe with Invoke-WebRequest but I will have to comprehend how all the arguments are being constructed to adapt them, it's not 1-to-1.

      I believe, not at all strongly, that curl.exe is completing without throwing an error code.

      Edit: checked all the server logs, nothing related

      Logs from today

      Application.log

      2023-12-20 00:15:45,397 [Worker #13] ERROR Toems_DataModel.RawSqlRepository You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') AND (a.provision_status = 8 OR a.provision_status = 6 OR a.provision_status = ' at line 1
      2023-12-20 00:30:45,666 [Worker #8] INFO Toems_Service.Workflows.FolderSync Replicating Storage To Com Server, images will be replicated after this task. theoCom1
      2023-12-20 00:30:48,608 [Worker #8] INFO Toems_Service.Workflows.FolderSync Finished Replicating Storage To Com Server theoCom1
      2023-12-20 00:30:48,609 [Worker #8] INFO Toems_Service.Workflows.ImageSync Starting Image Replication From Com Servers To SMB Share
      2023-12-20 00:30:48,611 [Worker #8] INFO Toems_Service.Workflows.ImageSync Image replication is not used when direct smb imaging is enabled.
      2023-12-20 00:30:48,612 [Worker #8] INFO Toems_Service.Workflows.ImageSync Starting Image Replication To Com Servers
      2023-12-20 00:30:48,614 [Worker #8] INFO Toems_Service.Workflows.ImageSync Image replication is not used when direct smb imaging is enabled.
      2023-12-20 00:30:48,614 [Worker #8] INFO Toems_Service.Workflows.FolderSync All replication tasks complete
      2023-12-20 03:15:06,181 [Worker #2] ERROR Toems_DataModel.RawSqlRepository You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') AND (a.provision_status = 8 OR a.provision_status = 6 OR a.provision_status = ' at line 1
      2023-12-20 04:00:07,691 [Worker #2] INFO Toems_Service.Workflows.DataCleanup Running Data Cleanup Job
      2023-12-20 04:00:07,763 [Worker #2] INFO Toems_Service.Workflows.DataCleanup Completed Data Cleanup Job
      2023-12-20 04:30:08,725 [Worker #9] INFO Toems_Service.Workflows.FolderSync Replicating Storage To Com Server, images will be replicated after this task. theoCom1
      2023-12-20 04:30:11,685 [Worker #9] INFO Toems_Service.Workflows.FolderSync Finished Replicating Storage To Com Server theoCom1
      2023-12-20 04:30:11,687 [Worker #9] INFO Toems_Service.Workflows.ImageSync Starting Image Replication From Com Servers To SMB Share
      2023-12-20 04:30:11,689 [Worker #9] INFO Toems_Service.Workflows.ImageSync Image replication is not used when direct smb imaging is enabled.
      2023-12-20 04:30:11,689 [Worker #9] INFO Toems_Service.Workflows.ImageSync Starting Image Replication To Com Servers
      2023-12-20 04:30:11,691 [Worker #9] INFO Toems_Service.Workflows.ImageSync Image replication is not used when direct smb imaging is enabled.
      2023-12-20 04:30:11,691 [Worker #9] INFO Toems_Service.Workflows.FolderSync All replication tasks complete
      2023-12-20 06:15:00,442 [Worker #9] ERROR Toems_DataModel.RawSqlRepository You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') AND (a.provision_status = 8 OR a.provision_status = 6 OR a.provision_status = ' at line 1
      2023-12-20 08:30:46,926 [Worker #16] INFO Toems_Service.Workflows.FolderSync Replicating Storage To Com Server, images will be replicated after this task. theoCom1
      2023-12-20 08:30:49,875 [Worker #16] INFO Toems_Service.Workflows.FolderSync Finished Replicating Storage To Com Server theoCom1
      2023-12-20 08:30:49,876 [Worker #16] INFO Toems_Service.Workflows.ImageSync Starting Image Replication From Com Servers To SMB Share
      2023-12-20 08:30:49,878 [Worker #16] INFO Toems_Service.Workflows.ImageSync Image replication is not used when direct smb imaging is enabled.
      2023-12-20 08:30:49,879 [Worker #16] INFO Toems_Service.Workflows.ImageSync Starting Image Replication To Com Servers
      2023-12-20 08:30:49,880 [Worker #16] INFO Toems_Service.Workflows.ImageSync Image replication is not used when direct smb imaging is enabled.
      2023-12-20 08:30:49,881 [Worker #16] INFO Toems_Service.Workflows.FolderSync All replication tasks complete
      2023-12-20 09:15:33,458 [Worker #18] ERROR Toems_DataModel.RawSqlRepository You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') AND (a.provision_status = 8 OR a.provision_status = 6 OR a.provision_status = ' at line 1
      2023-12-20 12:15:09,537 [Worker #2] ERROR Toems_DataModel.RawSqlRepository You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') AND (a.provision_status = 8 OR a.provision_status = 6 OR a.provision_status = ' at line 1
      2023-12-20 12:30:10,043 [Worker #12] INFO Toems_Service.Workflows.FolderSync Replicating Storage To Com Server, images will be replicated after this task. theoCom1
      2023-12-20 12:30:12,975 [Worker #12] INFO Toems_Service.Workflows.FolderSync Finished Replicating Storage To Com Server theoCom1
      2023-12-20 12:30:12,977 [Worker #12] INFO Toems_Service.Workflows.ImageSync Starting Image Replication From Com Servers To SMB Share
      2023-12-20 12:30:12,979 [Worker #12] INFO Toems_Service.Workflows.ImageSync Image replication is not used when direct smb imaging is enabled.
      2023-12-20 12:30:12,979 [Worker #12] INFO Toems_Service.Workflows.ImageSync Starting Image Replication To Com Servers
      2023-12-20 12:30:12,981 [Worker #12] INFO Toems_Service.Workflows.ImageSync Image replication is not used when direct smb imaging is enabled.
      2023-12-20 12:30:12,981 [Worker #12] INFO Toems_Service.Workflows.FolderSync All replication tasks complete
      

      Frontend.log

      No entries from today

      ClientAPI.log

      2023-12-20 00:30:48,125 [67] INFO Toems_Service.Workflows.FolderSync Replicating Folder client_versions From \\10.0.0.31\theo\client_versions to \\10.0.0.31\theo\client_versions on theoCom1
      2023-12-20 00:30:48,352 [67] INFO Toems_Service.Workflows.FolderSync Replicating Folder software_uploads From \\10.0.0.31\theo\software_uploads to \\10.0.0.31\theo\software_uploads on theoCom1
      2023-12-20 04:30:11,201 [25] INFO Toems_Service.Workflows.FolderSync Replicating Folder client_versions From \\10.0.0.31\theo\client_versions to \\10.0.0.31\theo\client_versions on theoCom1
      2023-12-20 04:30:11,431 [25] INFO Toems_Service.Workflows.FolderSync Replicating Folder software_uploads From \\10.0.0.31\theo\software_uploads to \\10.0.0.31\theo\software_uploads on theoCom1
      2023-12-20 08:30:49,403 [20] INFO Toems_Service.Workflows.FolderSync Replicating Folder client_versions From \\10.0.0.31\theo\client_versions to \\10.0.0.31\theo\client_versions on theoCom1
      2023-12-20 08:30:49,628 [20] INFO Toems_Service.Workflows.FolderSync Replicating Folder software_uploads From \\10.0.0.31\theo\software_uploads to \\10.0.0.31\theo\software_uploads on theoCom1
      2023-12-20 12:30:12,495 [41] INFO Toems_Service.Workflows.FolderSync Replicating Folder client_versions From \\10.0.0.31\theo\client_versions to \\10.0.0.31\theo\client_versions on theoCom1
      2023-12-20 12:30:12,721 [41] INFO Toems_Service.Workflows.FolderSync Replicating Folder software_uploads From \\10.0.0.31\theo\software_uploads to \\10.0.0.31\theo\software_uploads on theoCom1
      

      Multicast.log

      No entries from today

      posted in Support
      T
      Tyler
    • RE: Different hardware = Multiple image clients with multiple images

      @sesam
      You may have to create A new image, but this doesn't need to be a norm going forwards.

      If you create a Universal Image then you can start collecting driver packages and use that one image for every machine using that OS version/edition (windows 10 pro, windows 10 home, windows 11 pro, etc), at least for Windows.

      to summarize the video:

      1. Make a VM in Hyper-V (I can't speak to other hypervisors)

      2. Install the OS on it, using the latest installation media (w10-22h2, w11-23h2)

      3. Do all the updates
        3.1 do some shinanigans
        3.2 probably you should install TOEC

      4. Sysprep & generalize it

      5. Take the image

      6. Deploy the image to one machine of a given model

      7. Install all the drivers for it

      8. Collect the drivers using

      powershell> Export-WindowsDriver -online -destination <URI>
      
      1. Put the drivers in a zip file and upload them via the Theopenem web interface as a Filecopy Module configured to unzip and install them as drivers

      2. On the image, clone the default profile, name it appropriately, and configure it to use that file copy

      Now when you deploy this profile to machines you have a driver package set up for, they can all use the same base image. I have skimmed over a lot of details, the video tutorial linked at the top covers them. There are a lot of caveats like you may need an answer file, and the image will not retain preconfigured network profiles.

      TOEC seems great, my usecase is really annoying so it creates a lot of problems that I don't have time to solve right now, and TOEC is not strictly required for this workflow.

      Next Tuesday is Update Tuesday so either doing this now is a little extra work you don't have time for, or a great test run, because next week you'll be able to re-update that VM (remember to checkpoint before you sysprep) and update the image for every model in one go.

      posted in Support
      T
      Tyler
    • Login screen password field misbehaves with password managers

      I've been experiencing this from the beginning but now I'm migrating to the new release. When I have my password manager autofill, it enters a password, and then that gets cleared.

      On chrome, using the old built in password manager or the new Google Password Manager, the offer to fill the password would not initially appeared, I had to put the cursor focus into a text field, then remove it, and re-enter the username field. Then after filling, I had to focus the password field, then remove focus, then the field would be filled. This being workable made me deprioritize this post

      I switched to Bitwarden. Now it does offer to fill, but nothing I do will restore the filled password. Instead I copy & paste the password. While the password field is in this bounced state, the login attempt will fail.

      In the Inspect menu, changing type="text" to type="password" corrects the behavior; but Theopenem uses ASP to generate HTML and I have not found a means to enact this change

      <input name="WebLogin$Password" type="password" id="Password" class="password watermark" maxlength="8">
      

      In C:\Program Files\Theopenem\Toems-UI\default.aspx, commenting out line 53 seems to correct the behavior as well.

      <script type="text/javascript">
          $(document).ready(function () {
              $('.uname').watermark('Username', { useNative: false });
              $('.uname').focus();
              //$('.password').watermark('Password', { useNative: false });
              $('.textbox').watermark('Verification Code', { useNative: false });
          });
      </script>
      

      I do not experience this problem on the User Creation screen, but those textboxs aren't css password fields, and I don't know where the javascript would be.

      default.aspx:

      <asp:TextBox ID="Password" runat="server" TextMode="Password" CssClass="password" ClientIDMode="Static"></asp:TextBox>
      

      create.aspx:

      <asp:TextBox ID="txtUserPwd" runat="server" TextMode="Password" CssClass="textbox"></asp:TextBox>
      

      I am not a web developer, I may have come to misguided conclusions.

      posted in Feature Requests / Feedback
      T
      Tyler
    • Safe data handling during image updates

      Currently when you update an image, one of the first things to happen is that the old image files gets deleted. If the upload does not succeed, this means operations must halt until an image can be uploaded successfully.

      This issue is difficult to discuss because the word image is used for several things, so going forwards:

      Logical Images: The concept listed on the Images page, which contain Image Profiles
      Profiles: Image Profiles
      Image Data Files: The files and folders located at [storage path]\images\

      There exists at present no way to move or clone Profiles between Logical Images, if you're using universal images then you will accrue a lot of Profiles with different File Copy configurations, reproducing these on a new Logical Image is cumbersome and time consuming, in addition to other configuration like Model Match (which must first be removed from the old Logical Image). This creates a need to avoid making a new Logical Image, so it's not viable to "update" by taking a new image. The ability to clone an image or migrate profiles would be generally nice to have, but the correct solution to this problem is to handle the Image Data Files safely to begin with.

      The essential premise of data safety is to ensure no step in the process can result in total data loss if it fails. Notably, Theopenem will never be qualified to determine if a taken image is valid and correct, that's my job; though Theopenem could do more to detect obvious failure, such as there being the wrong number of .wim files for the schema. As is though, no amount of detecting failure will recover the deleted Image Data Files.

      The structure should be, broadly, Logical Images possess a set of Image Data folders, each with their schema and .wim files. One of them is marked as Primary and this is what gets deployed normally. When an image is uploaded the new Image Data Files gets written to the storage location in parallel to the existing images' files. When I have validated the new Image Data Files, I can mark it as primary, or if there's a problem I can delete it. If it's valid, then when I feel comfortable doing so I can delete the old Image Data Files. My ideal is usually to keep one known good version in case I later discover a problem, but structurally there's no good reason to limit the depth of this history beyond reasonable datatype maximums.

      This allows deploys to take place while the image is updating, some organizations will want a way to prevent that but for me it's very useful. It also allows the new upload to be thrown into service with zero downtime; ongoing deploys have their orders and can finish, while new deploys will get the new primary. The most inconvenient step is that there will need to be a workflow that allows non-primary image data files to be deployed for testing, without making it primary, which could allow the upload to be erroneously deployed to a different machine before it is known to be good.

      This could all be structured on disk so that Theopenem can re-integrate Image Data Files that it finds but didn't expect, such as would occur if I restored the deleted files using my file server's snapshots and replications.

      posted in Feature Requests / Feedback
      T
      Tyler