{"id":14980341,"url":"https://github.com/valerymoskalenko/d365ffo-powershell-scripts","last_synced_at":"2025-10-29T00:30:23.653Z","repository":{"id":89031401,"uuid":"168520935","full_name":"valerymoskalenko/D365FFO-PowerShell-scripts","owner":"valerymoskalenko","description":"Set of PowerShell scripts to maintain D365FFO (Dynamics 365 for Finance and Operations)","archived":false,"fork":false,"pushed_at":"2024-12-17T20:25:17.000Z","size":225,"stargazers_count":38,"open_issues_count":2,"forks_count":12,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-02-01T20:11:24.372Z","etag":null,"topics":["ax7","d365fo","d365tools","devops","devops-tools","dynamics","dynamics-365","finops","fno","fsc","fscm","powershell-script"],"latest_commit_sha":null,"homepage":"","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/valerymoskalenko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-31T12:24:00.000Z","updated_at":"2025-01-30T20:55:31.000Z","dependencies_parsed_at":"2023-03-12T07:00:41.855Z","dependency_job_id":"9abd6962-8d9a-439c-b8d6-78c255b1c7d0","html_url":"https://github.com/valerymoskalenko/D365FFO-PowerShell-scripts","commit_stats":{"total_commits":132,"total_committers":4,"mean_commits":33.0,"dds":0.0757575757575758,"last_synced_commit":"44fc5f2b020e904b23b345757d24eba0b979e75d"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valerymoskalenko%2FD365FFO-PowerShell-scripts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valerymoskalenko%2FD365FFO-PowerShell-scripts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valerymoskalenko%2FD365FFO-PowerShell-scripts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valerymoskalenko%2FD365FFO-PowerShell-scripts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/valerymoskalenko","download_url":"https://codeload.github.com/valerymoskalenko/D365FFO-PowerShell-scripts/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238743850,"owners_count":19523188,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ax7","d365fo","d365tools","devops","devops-tools","dynamics","dynamics-365","finops","fno","fsc","fscm","powershell-script"],"created_at":"2024-09-24T14:01:37.995Z","updated_at":"2025-10-29T00:30:23.264Z","avatar_url":"https://github.com/valerymoskalenko.png","language":"PowerShell","readme":"# Rename-D365FFODevVM\nRename and adjust some settings new Dev VM (D365FFO, VHD-based VM)\nPlease find how-to use example below\n```\nSet-ExecutionPolicy Bypass -Scope Process -Force; \n$NewComputerName = 'FC-Val10PU24'\n$disableMR = $true #Stop and Disable Management Reporter\niex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/valerymoskalenko/D365FFO-PowerShell-scripts/master/Rename-D365FFODevVM.ps1'))\n```\n# Rotate-D365FFODevVMCertificates.ps1\nCheck and rotate SSL Certificates on DEV VM (D365FFO, VHD-based VM)\n\n# Get-D365FFODataEntity.ps1\nRead Data Entity from D365FFO instance.\nUse Azure Application and OAuth2 auth. Then get the data through OData protocol.\nPlease find more information here https://vmoskalenkoblog.wordpress.com/2018/06/25/reading-odata-from-dynamics-365/ \nPlease find other examples here https://github.com/d365collaborative/d365fo.integrations \n\n# Add-D365FFOLicense2DP.ps1\nYou should use this script as inline PowerShell script on the Build Server. You should insert this step right after \"Generate Packages\"\nScan for a ISV License files in the folders K:\\AosService\\PackagesLocalDirectory\\License\nThen add license files to the Deployable Package.\nSo, you don't need to merge packages to install ISV license.\nPlease find details here https://www.yammer.com/dynamicsaxfeedbackprograms/#/Threads/show?threadId=86735357902848\n\n# Invoke-D365FFOAxDBOptimization.ps1\nCreate a Scheduled task.\nThat executes OLA Index Optimization for all databases every day at 3:07 am and at every VM startup\n\n# Invoke-D365FFOAxDBAutomaticBackup.ps1\nCreate a Scheduled task.\nExecutes AxDB backup and upload it to Azure Blob Storage every day at 8:07 am\n\n# Invoke-D365FFOAxDBRestoreFromBAK.ps1\nRestore AxDB database from BAK file on the new D365FO FnO environment.\n\n# Invoke-D365FFOAxDBRestoreFromBACPAC.ps1\nRestore AxDB database from BACPAC file on the new D365FO FnO environment.\n\n# Invoke-D365FFOMovingData2OneDiskAndVMOptimization.ps1\nOptimization for LCS-controlled Azure VM (Cloud-hosted environments only)\n- Deploy new VM through LCS\n   - Tier 1 only. Cloud-hosted on your Azure subscription\n   - Set 2,4, or any disks\n   - Set it to Premium SSD, Managed or Standard HDD\n- Wait for deployment completion\n- Add a new Standard SSD to your LCS Azure VM\n- Open the Remote Desktop Connection and execute this PowerShell script. \n   This script does the following (automatic):\n     - Detect new disk. Init and format it.\n     - Add SQL service account to Administrators group and update Local Policy\n     - Update Windows Defender rules\n     - Set min and max RAM for SQL server\n     - Move Temp DB to disk D: (temporary disk)\n     - Set grow parameters for all Databases\n     - Shrink all databases\n     - Detach all databases\n     - Copy all data to the new disk\n     - Rename disks\n     - Update default paths on SQL server\n     - Schedule Index Optimization task\n     - Delete old disks and storage pool \n- Review that script above completed successfully \n- Stop VM\n- Detach old disks (2,4, or more)\n- Start VM and do a smoke test on the environment\n- Delete old detached disks from Azure Storage\n\nPlease note that this script has the known bug. It moves only pre-defined database-related files. Thus, you may loose fresh deployed database. \nHowever, on mew-created VMs it should be OK. In any case, please make sure that you have copied all database-related files (mdf and ldf)\n\n# Test-D365FOLabelsFromCheckins.ps1\nFind missing labels between Latest checked-in Label file and all versions of the same Label file.\nIt download all versions of Label file from DevOps. Store them. Then compare with the latest version in order to find any missing label Ids\n\n# New-D365FFODeployment.ps1\nScript to deploy a Deployable Package to DEV envrionment.\n\n# DEV - 10.0.24.json\nSample Build pipeline for Azure DevOps\nPlease do not forget to install Dynamics 365 Finance and Operations Tools https://marketplace.visualstudio.com/items?itemName=Dyn365FinOps.dynamics365-finops-tools\n\n# Add-D365FOUsers.ps1\nSample PowerShell script to add users to the environment.\nIt would be better to use this script instead of trying to use Admin Provisioning tool\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvalerymoskalenko%2Fd365ffo-powershell-scripts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvalerymoskalenko%2Fd365ffo-powershell-scripts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvalerymoskalenko%2Fd365ffo-powershell-scripts/lists"}