Windows PowerShell
1196 TopicsSet-PnpSensitivityLabel cmdlet not found after installing module
Hi All! I've been working on a script to set sensitivity labels for all files in a SharePoint folder. I'm using the cmdlet "Set-PnPSensitivityLabel" but it isn't found. I've uninstalled pnp.powershell. I've reinstalled it. I've updated it. I've imported it. (Repeated these steps twice) The cmdlet is still not found. I've listed all the cmdlets in the module and it is not being installed. Any suggestions would be appreciated.8Views0likes0CommentsGet-PnPListItem retrieving no files from SharePoint folder with files
Hello! Can anyone assist with this script? I'm fairly new to PowerShell and it's likely something simple I don't know, yet. # Install PnP PowerShell module if not already installed # Install-Module PnP.PowerShell -Force # Define SharePoint site URL, folder path, and the sensitivity label to apply $SiteUrl = "https://XXXXXXXXXX.sharepoint.com/" $FolderPath = "/sites/IT/Shared%20Documents/General/Azure%20SSO" # Example: "/Documents/ConfidentialData" $SensitivityLabelId = "7e01211f-294a-4f47-9efd-aebe45f12d17" # The GUID of your sensitivity label # Connect to SharePoint Online Connect-PnPOnline -Url $SiteUrl -ClientID "XXXXXXXXXXXXXXXXXXXXX" # This will open a browser for authentication # Get all files in the specified folder Write-Host "Getting Files..." $Files = Get-PnPListItem -List "Documents" -FolderServerRelativeUrl $FolderPath | Where-Object { $_.FileSystemObjectType -eq "File" } Write-Host "Files found $Files" # Loop through each file and apply the sensitivity label foreach ($File in $Files) { Write-Host "Applying label to: $($File.FieldValues.FileRef)" Set-PnPSensitivityLabel -ListItem $File -SensitivityLabelId $SensitivityLabelId } Write-Host "Sensitivity label application complete." The line $Files = Get-PnPListItem -List "Documents" -FolderServerRelativeUrl $FolderPath | Where-Object { $_.FileSystemObjectType -eq "File" } retrieves no files so it just skips the following loop and ends with no errors. I added the line Write-Host "Files found $Files" to verify that it was not finding anything.20Views0likes1CommentError trying to Connect-PnPOnline
Hi! I'm using PowerShell in VSC to run the following script: # Install PnP PowerShell module if not already installed # Install-Module PnP.PowerShell -Force # Define SharePoint site URL, folder path, and the sensitivity label to apply $SiteUrl = "https://yourtenant.sharepoint.com/sites/yoursite" $FolderPath = "Shared Documents/YourFolder" # Example: "Documents/ConfidentialData" $SensitivityLabelId = "YourSensitivityLabelId" # The GUID of your sensitivity label # Connect to SharePoint Online Connect-PnPOnline -Url $SiteUrl -UseWebLogin # This will open a browser for authentication # Get all files in the specified folder $Files = Get-PnPListItem -List "Documents" -Folder $FolderPath | Where-Object { $_.FileSystemObjectType -eq "File" } # Loop through each file and apply the sensitivity label foreach ($File in $Files) { Write-Host "Applying label to: $($File.FieldValues.FileRef)" Set-PnPSensitivityLabel -ListItem $File -SensitivityLabelId $SensitivityLabelId } Write-Host "Sensitivity label application complete." I keep getting this error, "OperationStopped: Unable to load DLL 'msalruntime' or one of its dependencies: The specified module could not be found. (0x8007007E) See https://aka.ms/msal-net-wam#troubleshooting" I'm using: ExchangeOnlineManagement version 3.9.0 PnP.Powershell version 3.1.0 VSC version 1.107 PowerShell version 7.5.3.0 I've tried changing Connect-PnpOnline from "UseWebLogin" to "Interactive" (that asks for an Entra ID App Reg and says it's not supported). Any idea where this going wrong?13Views0likes0CommentsPowershell - Change Intune Application Assignments
Hello, I'd like to bulk-edit a number of my Intune Win32 assignments. I've got ~30 applications to go through, but I've noted their AppIDs so it would be worth the time investment to find a working Powershell script to run this without having to manually edit each one. Below runs through Elevated Powershell without error, so I'd thought it was successful. Unfortunately nothing changes and assignments remain the same. I've cut down the number in this script and edited tenant-based ID's but practically-speaking this runs through fine. Can anyone advise? I'm new to powershell and basically relying on AI to help make them, or the occasional forum post I can find. # Install the Microsoft Graph PowerShell SDK if not already installed Install-Module Microsoft.Graph -Scope CurrentUser -Force # Import the Device Management module Import-Module Microsoft.Graph.DeviceManagement # Connect to Microsoft Graph Connect-MgGraph -Scopes "DeviceManagementApps.ReadWrite.All" # Retrieve all mobile apps $allApps = Get-MgDeviceAppManagementMobileApp # Filter for Win32 apps $win32Apps = $allApps | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.win32LobApp' } # List of specific app IDs to target $specificAppIds = @( "ba5988e8-4hhe-4e99-9181-ff85ce589113", "d49dk602-5e02-4af3-b09c-d98d8edac8fb" ) # Filter the Win32 apps to only include the specific apps $targetApps = $win32Apps | Where-Object { $specificAppIds -contains $_.Id } # Define group IDs $requiredGroupId = "57ce1fb3-5f94-4287-8f0b-e2ed595ac900" # Replace with your actual required group ID $uninstallGroupId = "aq7a3571-7f71-4deb-8f81-289dfe38a2e6" # Replace with your actual uninstall group ID # Loop through each target app and update the assignment foreach ($app in $targetApps) { # Get the current assignments $assignments = Get-MgDeviceAppManagementMobileAppAssignment -MobileAppId $app.Id # Define the new assignments $requiredGroupAssignment = @{ "@odata.type" = "#microsoft.graph.mobileAppAssignment" target = @{ "@odata.type" = "#microsoft.graph.groupAssignmentTarget" groupId = $requiredGroupId } intent = "required" } $uninstallGroupAssignment = @{ "@odata.type" = "#microsoft.graph.mobileAppAssignment" target = @{ "@odata.type" = "#microsoft.graph.groupAssignmentTarget" groupId = $uninstallGroupId } intent = "uninstall" } # Add the new assignments to the existing assignments $updatedAssignments = $assignments + $requiredGroupAssignment + $uninstallGroupAssignment # Update the app assignments Update-MgDeviceAppManagementMobileAppAssignment -MobileAppId $app.Id -BodyParameter $updatedAssignments870Views1like2CommentsConnect-SPOService not working in PowerShell 7
Hi all, I'm having some issues getting Connect-SPOService working in PowerShell 7 (7.2.4). It works fine in Windows PowerShell (5.1.22), however it will always generate errors when trying to us it in PS 7 which I've listed below. Firstly if I open Windows PS, I can use it straight away, however if I open PS 7, I have to import the module in order to use it. I guess I can fix this with a profile adjustment, but is there a reason why this would be the case? Secondly even when it's been imported, if I try to connect with the following, I get an error: Connect-SPOService -Url https://***-admin.sharepoint.com Connect-SPOService: No valid OAuth 2.0 authentication session exists Never seen this before in Windows PS and I'm not sure how to resolve it so I tried connecting with this instead. Still got an error but a different one this time: Connect-SPOService -Url https://***-admin.sharepoint.com -Credential ***@***.com Connect-SPOService: The sign-in name or password does not match one in the Microsoft account system. I know these are the right credientials as again they work fine in Windows PS. This lead me to think that something still wasn't being imported correctly into PS 7, so I had a look at the modes, and I noticed that the ExportedCommands don't appear when Get-Module is run in PS 7, but again they do in Windows PS. I'm guessing this could be part of the issue but I'm not sure how to resolve it. From what I can see everything appears fine, but I'm sure I'm missing something here. I've tried setting my ExecutionPolicy to unrestricted in case that was the problem, however it didn't appear to change anything. If anyone has seen this before or could provide any help it would be greatly appreciated. I realise that I could just use Windows PS, but it feels like PS 7 is the way forward and it would be nice to better understand why this is happening. Many thanks in advance.Solved44KViews0likes10CommentsHow to disable automatic updates in Debug Diagnostics 2.1 using PowerShell
Greetings all. I am writing a PowerShell script to do an unattended install of Debug Diagnostics Tool version 2.2.0.14. The installer is an x64 .msi. The unattended install works fine, but I am unable to find the correct switch/command to disable automatic updates for the tool. Here is the latest code I tried: Execute-MSI -Action 'Install' -Path "<filepath>\DebugDiagx64.msi" -Parameters "/qn /norestart ALLUSERS=2 DISABLE_AUTOUPDATES=1" Other switches I have tried for disabling updates includes DISABLE_UPDATES=1, UPDATES=0 and UPDATES=FALSE. None of these work. Updates can be disabled manually through the Options & Settings GUI. Screenshots for this are attached. I really need a way to disable the automatic updates through PowerShell during an unattended installation through SCCM . Thanks.Solved113Views0likes1CommentBug: Invoke-MgGraphRequest not respecting ErrorAction.
Hi folks, This is a brief callout that Invoke-MgGraphRequest is not currently respecting the ErrorAction parameter. Rather, it's hardwired to throwing an exception as if ErrorAction:Stop had been provided. If you're like me and typically use ErrorAction:Stop in a try/catch block then you won't be impacted, but if use another value like Continue (the default) or SilentlyContinue, you may find this breaks your automation. Example Hopefully this is addressed in a future version of the Microsoft.Graph.Authentication module. Cheers, Lain220Views0likes4CommentsLaunch program remotely which must remain running
Hello everyone, I have to start and leave programs running on some remote PCs, I used invoke-command with start-job and start-process. Launching the script from my powershell window, the executables remain running until I close the window itself, I believe for reasons of remote sessions started. So if I schedule the start of this script in the Windows "Task Scheduler", the session is opened and closed and the executables start and close shortly after, that is, when the scheduled task completes. I also set the "-noexit" argument, but nothing happened. What can I do so that I can schedule these startups and let the affected programs run? I hope I was clear, ask if you need it, thanks everyone.166Views0likes3Comments