Comments (3)
Hi @begna112 - thanks for raising this and apologies for the very long delay in getting back to you. The Set-StrictMode
setting was added to the PSDscResource
and xPSDesiredStateConfiguration
to ensure the PS code within the resource was of high quality and reduce bugs. However, as you point out this does result in any code executed by the Script resource to also adhere to this convention - specifically in your examples that variables are declared before use.
Because the PSDscResource
module must remain feature compatible with the in-box PSDesiredStateConfiguration
module, it won't likely have any new parameters added to it. This is not the case for the community maintained xPSDesiredStateConfiguration
module.
One of the goals moving from PSDesiredStateConfiguration to PSDscResources was to minimize impact, but due to the nature of the move (lots of code was improved and bugs fixed) some DSC config changes was going to be possible. However, it was understood that some configs would require minor changes.
The move away from Set-StrictMode
for this module and the xPSDesiredStateConfiguration
isn't likely to be done due to the increased difficulty in maintaining a high quality.
However, installing PSDscResources
onto a machine should not cause it to be replaced throughout as long as you've specified the resource module to import in your DSC config unless you installed the module to $PSHome
(https://docs.microsoft.com/en-us/powershell/scripting/dsc/configurations/import-dscresource?view=powershell-5.1). Can you check you're installing these modules into a location where they won't be automatically imported by PS DSC?
from psdscresources.
Because the
PSDscResource
module must remain feature compatible with the in-boxPSDesiredStateConfiguration
module, it won't likely have any new parameters added to it.
If that is the case, why would you change the Strict Mode setting? These changes are specifically breaking compatibility with PSDesiredStateConfiguration
in Script resources, and possibly in others, like the Registry resource example above. (It's been so long since I tested that, but I'm fairly certain that it worked as expected without Force
, evaluating as True
when the value was already correctly set. Whereas with Strict Mode, it gave the error.)
Can you check you're installing these modules into a location where they won't be automatically imported by PS DSC?
Modules/DscResources are installed in C:\Program Files\WindowsPowerShell\Modules\
.
from psdscresources.
This will most likely not change in this module, but for the xPSDesiredStateConfiguration we could move the strict check to the unit tests so strict mode is checked during the test phase, and so it is not used during runtime. Suggest opening an issue in the repo for xPSDesiredStateConfiguration so it can b tracked, and then please send in a PR to xPSDesiredStateConfiguration that make the correct changes to the unit tests and code.
from psdscresources.
Related Issues (20)
- setGroup: Error when I try to exclude a user from Users builtin group HOT 3
- Package missing build number in version Metadata HOT 2
- PsDscRunAsCredential with empty password throws error "Object reference not set to an instance of an object."
- Script Resource "No user exists"
- WindowsOptionalFeature: Get Method fails if OptionalFeature has no custom properties when called by the LCM.
- Archive: Special Characters not supported in file names within zip files
- WindowsFeatureSet broken when using member Source HOT 3
- Environment: Implement 'User' target HOT 1
- File: Default checksum type not documented
- Service: Invoke-DscResource fail to update a service HOT 3
- Fix CI Pipeline Failures
- Registry: Set "Absent" with ValueData fails if Key uses "HKEY_LOCAL_MACHINE\..." HOT 1
- Registry: add option to require reboot after setting
- User: Test-DscResource fails for user that is disabled by resource
- Archive: DSC resouce does not support paths longer than 260
- MSFT_GroupResource: SAMR can be blocked by domain controller GPO in Get-TargetResource HOT 1
- Group: Get-TargetResource throws with single member in group due to Type mismatch HOT 2
- WindowsFeature: Resource thinks Windows Server 2022 Azure Edition Core is a Client OS HOT 1
- WindowsProcess DSC resource fails intermittently with "Failed to wait for processes to start." HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from psdscresources.