我將創建一個 JWT 令牌并將其放在 GET 請求的標頭中以驗證我的租戶。然后我用
Invoke-RestMethod -Uri "https://graph.microsoft.com/beta/deviceManagement/deviceHealthScripts" -Method GET -Headers $headers -ContentType 'application/json' -ErrorAction "continue"
這將檢索主動補救腳本物件。只是我不知道實際代碼是什么格式。我應該查看我的 PowerShell 腳本,但不,只是很多隨機字符。這是 JSON 檔案的一部分。
"detectionScriptContent": "JGVudmlyb25lbW50YWxSZWdwYXRoID0gJ1JlZ2lzdHJ5OjpIS0VZX0xPQ0FMX01BQ0hJTkVcU3lzdGVtXEN1cnJlbnRDb250cm9sU2V0XENvbnRyb2xcU2Vzc2lvbiBNYW5hZ2VyXEVudmlyb25tZW50Jw0KDQokZGVzaXJlZFByb3BlcnR5ID0gIkFSQ0dJU19MSUNFTlNFX0ZJTEUiDQokdmFsID0gIjI3MDA5QGF6ci1saWMtMDEiDQoNCiMgJGRlc2lyZWRQcm9wZXJ0eSA9ICJUTVAiDQojICR2YWwgPSAiQzpcV0lORE9XU1xURU1QIg0KDQoNCiMgVGVzdC1QYXRoIC1QYXRoICdIS0xNOlxTeXN0ZW1cQ3VycmVudENvbnRyb2xTZXRcQ29udHJvbFxTZXNzaW9uIE1hbmFnZXJcRW52aXJvbm1lbnRcUGF0aCcNCiRkZXNpcmVkUHJvcGVydHlFeGlzdHMgPSAoJG51bGwgLW5lIChHZXQtSXRlbVByb3BlcnR5IC1QYXRoICRlbnZpcm9uZW1udGFsUmVncGF0aCAtTmFtZSAkZGVzaXJlZFByb3BlcnR5IC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlKSkNCg0KV3JpdGUtT3V0cHV0ICRkZXNpcmVkUHJvcGVydHlFeGlzdHMNCg0KaWYoJGRlc2lyZWRQcm9wZXJ0eUV4aXN0cyl7DQoNCiAgICBXcml0ZS1PdXRwdXQgIkRldGVjdGVkIFByb3BlcnR5ICRkZXNpcmVkUHJvcGVydHkgZXhpc3RzLiINCg0KfWVsc2V7IFdyaXRlLU91dHB1dCAiJGRlc2lyZWRQcm9wZXJ0eSBkb2VzIG5vdCBleGlzdC4gRXhpdCAxIjsgZXhpdCAxIH0NCg0KJGRlc2lyZWRQcm9wZXJ0eVZhbHVlID0gR2V0LUl0ZW1Qcm9wZXJ0eVZhbHVlIC1QYXRoICRlbnZpcm9uZW1udGFsUmVncGF0aCAtTmFtZSAkZGVzaXJlZFByb3BlcnR5IC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlDQoNCmlmKCRkZXNpcmVkUHJvcGVydHlWYWx1ZSAtZXEgJHZhbCl7DQoNCiAgICBXcml0ZS1PdXRwdXQgIiRkZXNpcmVkUHJvcGVydHkgdmFsdWUgbWF0Y2hlcyAkdmFsLiBFeGl0IDAiOyBFeGl0IDA7DQoNCn1lbHNleyBXcml0ZS1PdXRwdXQgIiRkZXNpcmVkUHJvcGVydHkgdmFsdWUgRE9FUyBOT1QgbWF0Y2hlcyAkdmFsLiBFeGl0IDEiOyBFeGl0IDE7IH0NCg==",
"remediationScriptContent": "DQoNCiRlbnZpcm9uZW1udGFsUmVncGF0aCA9ICdIS0xNOlxTeXN0ZW1cQ3VycmVudENvbnRyb2xTZXRcQ29udHJvbFxTZXNzaW9uIE1hbmFnZXJcRW52aXJvbm1lbnQnDQoNCiRkZXNpcmVkUHJvcGVydHkgPSAiQVJDR0lTX0xJQ0VOU0VfRklMRSINCiR2YWwgPSAiMjcwMDlAYXpyLWxpYy0wMSINCg0KDQpmdW5jdGlvbiBjcmVhdGVSZWdpc3RyeVByb3BlcnR5ew0KDQogICAgJGcgPSBHZXQtSXRlbVByb3BlcnR5IC1QYXRoICRlbnZpcm9uZW1udGFsUmVncGF0aCAtTmFtZSAkZGVzaXJlZFByb3BlcnR5IC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlDQoNCiAgICBpZigkZyAtZXEgJG51bGwpew0KICAgICAgICBOZXctSXRlbVByb3BlcnR5IC1QYXRoICRlbnZpcm9uZW1udGFsUmVncGF0aCAtTmFtZSAkZGVzaXJlZFByb3BlcnR5IC1WYWx1ZSAkdmFsIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlIHwgb3V0LW51bGwNCiAgICB9ZWxzZXsNCiAgICAgICAgU2V0LUl0ZW1Qcm9wZXJ0eSAtUGF0aCAkZW52aXJvbmVtbnRhbFJlZ3BhdGggLU5hbWUgJGRlc2lyZWRQcm9wZXJ0eSAtVmFsdWUgJHZhbCAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSB8IG91dC1udWxsDQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBSZWdpc3RyeUl0ZW1QYXNzZXN7DQogICAgJHJlZ1Byb3BlcnR5T2JqZWN0ID0gR2V0LUl0ZW1Qcm9wZXJ0eSAtUGF0aCAkZW52aXJvbmVtbnRhbFJlZ3BhdGggLU5hbWUgJGRlc2lyZWRQcm9wZXJ0eSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZQ0KICAgICRwcm9wRXhpc3RzID0gKCRudWxsIC1uZSAkcmVnUHJvcGVydHlPYmplY3QpDQoNCiAgICBpZigkcHJvcEV4aXN0cyAtZXEgJHRydWUpew0KDQogICAgICAgICRwcm9wVmFsdWUgPSBHZXQtSXRlbVByb3BlcnR5VmFsdWUgLVBhdGggJGVudmlyb25lbW50YWxSZWdwYXRoIC1OYW1lICRkZXNpcmVkUHJvcGVydHkgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUgDQogICAgICAgIA0KICAgICAgICByZXR1cm4gKCRwcm9wRXhpc3RzIC1hbmQgKCRwcm9wVmFsdWUgLWVxICR2YWwpKQ0KICAgIH0NCiAgICAjaWYgaXQgYnlwc3NlcyB0aGUgY29uZGl0aW9uYWwgc2NvcGUsIHRoZW4gcHJvcEV4aXN0cyBtdXN0IGJlIGZhbHNlLg0KICAgIHJldHVybiAkcHJvcEV4aXN0cw0KfQ0KDQppZigoUmVnaXN0cnlJdGVtUGFzc2VzKSAtZXEgJGZhbHNlKXsNCg0KICAgIFdyaXRlLU91dHB1dCAiQ3JlYXRpbmcgdGhlIHByb3BlcnR5ICRkZXNpcmVkUHJvcGVydHkiDQogICAgY3JlYXRlUmVnaXN0cnlQcm9wZXJ0eQ0KfQ0KDQppZihSZWdpc3RyeUl0ZW1QYXNzZXMpew0KICAgIA0KICAgIFdyaXRlLU91dHB1dCAiUmVnaXN0ZXkgaXRlbSBhbiB2YWx1ZSBjaGVja3Mgb3V0LiBFeGl0IDAiOyBFeGl0IDA7DQoNCn1lbHNleyBXcml0ZS1PdXRwdXQgIlNvbWV0aGluZyB3ZW50IHdyb25nLkV4aXQgMSI7IGV4aXQgMTsgfQ0KDQoNCg==",
Microsoft Docs 說它的二進制檔案,但事實并非如此 https://docs.microsoft.com/en-us/graph/api/intune-devices-devicehealthscript-update?view=graph-rest-beta
uj5u.com熱心網友回復:
您的屬性值是表示 UTF-8 編碼字串的Base64編碼位元組。
如果給定字串由看似隨機的字符組成,主要由數字和大寫和小寫字母組成,可選地后跟一個或兩個
=,那么它很可能表示 Base64 編碼的資料。Base64 能夠編碼任何二進制資料(位元組陣列),因此在抽象中沒有說明正在編碼什么:
- 但是,鑒于您案例中的屬性名稱包含“ScriptContent”,因此可以合理地假設文本正在被編碼。
- 這就留下了一個問題,即使用什么字符編碼來創建 Base64 編碼的二進制資料。UTF-8是一種常見的字符編碼,它確實是在您的案例中使用的。
您可以將它們解碼(成純文本 .NET 字串)如下(使用簡單的示例輸入字串):
$bytes = [Convert]::FromBase64String('SGkgdGhlcmUu')
[Text.Encoding]::Utf8.GetString($bytes) # -> 'Hi there.'
編碼:_
$bytes = [Text.Encoding]::Utf8.GetBytes('Hi there.')
[Convert]::ToBase64String($bytes) # -> 'SGkgdGhlcmUu'
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/460571.html
